port: [#4465][#6560] Allow TokenCredential authentication in CosmosDbPartitionedStorage (#4473)

* add tokenCredential authentication to cosmosDB

* fix ts issues with new version

* fix pipelines issues

* add EOF

---------

Co-authored-by: JhontSouth <jhonatan.sandoval@southworks.com>
This commit is contained in:
Cecilia Avila 2023-05-08 11:31:09 -03:00 коммит произвёл GitHub
Родитель b110344e62
Коммит 192d4b2498
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
13 изменённых файлов: 159 добавлений и 39 удалений

Просмотреть файл

@ -19,7 +19,7 @@ export type IgnoreError = (err: Error) => boolean;
export async function ignoreError<T>(promise: Promise<T>, ignore: IgnoreError): Promise<T | null> { export async function ignoreError<T>(promise: Promise<T>, ignore: IgnoreError): Promise<T | null> {
try { try {
return await promise; return await promise;
} catch (err) { } catch (err: any) {
if (!ignore(err)) { if (!ignore(err)) {
throw err; throw err;
} else { } else {

Просмотреть файл

@ -9,6 +9,7 @@ import { CosmosClientOptions } from '@azure/cosmos';
import { PagedResult } from 'botbuilder'; import { PagedResult } from 'botbuilder';
import { Storage as Storage_2 } from 'botbuilder'; import { Storage as Storage_2 } from 'botbuilder';
import { StoreItems } from 'botbuilder'; import { StoreItems } from 'botbuilder';
import { TokenCredential } from '@azure/core-auth';
import { TranscriptInfo } from 'botbuilder'; import { TranscriptInfo } from 'botbuilder';
import { TranscriptStore } from 'botbuilder'; import { TranscriptStore } from 'botbuilder';
@ -64,6 +65,7 @@ export interface CosmosDbPartitionedStorageOptions {
cosmosDbEndpoint?: string; cosmosDbEndpoint?: string;
databaseId: string; databaseId: string;
keySuffix?: string; keySuffix?: string;
tokenCredential?: TokenCredential;
} }
// @public (undocumented) // @public (undocumented)

Просмотреть файл

@ -28,7 +28,8 @@
} }
}, },
"dependencies": { "dependencies": {
"@azure/cosmos": "^3.3.1", "@azure/cosmos": "3.10.0",
"@azure/core-auth": "^1.1.3",
"azure-storage": "2.10.7", "azure-storage": "2.10.7",
"botbuilder": "4.1.6", "botbuilder": "4.1.6",
"lodash": "^4.17.20", "lodash": "^4.17.20",

Просмотреть файл

@ -11,6 +11,7 @@ import { Container, CosmosClient, CosmosClientOptions } from '@azure/cosmos';
import { CosmosDbKeyEscape } from './cosmosDbKeyEscape'; import { CosmosDbKeyEscape } from './cosmosDbKeyEscape';
import { DoOnce } from './doOnce'; import { DoOnce } from './doOnce';
import { Storage, StoreItems } from 'botbuilder'; import { Storage, StoreItems } from 'botbuilder';
import { TokenCredential } from '@azure/core-auth';
// eslint-disable-next-line @typescript-eslint/no-var-requires // eslint-disable-next-line @typescript-eslint/no-var-requires
const pjson: Record<'name' | 'version', string> = require('../package.json'); const pjson: Record<'name' | 'version', string> = require('../package.json');
@ -67,6 +68,10 @@ export interface CosmosDbPartitionedStorageOptions {
* compatibilityMode cannot be true if keySuffix is used. * compatibilityMode cannot be true if keySuffix is used.
*/ */
compatibilityMode?: boolean; compatibilityMode?: boolean;
/**
* The authentication tokenCredential for Cosmos DB.
*/
tokenCredential?: TokenCredential;
} }
//Internal data structure for storing items in a CosmosDB Collection. //Internal data structure for storing items in a CosmosDB Collection.
@ -143,8 +148,12 @@ export class CosmosDbPartitionedStorage implements Storage {
throw new ReferenceError('cosmosDbEndpoint for CosmosDB is required.'); throw new ReferenceError('cosmosDbEndpoint for CosmosDB is required.');
} }
cosmosDbStorageOptions.authKey ??= cosmosClientOptions?.key; cosmosDbStorageOptions.authKey ??= cosmosClientOptions?.key;
if (!cosmosDbStorageOptions.authKey && !cosmosClientOptions?.tokenProvider) { if (
throw new ReferenceError('authKey for CosmosDB is required.'); !cosmosDbStorageOptions.authKey &&
!cosmosClientOptions?.tokenProvider &&
!cosmosDbStorageOptions.tokenCredential
) {
throw new ReferenceError('authKey or tokenCredential for CosmosDB is required.');
} }
if (!cosmosDbStorageOptions.databaseId) { if (!cosmosDbStorageOptions.databaseId) {
throw new ReferenceError('databaseId is for CosmosDB required.'); throw new ReferenceError('databaseId is for CosmosDB required.');
@ -322,12 +331,21 @@ export class CosmosDbPartitionedStorage implements Storage {
async initialize(): Promise<void> { async initialize(): Promise<void> {
if (!this.container) { if (!this.container) {
if (!this.client) { if (!this.client) {
this.client = new CosmosClient({ if (this.cosmosDbStorageOptions.tokenCredential) {
endpoint: this.cosmosDbStorageOptions.cosmosDbEndpoint, this.client = new CosmosClient({
key: this.cosmosDbStorageOptions.authKey, endpoint: this.cosmosDbStorageOptions.cosmosDbEndpoint,
userAgentSuffix: `${pjson.name} ${pjson.version}`, aadCredentials: this.cosmosDbStorageOptions.tokenCredential,
...this.cosmosDbStorageOptions.cosmosClientOptions, userAgentSuffix: `${pjson.name} ${pjson.version}`,
}); ...this.cosmosDbStorageOptions.cosmosClientOptions,
});
} else {
this.client = new CosmosClient({
endpoint: this.cosmosDbStorageOptions.cosmosDbEndpoint,
key: this.cosmosDbStorageOptions.authKey,
userAgentSuffix: `${pjson.name} ${pjson.version}`,
...this.cosmosDbStorageOptions.cosmosClientOptions,
});
}
} }
const dbAndContainerKey = `${this.cosmosDbStorageOptions.databaseId}-${this.cosmosDbStorageOptions.containerId}`; const dbAndContainerKey = `${this.cosmosDbStorageOptions.databaseId}-${this.cosmosDbStorageOptions.containerId}`;
this.container = await _doOnce.waitFor( this.container = await _doOnce.waitFor(

Просмотреть файл

@ -146,12 +146,12 @@ describe('CosmosDbPartitionedStorage - Constructor Tests', function () {
); );
}); });
it('throws when no authKey provided', function () { it('throws when no authKey or tokenCredential provided', function () {
const noAuthKey = getSettings(); const noAuthKey = getSettings();
noAuthKey.authKey = null; noAuthKey.authKey = null;
assert.throws( assert.throws(
() => new CosmosDbPartitionedStorage(noAuthKey), () => new CosmosDbPartitionedStorage(noAuthKey),
ReferenceError('authKey for CosmosDB is required.') ReferenceError('authKey or tokenCredential for CosmosDB is required.')
); );
}); });

Просмотреть файл

@ -57,7 +57,7 @@ describe('ServiceCollection', function () {
services.addFactory<number[]>('values', (values = [1]) => values.concat(2)); services.addFactory<number[]>('values', (values = [1]) => values.concat(2));
services.composeFactory<number[]>('values', (values) => values.concat(3)); services.composeFactory<number[]>('values', (values) => values.concat(3));
const { values } = services.makeInstances(); const { values } = services.makeInstances<{ values: number[] }>();
assert.deepStrictEqual(values, [1, 2, 3]); assert.deepStrictEqual(values, [1, 2, 3]);
}); });
@ -69,7 +69,7 @@ describe('ServiceCollection', function () {
services.composeFactory<number[]>('values', (values) => values.concat(2)); services.composeFactory<number[]>('values', (values) => values.concat(2));
services.composeFactory<number[]>('values', (values) => values.concat(3)); services.composeFactory<number[]>('values', (values) => values.concat(3));
const { values } = services.makeInstances(); const { values } = services.makeInstances<{ values: number[] }>();
assert.deepStrictEqual(values, [1, 2, 3]); assert.deepStrictEqual(values, [1, 2, 3]);
}); });
}); });
@ -95,8 +95,7 @@ describe('ServiceCollection', function () {
it('optionally fully reconstructs dependencies', function () { it('optionally fully reconstructs dependencies', function () {
const services = makeServiceCollection(); const services = makeServiceCollection();
const { foo, bar, baz } = services.makeInstances<{ foo: Foo; bar: Bar; baz: Baz }>();
const { foo, bar, baz } = services.makeInstances();
assert.ok(foo); assert.ok(foo);
assert.ok(bar); assert.ok(bar);
assert.ok(baz); assert.ok(baz);

Просмотреть файл

@ -209,7 +209,7 @@ export function makeTriggers(
res.status(200); res.status(200);
res.set('Content-Type', contentType); res.set('Content-Type', contentType);
res.end(contents); res.end(contents);
} catch (err) { } catch (err: any) {
if (err.message.includes('ENOENT')) { if (err.message.includes('ENOENT')) {
return res.status(404).end(); return res.status(404).end();
} }

Просмотреть файл

@ -144,7 +144,7 @@ export async function makeApp(
await adapter.process(req, res, async (turnContext) => { await adapter.process(req, res, async (turnContext) => {
await bot.run(turnContext); await bot.run(turnContext);
}); });
} catch (err) { } catch (err: any) {
return errorHandler(err, res); return errorHandler(err, res);
} }
}); });
@ -173,7 +173,7 @@ export async function makeApp(
await adapter.process(req, res, async (turnContext) => { await adapter.process(req, res, async (turnContext) => {
await bot.run(turnContext); await bot.run(turnContext);
}); });
} catch (err) { } catch (err: any) {
return errorHandler(err, res); return errorHandler(err, res);
} }
}); });
@ -200,7 +200,7 @@ export async function makeApp(
await adapter.process(req, socket, head, async (context) => { await adapter.process(req, socket, head, async (context) => {
await bot.run(context); await bot.run(context);
}); });
} catch (err) { } catch (err: any) {
return errorHandler(err); return errorHandler(err);
} }
}); });

