diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 821e3e58f..d4eb516ef 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -37,7 +37,10 @@ jobs: uses: actions/cache@v4 with: path: ~/.cache/mongodb-binaries - key: ${{ matrix.node-version }} + key: ${{ matrix.node-version }}-${{ hashFiles('**/globalSetup.ts') }} + restore-keys: | + ${{ matrix.node-version }}- + ${{ matrix.node-version }} - name: Install node_modules run: yarn - name: TSCheck diff --git a/CHANGELOG.md b/CHANGELOG.md index c5a24de8a..1ffe253d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,22 @@ +## [9.4.0-beta.1](https://github.com/nodkz/mongodb-memory-server/compare/v9.3.0...v9.4.0-beta.1) (2024-06-05) + + +### Fixes + +* **MongoMemoryReplSet:** dont warn unless storage engine is set explicitly ([582bf0a](https://github.com/nodkz/mongodb-memory-server/commit/582bf0ae88ffa7ca66258a96344ed2ce6d5abd18)) + + +### Refactor + +* **utils::removeDir:** remove nodejs 12 workaround ([a852513](https://github.com/nodkz/mongodb-memory-server/commit/a852513b615b17179837af76f94aafabe1ea7ab7)) + + +### Dependencies + +* **async-mutex:** upgrade to version 0.4.1 ([b67c783](https://github.com/nodkz/mongodb-memory-server/commit/b67c7830b3bfce6e23c03ce36fd4a6fea5112933)) +* **debug:** upgrade to version 4.3.5 ([72a0b76](https://github.com/nodkz/mongodb-memory-server/commit/72a0b7665d9d63ff99a052220b89c00b909502f8)) +* **tslib:** upgrade to version 2.6.3 ([a49993b](https://github.com/nodkz/mongodb-memory-server/commit/a49993b85bb23ecdf90f10f2e73b0a64b096878d)) + ## [9.3.0](https://github.com/nodkz/mongodb-memory-server/compare/v9.2.0...v9.3.0) (2024-05-30) diff --git a/packages/mongodb-memory-server-core/package.json b/packages/mongodb-memory-server-core/package.json index e9dd46029..a2db9637a 100644 --- a/packages/mongodb-memory-server-core/package.json +++ b/packages/mongodb-memory-server-core/package.json @@ -1,9 +1,10 @@ { "name": "mongodb-memory-server-core", - "version": "9.3.0", + "version": "9.4.0-beta.1", "description": "MongoDB Server for testing (core package, without autodownload). The server will allow you to connect your favourite ODM or client library to the MongoDB Server and run parallel integration tests isolated from each other.", "main": "lib/index", "types": "lib/index.d.ts", + "type": "commonjs", "repository": { "type": "git", "url": "git+https://github.com/nodkz/mongodb-memory-server.git", @@ -42,9 +43,9 @@ "yazl": "^2.5.1" }, "dependencies": { - "async-mutex": "^0.4.0", + "async-mutex": "^0.4.1", "camelcase": "^6.3.0", - "debug": "^4.3.4", + "debug": "^4.3.5", "find-cache-dir": "^3.3.2", "follow-redirects": "^1.15.6", "https-proxy-agent": "^7.0.4", @@ -52,7 +53,7 @@ "new-find-package-json": "^2.0.0", "semver": "^7.6.2", "tar-stream": "^3.1.7", - "tslib": "^2.6.2", + "tslib": "^2.6.3", "yauzl": "^3.1.3" }, "scripts": { diff --git a/packages/mongodb-memory-server-core/src/MongoMemoryReplSet.ts b/packages/mongodb-memory-server-core/src/MongoMemoryReplSet.ts index 314003139..393b0d85d 100644 --- a/packages/mongodb-memory-server-core/src/MongoMemoryReplSet.ts +++ b/packages/mongodb-memory-server-core/src/MongoMemoryReplSet.ts @@ -8,6 +8,7 @@ import { ensureAsync, generateDbName, getHost, + getStorageEngine, isNullOrUndefined, ManagerAdvanced, removeDir, @@ -33,6 +34,8 @@ import { } from './util/errors'; import { promises as fs } from 'fs'; import { resolve } from 'path'; +import * as semver from 'semver'; +import { DryMongoBinary } from './util/DryMongoBinary'; const log = debug('MongoMS:MongoMemoryReplSet'); @@ -239,6 +242,16 @@ export class MongoMemoryReplSet extends EventEmitter implements ManagerAdvanced set replSetOpts(val: ReplSetOpts) { assertionIsMMSRSState(MongoMemoryReplSetStates.stopped, this._state); + + // the following needs to be done because we set the default "storageEngine" here + // which means the default is seen as set "explicitly" by the instance and would warn + // in binary versions >=7.0.0 + const opts = DryMongoBinary.getEnsuredOptions(this.binaryOpts); + // try to convert a string to a valid semver, like "v6.0-latest" (compiles to "6.0.0") + // use "0.0.0" as a fallback to have a valid semver for later checks, but warn on invalid + const coercedVersion = semver.coerce(opts.version) ?? new semver.SemVer('0.0.0'); + const storageEngine = getStorageEngine(val.storageEngine, coercedVersion); + const defaults: Required = { auth: { enable: false }, args: [], @@ -247,10 +260,11 @@ export class MongoMemoryReplSet extends EventEmitter implements ManagerAdvanced dbName: generateDbName(), ip: '127.0.0.1', spawn: {}, - storageEngine: 'ephemeralForTest', + storageEngine, configSettings: {}, }; - this._replSetOpts = { ...defaults, ...val }; + // force overwrite "storageEngine" because it is transformed already + this._replSetOpts = { ...defaults, ...val, storageEngine }; assertion(this._replSetOpts.count > 0, new ReplsetCountLowError(this._replSetOpts.count)); diff --git a/packages/mongodb-memory-server-core/src/MongoMemoryServer.ts b/packages/mongodb-memory-server-core/src/MongoMemoryServer.ts index 6e6f08106..1bc46b77e 100644 --- a/packages/mongodb-memory-server-core/src/MongoMemoryServer.ts +++ b/packages/mongodb-memory-server-core/src/MongoMemoryServer.ts @@ -11,6 +11,7 @@ import { Cleanup, createTmpDir, removeDir, + getStorageEngine, } from './util/utils'; import { MongoInstance, MongodOpts, MongoMemoryInstanceOpts } from './util/MongoInstance'; import { MongoBinaryOpts } from './util/MongoBinary'; @@ -381,23 +382,7 @@ export class MongoMemoryServer extends EventEmitter implements ManagerAdvanced { console.warn(new UnknownVersionError(opts.version)); } - // warn when storage engine "ephemeralForTest" is explicitly used and switch to "wiredTiger" - if (storageEngine === 'ephemeralForTest' && semver.gte(coercedVersion, '7.0.0')) { - console.warn( - 'Storage Engine "ephemeralForTest" is removed since mongodb 7.0.0, automatically using "wiredTiger"!\n' + - 'This warning is because the mentioned storage engine is explicitly used and mongodb version is 7.0.0 or higher' - ); - - storageEngine = 'wiredTiger'; - } - - if (isNullOrUndefined(storageEngine)) { - if (semver.gte(coercedVersion, '7.0.0')) { - storageEngine = 'wiredTiger'; - } else { - storageEngine = 'ephemeralForTest'; - } - } + storageEngine = getStorageEngine(storageEngine, coercedVersion); // use pre-defined port if available, otherwise generate a new port let port = typeof instOpts.port === 'number' ? instOpts.port : undefined; diff --git a/packages/mongodb-memory-server-core/src/__tests__/MongoMemoryReplSet.test.ts b/packages/mongodb-memory-server-core/src/__tests__/MongoMemoryReplSet.test.ts index c7472f75c..a595d593c 100644 --- a/packages/mongodb-memory-server-core/src/__tests__/MongoMemoryReplSet.test.ts +++ b/packages/mongodb-memory-server-core/src/__tests__/MongoMemoryReplSet.test.ts @@ -746,4 +746,56 @@ describe('MongoMemoryReplSet', () => { replSet.servers[0]._instanceInfo.tmpDir! ); // manual cleanup }); + + describe('server version specific', () => { + // should use default options that are supported for 7.0 (like not using "ephemeralForTest" by default) + it('should allow mongodb by default 7.0', async () => { + const server = await MongoMemoryReplSet.create({ binary: { version: '7.0.7' } }); + + await server.stop(); + }); + + it('should not warn if "ephemeralForTest" is used explicitly in mongodb 6.0', async () => { + jest.spyOn(console, 'warn'); + const server = await MongoMemoryReplSet.create({ + binary: { version: '6.0.14' }, + replSet: { storageEngine: 'ephemeralForTest' }, + }); + + expect(console.warn).toHaveBeenCalledTimes(0); + + expect(server.replSetOpts?.storageEngine).toStrictEqual('ephemeralForTest'); + + await server.stop(); + }); + + it('should not warn if no explicit storage engine is set in 7.0', async () => { + jest.spyOn(console, 'warn'); + const server = await MongoMemoryReplSet.create({ + binary: { version: '7.0.7' }, + // replSet: { storageEngine: 'ephemeralForTest' }, + }); + + expect(console.warn).toHaveBeenCalledTimes(0); + + expect(server.replSetOpts?.storageEngine).toStrictEqual('wiredTiger'); + + await server.stop(); + }); + + it('should warn if "ephemeralForTest" is used explicitly in mongodb 7.0', async () => { + const spy = jest.spyOn(console, 'warn').mockImplementationOnce(() => {}); + const server = await MongoMemoryReplSet.create({ + binary: { version: '7.0.7' }, + replSet: { storageEngine: 'ephemeralForTest' }, + }); + + expect(console.warn).toHaveBeenCalledTimes(1); + expect(spy.mock.calls).toMatchSnapshot(); + + expect(server.replSetOpts?.storageEngine).toStrictEqual('wiredTiger'); + + await server.stop(); + }); + }); }); diff --git a/packages/mongodb-memory-server-core/src/__tests__/MongoMemoryServer.test.ts b/packages/mongodb-memory-server-core/src/__tests__/MongoMemoryServer.test.ts index 6a47ae86b..cee951352 100644 --- a/packages/mongodb-memory-server-core/src/__tests__/MongoMemoryServer.test.ts +++ b/packages/mongodb-memory-server-core/src/__tests__/MongoMemoryServer.test.ts @@ -1140,6 +1140,34 @@ describe('MongoMemoryServer', () => { await server.stop(); }); + it('should not warn if "ephemeralForTest" is used explicitly in mongodb 6.0', async () => { + jest.spyOn(console, 'warn'); + const server = await MongoMemoryServer.create({ + binary: { version: '6.0.14' }, + instance: { storageEngine: 'ephemeralForTest' }, + }); + + expect(console.warn).toHaveBeenCalledTimes(0); + + expect(server.instanceInfo?.storageEngine).toStrictEqual('ephemeralForTest'); + + await server.stop(); + }); + + it('should not warn if no explicit storage engine is set in 7.0', async () => { + jest.spyOn(console, 'warn'); + const server = await MongoMemoryServer.create({ + binary: { version: '7.0.7' }, + // instance: { storageEngine: 'ephemeralForTest' }, + }); + + expect(console.warn).toHaveBeenCalledTimes(0); + + expect(server.instanceInfo?.storageEngine).toStrictEqual('wiredTiger'); + + await server.stop(); + }); + it('should warn if "ephemeralForTest" is used explicitly in mongodb 7.0', async () => { const spy = jest.spyOn(console, 'warn').mockImplementationOnce(() => {}); const server = await MongoMemoryServer.create({ diff --git a/packages/mongodb-memory-server-core/src/__tests__/__snapshots__/MongoMemoryReplSet.test.ts.snap b/packages/mongodb-memory-server-core/src/__tests__/__snapshots__/MongoMemoryReplSet.test.ts.snap index ebfd33ad8..ee783ed7b 100644 --- a/packages/mongodb-memory-server-core/src/__tests__/__snapshots__/MongoMemoryReplSet.test.ts.snap +++ b/packages/mongodb-memory-server-core/src/__tests__/__snapshots__/MongoMemoryReplSet.test.ts.snap @@ -26,6 +26,15 @@ This may be because of using a v6.x way of calling functions, look at the follow https://nodkz.github.io/mongodb-memory-server/docs/guides/migration/migrate7#no-function-other-than-start-create-ensureinstance-will-be-starting-anything" `; +exports[`MongoMemoryReplSet server version specific should warn if "ephemeralForTest" is used explicitly in mongodb 7.0 1`] = ` +Array [ + Array [ + "Storage Engine \\"ephemeralForTest\\" is removed since mongodb 7.0.0, automatically using \\"wiredTiger\\"! +This warning is because the mentioned storage engine is explicitly used and mongodb version is 7.0.0 or higher", + ], +] +`; + exports[`single server replset "_initReplSet" should throw an error if _state is not "init" 1`] = ` "Incorrect State for operation: \\"running\\", allowed States: \\"[init]\\" This may be because of using a v6.x way of calling functions, look at the following guide if anything applies: diff --git a/packages/mongodb-memory-server-core/src/util/DryMongoBinary.ts b/packages/mongodb-memory-server-core/src/util/DryMongoBinary.ts index 52db1fcf3..2fb5a916a 100644 --- a/packages/mongodb-memory-server-core/src/util/DryMongoBinary.ts +++ b/packages/mongodb-memory-server-core/src/util/DryMongoBinary.ts @@ -130,6 +130,19 @@ export class DryMongoBinary { return returnValue[1]; } + /** + * Ensure the given options fulfill {@link DryMongoBinaryOptions} by defaulting them + * @param opts The options to ensure + * @returns The ensured options + */ + static getEnsuredOptions(opts?: BaseDryMongoBinaryOptions): DryMongoBinaryOptions { + const defaultVersion = resolveConfig(ResolveConfigVariables.VERSION) ?? DEFAULT_VERSION; + + return isNullOrUndefined(opts) + ? { version: defaultVersion } + : { ...opts, version: opts.version || defaultVersion }; + } + /** * Generate All required options for the binary name / path generation */ @@ -137,13 +150,10 @@ export class DryMongoBinary { opts?: BaseDryMongoBinaryOptions ): Promise> { log('generateOptions'); - const defaultVersion = resolveConfig(ResolveConfigVariables.VERSION) ?? DEFAULT_VERSION; - const ensuredOpts: BaseDryMongoBinaryOptions = isNullOrUndefined(opts) - ? { version: defaultVersion } - : opts; + const ensuredOpts = DryMongoBinary.getEnsuredOptions(opts); const final: Required = { - version: ensuredOpts.version || defaultVersion, + version: ensuredOpts.version, downloadDir: resolveConfig(ResolveConfigVariables.DOWNLOAD_DIR) || ensuredOpts.downloadDir || '', os: ensuredOpts.os ?? (await getOS()), diff --git a/packages/mongodb-memory-server-core/src/util/__tests__/utils.test.ts b/packages/mongodb-memory-server-core/src/util/__tests__/utils.test.ts index 4fb9e04a0..2e14cd7be 100644 --- a/packages/mongodb-memory-server-core/src/util/__tests__/utils.test.ts +++ b/packages/mongodb-memory-server-core/src/util/__tests__/utils.test.ts @@ -8,6 +8,7 @@ import { InsufficientPermissionsError, } from '../errors'; import { assertIsError } from '../../__tests__/testUtils/test_utils'; +import { SemVer } from 'semver'; describe('utils', () => { describe('uriTemplate', () => { @@ -224,4 +225,36 @@ describe('utils', () => { expect(spy).toHaveBeenCalledTimes(1); }); }); + + describe('getStorageEngine', () => { + it('should get default without warning for versions', () => { + jest.spyOn(console, 'warn'); + expect(utils.getStorageEngine(undefined, new SemVer('6.0.0'))).toStrictEqual( + 'ephemeralForTest' + ); + expect(utils.getStorageEngine(undefined, new SemVer('7.0.0'))).toStrictEqual('wiredTiger'); + + expect(console.warn).toHaveBeenCalledTimes(0); + }); + + it('should not warn for versions below 7.0.0', () => { + jest.spyOn(console, 'warn'); + expect(utils.getStorageEngine('ephemeralForTest', new SemVer('6.0.0'))).toStrictEqual( + 'ephemeralForTest' + ); + expect(utils.getStorageEngine('wiredTiger', new SemVer('6.0.0'))).toStrictEqual('wiredTiger'); + + expect(console.warn).toHaveBeenCalledTimes(0); + }); + + it('should warn for versions above 7.0.0 for ephemeralForTest', () => { + jest.spyOn(console, 'warn').mockImplementationOnce(() => void 0); + expect(utils.getStorageEngine('ephemeralForTest', new SemVer('7.0.0'))).toStrictEqual( + 'wiredTiger' + ); + expect(utils.getStorageEngine('wiredTiger', new SemVer('7.0.0'))).toStrictEqual('wiredTiger'); + + expect(console.warn).toHaveBeenCalledTimes(1); + }); + }); }); diff --git a/packages/mongodb-memory-server-core/src/util/utils.ts b/packages/mongodb-memory-server-core/src/util/utils.ts index bdf56f214..c936428f2 100644 --- a/packages/mongodb-memory-server-core/src/util/utils.ts +++ b/packages/mongodb-memory-server-core/src/util/utils.ts @@ -11,6 +11,8 @@ import { import { tmpdir } from 'os'; import * as path from 'path'; import { BinaryLike, createHash, randomUUID } from 'crypto'; +import { StorageEngine } from './MongoInstance'; +import * as semver from 'semver'; const log = debug('MongoMS:utils'); @@ -318,14 +320,6 @@ export async function createTmpDir(prefix: string, atPath?: string): Promise { throw new Error(`Given Path is not a directory! (Path: "${dirPath}")`); } - if ('rm' in fspromises) { - // only since NodeJS 14 - await fspromises.rm(dirPath, { force: true, recursive: true }); - } else { - // before NodeJS 14 - // needs the bridge via the interface, because we are using @types/node 14, where this if evaluates to a always "true" in typescript's eyes - await (fspromises as RmDir).rmdir(dirPath, { - recursive: true, - }); - } + await fspromises.rm(dirPath, { force: true, recursive: true }); } /** @@ -389,3 +374,34 @@ export async function md5FromFile(file: string): Promise { export function lockfilePath(downloadDir: string, version: string): string { return path.resolve(downloadDir, `${version}.lock`); } + +/** + * Get the storage engine for the given given binary version, and issue a warning if it needs to be changed + * @param storageEngine The engine that is configured + * @param coercedVersion The binary version as semver + * @returns The engine that actually will run in the given binary version + */ +export function getStorageEngine( + storageEngine: StorageEngine | undefined, + coercedVersion: semver.SemVer +): StorageEngine { + // warn when storage engine "ephemeralForTest" is explicitly used and switch to "wiredTiger" + if (storageEngine === 'ephemeralForTest' && semver.gte(coercedVersion, '7.0.0')) { + console.warn( + 'Storage Engine "ephemeralForTest" is removed since mongodb 7.0.0, automatically using "wiredTiger"!\n' + + 'This warning is because the mentioned storage engine is explicitly used and mongodb version is 7.0.0 or higher' + ); + + return 'wiredTiger'; + } + + if (isNullOrUndefined(storageEngine)) { + if (semver.gte(coercedVersion, '7.0.0')) { + return 'wiredTiger'; + } + + return 'ephemeralForTest'; + } + + return storageEngine; +} diff --git a/packages/mongodb-memory-server-global-4.0/package.json b/packages/mongodb-memory-server-global-4.0/package.json index 24bec91bd..c6c28f650 100644 --- a/packages/mongodb-memory-server-global-4.0/package.json +++ b/packages/mongodb-memory-server-global-4.0/package.json @@ -1,6 +1,6 @@ { "name": "mongodb-memory-server-global-4.0", - "version": "9.3.0", + "version": "9.4.0-beta.1", "mongodb_version": "4.0.28", "description": "MongoDB Server for testing (auto-download 4.0 version to ~/.cache/mongodb-binaries).", "main": "index.js", @@ -25,8 +25,8 @@ "mongomem" ], "dependencies": { - "mongodb-memory-server-core": "9.3.0", - "tslib": "^2.6.2" + "mongodb-memory-server-core": "9.4.0-beta.1", + "tslib": "^2.6.3" }, "scripts": { "postinstall": "node ./postinstall.js" diff --git a/packages/mongodb-memory-server-global-4.2/package.json b/packages/mongodb-memory-server-global-4.2/package.json index e5970f839..183b0f340 100644 --- a/packages/mongodb-memory-server-global-4.2/package.json +++ b/packages/mongodb-memory-server-global-4.2/package.json @@ -1,6 +1,6 @@ { "name": "mongodb-memory-server-global-4.2", - "version": "9.3.0", + "version": "9.4.0-beta.1", "mongodb_version": "4.2.24", "description": "MongoDB Server for testing (auto-download 4.2 version to ~/.cache/mongodb-binaries).", "main": "index.js", @@ -25,8 +25,8 @@ "mongomem" ], "dependencies": { - "mongodb-memory-server-core": "9.3.0", - "tslib": "^2.6.2" + "mongodb-memory-server-core": "9.4.0-beta.1", + "tslib": "^2.6.3" }, "scripts": { "postinstall": "node ./postinstall.js" diff --git a/packages/mongodb-memory-server-global-4.4/package.json b/packages/mongodb-memory-server-global-4.4/package.json index e7667744e..e9d8c3bee 100644 --- a/packages/mongodb-memory-server-global-4.4/package.json +++ b/packages/mongodb-memory-server-global-4.4/package.json @@ -1,6 +1,6 @@ { "name": "mongodb-memory-server-global-4.4", - "version": "9.3.0", + "version": "9.4.0-beta.1", "mongodb_version": "4.4.28", "description": "MongoDB Server for testing (auto-download 4.4 version to ~/.cache/mongodb-binaries).", "main": "index.js", @@ -25,8 +25,8 @@ "mongomem" ], "dependencies": { - "mongodb-memory-server-core": "9.3.0", - "tslib": "^2.6.2" + "mongodb-memory-server-core": "9.4.0-beta.1", + "tslib": "^2.6.3" }, "scripts": { "postinstall": "node ./postinstall.js" diff --git a/packages/mongodb-memory-server-global/package.json b/packages/mongodb-memory-server-global/package.json index 5732e71e2..493292ad5 100644 --- a/packages/mongodb-memory-server-global/package.json +++ b/packages/mongodb-memory-server-global/package.json @@ -1,6 +1,6 @@ { "name": "mongodb-memory-server-global", - "version": "9.3.0", + "version": "9.4.0-beta.1", "description": "MongoDB Server for testing (auto-download latest version to ~/.cache/mongodb-binaries).", "main": "index.js", "types": "index.d.ts", @@ -24,8 +24,8 @@ "mongomem" ], "dependencies": { - "mongodb-memory-server-core": "9.3.0", - "tslib": "^2.6.2" + "mongodb-memory-server-core": "9.4.0-beta.1", + "tslib": "^2.6.3" }, "scripts": { "postinstall": "node ./postinstall.js" diff --git a/packages/mongodb-memory-server/package.json b/packages/mongodb-memory-server/package.json index 91eea7805..6e81aa479 100644 --- a/packages/mongodb-memory-server/package.json +++ b/packages/mongodb-memory-server/package.json @@ -1,6 +1,6 @@ { "name": "mongodb-memory-server", - "version": "9.3.0", + "version": "9.4.0-beta.1", "description": "MongoDB Server for testing (auto-download latest version). The server will allow you to connect your favourite ODM or client library to the MongoDB Server and run parallel integration tests isolated from each other.", "main": "index.js", "types": "index.d.ts", @@ -24,8 +24,8 @@ "mongomem" ], "dependencies": { - "mongodb-memory-server-core": "9.3.0", - "tslib": "^2.6.2" + "mongodb-memory-server-core": "9.4.0-beta.1", + "tslib": "^2.6.3" }, "scripts": { "postinstall": "node ./postinstall.js" diff --git a/yarn.lock b/yarn.lock index 46a2bb83b..edb8087c0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1319,10 +1319,10 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== -async-mutex@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/async-mutex/-/async-mutex-0.4.0.tgz#ae8048cd4d04ace94347507504b3cf15e631c25f" - integrity sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA== +async-mutex@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/async-mutex/-/async-mutex-0.4.1.tgz#bccf55b96f2baf8df90ed798cb5544a1f6ee4c2c" + integrity sha512-WfoBo4E/TbCX1G95XTjbWTE3X2XLG0m1Xbv2cwOtuPdyH9CZvnaA5nCt1ucjaKEgW2A5IF71hxrRhr83Je5xjA== dependencies: tslib "^2.4.0" @@ -1738,10 +1738,10 @@ dargs@^7.0.0: resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== -debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== +debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5: + version "4.3.5" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" + integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== dependencies: ms "2.1.2" @@ -4490,10 +4490,10 @@ tslib@^1.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.1.0, tslib@^2.4.0, tslib@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== +tslib@^2.1.0, tslib@^2.4.0, tslib@^2.6.2, tslib@^2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" + integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== tsutils@^3.21.0: version "3.21.0"