Просмотреть файл

@ -140,7 +140,7 @@ export async function makeServer(
await adapter.process(req, res, async (turnContext) => { await adapter.process(req, res, async (turnContext) => {
await bot.run(turnContext); await bot.run(turnContext);
}); });
} catch (err) { } catch (err: any) {
return errorHandler(err, res); return errorHandler(err, res);
} }
}); });
@ -169,7 +169,7 @@ export async function makeServer(
await adapter.process(req, res, async (turnContext) => { await adapter.process(req, res, async (turnContext) => {
await bot.run(turnContext); await bot.run(turnContext);
}); });
} catch (err) { } catch (err: any) {
return errorHandler(err, res); return errorHandler(err, res);
} }
}); });
@ -197,7 +197,7 @@ export async function makeServer(
await adapter.process(req, socket, head, async (context) => { await adapter.process(req, socket, head, async (context) => {
await bot.run(context); await bot.run(context);
}); });
} catch (err) { } catch (err: any) {
return errorHandler(err); return errorHandler(err);
} }
}); });

Просмотреть файл

@ -442,7 +442,7 @@ async function addSettingsBotComponents(services: ServiceCollection, configurati
const botComponent = await loadBotComponent(name); const botComponent = await loadBotComponent(name);
botComponent.configureServices(services, configuration.bind([settingsPrefix ?? name])); botComponent.configureServices(services, configuration.bind([settingsPrefix ?? name]));
} catch (error) { } catch (error: any) {
loadErrors.push({ error, name }); loadErrors.push({ error, name });
} }
} }

Просмотреть файл

@ -25,7 +25,7 @@ export async function retry<T>(
try { try {
// Note: return await intentional so we can catch errors // Note: return await intentional so we can catch errors
return await promise(n); return await promise(n);
} catch (err) { } catch (err: any) {
maybeError = err; maybeError = err;
await new Promise((resolve) => setTimeout(resolve, delay)); await new Promise((resolve) => setTimeout(resolve, delay));

Просмотреть файл

@ -91,11 +91,11 @@
"source-map-support": "^0.5.19", "source-map-support": "^0.5.19",
"sponge": "^0.1.0", "sponge": "^0.1.0",
"tinyify": "^3.0.0", "tinyify": "^3.0.0",
"ts-node": "^9.0.0", "ts-node": "^10.0.0",
"typedoc": "^0.19.2", "typedoc": "^0.19.2",
"typedoc-plugin-external-module-name": "^4.0.3", "typedoc-plugin-external-module-name": "^4.0.3",
"typedoc-plugin-markdown": "^3.0.11", "typedoc-plugin-markdown": "^3.0.11",
"typescript": "^4.0.5", "typescript": "^4.1.0",
"wsrun": "^5.2.4" "wsrun": "^5.2.4"
}, },
"nyc": { "nyc": {

124
yarn.lock
Просмотреть файл

@ -40,6 +40,14 @@
"@azure/abort-controller" "^1.0.0" "@azure/abort-controller" "^1.0.0"
tslib "^2.2.0" tslib "^2.2.0"
"@azure/core-auth@^1.2.0":
version "1.4.0"
resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.4.0.tgz#6fa9661c1705857820dbc216df5ba5665ac36a9e"
integrity sha512-HFrcTgmuSuukRf/EdPmqBrc5l6Q5Uu+2TbuhaKbgaCpP2TfAeiNaQPAadxO+CYBRHGUzIDteMAjFspFLDLnKVQ==
dependencies:
"@azure/abort-controller" "^1.0.0"
tslib "^2.2.0"
"@azure/core-client@^1.4.0": "@azure/core-client@^1.4.0":
version "1.5.0" version "1.5.0"
resolved "https://registry.yarnpkg.com/@azure/core-client/-/core-client-1.5.0.tgz#7aabb87d20e08db3683a117191c844bc19adb74e" resolved "https://registry.yarnpkg.com/@azure/core-client/-/core-client-1.5.0.tgz#7aabb87d20e08db3683a117191c844bc19adb74e"
@ -175,11 +183,12 @@
dependencies: dependencies:
tslib "^2.0.0" tslib "^2.0.0"
"@azure/cosmos@^3.3.1": "@azure/cosmos@3.10.0":
version "3.9.2" version "3.10.0"
resolved "https://registry.yarnpkg.com/@azure/cosmos/-/cosmos-3.9.2.tgz#2d4ca87bdef5fa1358f022a13305510691147ab0" resolved "https://registry.yarnpkg.com/@azure/cosmos/-/cosmos-3.10.0.tgz#ec11828e380a656f689357b51e8f3f451d78640d"
integrity sha512-nS02/LyjE22osouSJGWw6DqJ34tbkEgAcysrbKyDzyiqdDKNprP8sAU43WGVr6Jxjw8jGBzg6rkHz9A+IvPcdg== integrity sha512-B0cVMLy7XvsaL6t2AKn/1KDLfEctnH4AZAqkoDLR3Q+IXWHoZ5BxDWm5URr7PY2tW8igfWWMSiXxStBi6BWuVQ==
dependencies: dependencies:
"@azure/core-auth" "^1.2.0"
"@types/debug" "^4.1.4" "@types/debug" "^4.1.4"
debug "^4.1.1" debug "^4.1.1"
fast-json-stable-stringify "^2.0.0" fast-json-stable-stringify "^2.0.0"
@ -190,7 +199,7 @@
semaphore "^1.0.5" semaphore "^1.0.5"
tslib "^2.0.0" tslib "^2.0.0"
universal-user-agent "^6.0.0" universal-user-agent "^6.0.0"
uuid "^8.1.0" uuid "^8.3.0"
"@azure/functions@^1.2.3": "@azure/functions@^1.2.3":
version "1.2.3" version "1.2.3"
@ -1298,6 +1307,13 @@
"@babel/helper-validator-identifier" "^7.14.5" "@babel/helper-validator-identifier" "^7.14.5"
to-fast-properties "^2.0.0" to-fast-properties "^2.0.0"
"@cspotcode/source-map-support@^0.8.0":
version "0.8.1"
resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1"
integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==
dependencies:
"@jridgewell/trace-mapping" "0.3.9"
"@eslint/eslintrc@^0.4.0": "@eslint/eslintrc@^0.4.0":
version "0.4.0" version "0.4.0"
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.0.tgz#99cc0a0584d72f1df38b900fb062ba995f395547" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.0.tgz#99cc0a0584d72f1df38b900fb062ba995f395547"
@ -1357,6 +1373,24 @@
"@types/istanbul-reports" "^1.1.1" "@types/istanbul-reports" "^1.1.1"
"@types/yargs" "^13.0.0" "@types/yargs" "^13.0.0"
"@jridgewell/resolve-uri@^3.0.3":
version "3.1.1"
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721"
integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==
"@jridgewell/sourcemap-codec@^1.4.10":
version "1.4.15"
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
"@jridgewell/trace-mapping@0.3.9":
version "0.3.9"
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9"
integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==
dependencies:
"@jridgewell/resolve-uri" "^3.0.3"
"@jridgewell/sourcemap-codec" "^1.4.10"
"@mapbox/node-pre-gyp@^1.0.10": "@mapbox/node-pre-gyp@^1.0.10":
version "1.0.10" version "1.0.10"
resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz#8e6735ccebbb1581e5a7e652244cadc8a844d03c" resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz#8e6735ccebbb1581e5a7e652244cadc8a844d03c"
@ -1683,6 +1717,26 @@
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==
"@tsconfig/node10@^1.0.7":
version "1.0.9"
resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2"
integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==
"@tsconfig/node12@^1.0.7":
version "1.0.11"
resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d"
integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==
"@tsconfig/node14@^1.0.0":
version "1.0.3"
resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1"
integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==
"@tsconfig/node16@^1.0.2":
version "1.0.3"
resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e"
integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==
"@types/anymatch@*": "@types/anymatch@*":
version "1.3.1" version "1.3.1"
resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a"
@ -1743,9 +1797,11 @@
"@types/node" "*" "@types/node" "*"
"@types/debug@^4.1.4": "@types/debug@^4.1.4":
version "4.1.5" version "4.1.7"
resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82"
integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ== integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==
dependencies:
"@types/ms" "*"
"@types/events@*": "@types/events@*":
version "3.0.0" version "3.0.0"
@ -1904,6 +1960,11 @@
resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.2.0.tgz#3eb56d13a1de1d347ecb1957c6860c911704bc44" resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.2.0.tgz#3eb56d13a1de1d347ecb1957c6860c911704bc44"
integrity sha512-/Sge3BymXo4lKc31C8OINJgXLaw+7vL1/L1pGiBNpGrBiT8FQiaFpSYV0uhTaG4y78vcMBTMFsWaHDvuD+xGzQ== integrity sha512-/Sge3BymXo4lKc31C8OINJgXLaw+7vL1/L1pGiBNpGrBiT8FQiaFpSYV0uhTaG4y78vcMBTMFsWaHDvuD+xGzQ==
"@types/ms@*":
version "0.7.31"
resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197"
integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==
"@types/nconf@0.10.0": "@types/nconf@0.10.0":
version "0.10.0" version "0.10.0"
resolved "https://registry.yarnpkg.com/@types/nconf/-/nconf-0.10.0.tgz#a5c9753a09c59d44c8e6dc94b57d73f70eb12ebe" resolved "https://registry.yarnpkg.com/@types/nconf/-/nconf-0.10.0.tgz#a5c9753a09c59d44c8e6dc94b57d73f70eb12ebe"
@ -2444,7 +2505,7 @@ acorn-walk@^7.0.0:
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
acorn-walk@^8.2.0: acorn-walk@^8.1.1, acorn-walk@^8.2.0:
version "8.2.0" version "8.2.0"
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1"
integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==
@ -2464,6 +2525,11 @@ acorn@^7.0.0, acorn@^7.1.1, acorn@^7.4.0:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
acorn@^8.4.1:
version "8.8.2"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a"
integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==
acorn@^8.7.0: acorn@^8.7.0:
version "8.8.0" version "8.8.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8"
@ -4249,6 +4315,11 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
safe-buffer "^5.0.1" safe-buffer "^5.0.1"
sha.js "^2.4.8" sha.js "^2.4.8"
create-require@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
cross-fetch@^3.0.5: cross-fetch@^3.0.5:
version "3.1.5" version "3.1.5"
resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f"
@ -9216,9 +9287,9 @@ nock@^11.9.1:
propagate "^2.0.0" propagate "^2.0.0"
node-abort-controller@^1.0.4: node-abort-controller@^1.0.4:
version "1.1.0" version "1.2.1"
resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-1.1.0.tgz#8a734a631b022af29963be7245c1483cbb9e070d" resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-1.2.1.tgz#1eddb57eb8fea734198b11b28857596dc6165708"
integrity sha512-dEYmUqjtbivotqjraOe8UvhT/poFfog1BQRNsZm/MSEDDESk2cQ1tvD8kGyuN07TM/zoW+n42odL8zTeJupYdQ== integrity sha512-79PYeJuj6S9+yOHirR0JBLFOgjB6sQCir10uN6xRx25iD+ZD4ULqgRn3MwWBRaQGB0vEgReJzWwJo42T1R6YbQ==
node-addon-api@^3.1.0: node-addon-api@^3.1.0:
version "3.1.0" version "3.1.0"
@ -12468,6 +12539,25 @@ ts-loader@^7.0.5:
micromatch "^4.0.0" micromatch "^4.0.0"
semver "^6.0.0" semver "^6.0.0"
ts-node@^10.0.0:
version "10.9.1"
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b"
integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==
dependencies:
"@cspotcode/source-map-support" "^0.8.0"
"@tsconfig/node10" "^1.0.7"
"@tsconfig/node12" "^1.0.7"
"@tsconfig/node14" "^1.0.0"
"@tsconfig/node16" "^1.0.2"
acorn "^8.4.1"
acorn-walk "^8.1.1"
arg "^4.1.0"
create-require "^1.1.0"
diff "^4.0.1"
make-error "^1.1.1"
v8-compile-cache-lib "^3.0.1"
yn "3.1.1"
ts-node@^9.0.0: ts-node@^9.0.0:
version "9.0.0" version "9.0.0"
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.0.0.tgz#e7699d2a110cc8c0d3b831715e417688683460b3" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.0.0.tgz#e7699d2a110cc8c0d3b831715e417688683460b3"
@ -12649,6 +12739,11 @@ typescript@^4.0.5:
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.5.tgz#ae9dddfd1069f1cb5beb3ef3b2170dd7c1332389" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.5.tgz#ae9dddfd1069f1cb5beb3ef3b2170dd7c1332389"
integrity sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ== integrity sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==
typescript@^4.1.0:
version "4.9.5"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a"
integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==
typescript@^4.1.0-dev.20201026: typescript@^4.1.0-dev.20201026:
version "4.1.0-dev.20201102" version "4.1.0-dev.20201102"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.0-dev.20201102.tgz#e1978890ac063bb3f13d067067905b312c1e0897" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.0-dev.20201102.tgz#e1978890ac063bb3f13d067067905b312c1e0897"
@ -12940,6 +13035,11 @@ uuid@^8.3.2:
resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
v8-compile-cache-lib@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf"
integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==
v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.1: v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.1:
version "2.2.0" version "2.2.0"
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132"