From 192d4b24986bfdf55ecdf02c2623b2dd9c42d1e8 Mon Sep 17 00:00:00 2001 From: Cecilia Avila <44245136+ceciliaavila@users.noreply.github.com> Date: Mon, 8 May 2023 11:31:09 -0300 Subject: [PATCH] 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 --- .../botbuilder-azure-blobs/src/ignoreError.ts | 2 +- .../etc/botbuilder-azure.api.md | 2 + libraries/botbuilder-azure/package.json | 3 +- .../src/cosmosDbPartitionedStorage.ts | 34 +++-- .../tests/cosmosDbPartitionedStorage.test.js | 4 +- .../test/serviceCollection.test.ts | 7 +- .../src/index.ts | 2 +- .../src/index.ts | 6 +- .../src/index.ts | 6 +- .../src/index.ts | 2 +- libraries/botbuilder-stdlib/src/retry.ts | 2 +- package.json | 4 +- yarn.lock | 124 ++++++++++++++++-- 13 files changed, 159 insertions(+), 39 deletions(-) diff --git a/libraries/botbuilder-azure-blobs/src/ignoreError.ts b/libraries/botbuilder-azure-blobs/src/ignoreError.ts index 403fbcb594..ba9d439ebd 100644 --- a/libraries/botbuilder-azure-blobs/src/ignoreError.ts +++ b/libraries/botbuilder-azure-blobs/src/ignoreError.ts @@ -19,7 +19,7 @@ export type IgnoreError = (err: Error) => boolean; export async function ignoreError(promise: Promise, ignore: IgnoreError): Promise { try { return await promise; - } catch (err) { + } catch (err: any) { if (!ignore(err)) { throw err; } else { diff --git a/libraries/botbuilder-azure/etc/botbuilder-azure.api.md b/libraries/botbuilder-azure/etc/botbuilder-azure.api.md index cea5f53147..8921d0f384 100644 --- a/libraries/botbuilder-azure/etc/botbuilder-azure.api.md +++ b/libraries/botbuilder-azure/etc/botbuilder-azure.api.md @@ -9,6 +9,7 @@ import { CosmosClientOptions } from '@azure/cosmos'; import { PagedResult } from 'botbuilder'; import { Storage as Storage_2 } from 'botbuilder'; import { StoreItems } from 'botbuilder'; +import { TokenCredential } from '@azure/core-auth'; import { TranscriptInfo } from 'botbuilder'; import { TranscriptStore } from 'botbuilder'; @@ -64,6 +65,7 @@ export interface CosmosDbPartitionedStorageOptions { cosmosDbEndpoint?: string; databaseId: string; keySuffix?: string; + tokenCredential?: TokenCredential; } // @public (undocumented) diff --git a/libraries/botbuilder-azure/package.json b/libraries/botbuilder-azure/package.json index a3a786a90f..dda4d9b723 100644 --- a/libraries/botbuilder-azure/package.json +++ b/libraries/botbuilder-azure/package.json @@ -28,7 +28,8 @@ } }, "dependencies": { - "@azure/cosmos": "^3.3.1", + "@azure/cosmos": "3.10.0", + "@azure/core-auth": "^1.1.3", "azure-storage": "2.10.7", "botbuilder": "4.1.6", "lodash": "^4.17.20", diff --git a/libraries/botbuilder-azure/src/cosmosDbPartitionedStorage.ts b/libraries/botbuilder-azure/src/cosmosDbPartitionedStorage.ts index b4d2dc846a..f49cea76fc 100644 --- a/libraries/botbuilder-azure/src/cosmosDbPartitionedStorage.ts +++ b/libraries/botbuilder-azure/src/cosmosDbPartitionedStorage.ts @@ -11,6 +11,7 @@ import { Container, CosmosClient, CosmosClientOptions } from '@azure/cosmos'; import { CosmosDbKeyEscape } from './cosmosDbKeyEscape'; import { DoOnce } from './doOnce'; import { Storage, StoreItems } from 'botbuilder'; +import { TokenCredential } from '@azure/core-auth'; // eslint-disable-next-line @typescript-eslint/no-var-requires 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?: boolean; + /** + * The authentication tokenCredential for Cosmos DB. + */ + tokenCredential?: TokenCredential; } //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.'); } cosmosDbStorageOptions.authKey ??= cosmosClientOptions?.key; - if (!cosmosDbStorageOptions.authKey && !cosmosClientOptions?.tokenProvider) { - throw new ReferenceError('authKey for CosmosDB is required.'); + if ( + !cosmosDbStorageOptions.authKey && + !cosmosClientOptions?.tokenProvider && + !cosmosDbStorageOptions.tokenCredential + ) { + throw new ReferenceError('authKey or tokenCredential for CosmosDB is required.'); } if (!cosmosDbStorageOptions.databaseId) { throw new ReferenceError('databaseId is for CosmosDB required.'); @@ -322,12 +331,21 @@ export class CosmosDbPartitionedStorage implements Storage { async initialize(): Promise { if (!this.container) { if (!this.client) { - this.client = new CosmosClient({ - endpoint: this.cosmosDbStorageOptions.cosmosDbEndpoint, - key: this.cosmosDbStorageOptions.authKey, - userAgentSuffix: `${pjson.name} ${pjson.version}`, - ...this.cosmosDbStorageOptions.cosmosClientOptions, - }); + if (this.cosmosDbStorageOptions.tokenCredential) { + this.client = new CosmosClient({ + endpoint: this.cosmosDbStorageOptions.cosmosDbEndpoint, + aadCredentials: this.cosmosDbStorageOptions.tokenCredential, + 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}`; this.container = await _doOnce.waitFor( diff --git a/libraries/botbuilder-azure/tests/cosmosDbPartitionedStorage.test.js b/libraries/botbuilder-azure/tests/cosmosDbPartitionedStorage.test.js index d437b686d1..d9e3bfaf69 100644 --- a/libraries/botbuilder-azure/tests/cosmosDbPartitionedStorage.test.js +++ b/libraries/botbuilder-azure/tests/cosmosDbPartitionedStorage.test.js @@ -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(); noAuthKey.authKey = null; assert.throws( () => new CosmosDbPartitionedStorage(noAuthKey), - ReferenceError('authKey for CosmosDB is required.') + ReferenceError('authKey or tokenCredential for CosmosDB is required.') ); }); diff --git a/libraries/botbuilder-dialogs-adaptive-runtime-core/test/serviceCollection.test.ts b/libraries/botbuilder-dialogs-adaptive-runtime-core/test/serviceCollection.test.ts index 17537815b6..2d9fe5d302 100644 --- a/libraries/botbuilder-dialogs-adaptive-runtime-core/test/serviceCollection.test.ts +++ b/libraries/botbuilder-dialogs-adaptive-runtime-core/test/serviceCollection.test.ts @@ -57,7 +57,7 @@ describe('ServiceCollection', function () { services.addFactory('values', (values = [1]) => values.concat(2)); services.composeFactory('values', (values) => values.concat(3)); - const { values } = services.makeInstances(); + const { values } = services.makeInstances<{ values: number[] }>(); assert.deepStrictEqual(values, [1, 2, 3]); }); @@ -69,7 +69,7 @@ describe('ServiceCollection', function () { services.composeFactory('values', (values) => values.concat(2)); services.composeFactory('values', (values) => values.concat(3)); - const { values } = services.makeInstances(); + const { values } = services.makeInstances<{ values: number[] }>(); assert.deepStrictEqual(values, [1, 2, 3]); }); }); @@ -95,8 +95,7 @@ describe('ServiceCollection', function () { it('optionally fully reconstructs dependencies', function () { const services = makeServiceCollection(); - - const { foo, bar, baz } = services.makeInstances(); + const { foo, bar, baz } = services.makeInstances<{ foo: Foo; bar: Bar; baz: Baz }>(); assert.ok(foo); assert.ok(bar); assert.ok(baz); diff --git a/libraries/botbuilder-dialogs-adaptive-runtime-integration-azure-functions/src/index.ts b/libraries/botbuilder-dialogs-adaptive-runtime-integration-azure-functions/src/index.ts index 78378616ab..e41edc65bf 100644 --- a/libraries/botbuilder-dialogs-adaptive-runtime-integration-azure-functions/src/index.ts +++ b/libraries/botbuilder-dialogs-adaptive-runtime-integration-azure-functions/src/index.ts @@ -209,7 +209,7 @@ export function makeTriggers( res.status(200); res.set('Content-Type', contentType); res.end(contents); - } catch (err) { + } catch (err: any) { if (err.message.includes('ENOENT')) { return res.status(404).end(); } diff --git a/libraries/botbuilder-dialogs-adaptive-runtime-integration-express/src/index.ts b/libraries/botbuilder-dialogs-adaptive-runtime-integration-express/src/index.ts index f911a587de..1e91415527 100644 --- a/libraries/botbuilder-dialogs-adaptive-runtime-integration-express/src/index.ts +++ b/libraries/botbuilder-dialogs-adaptive-runtime-integration-express/src/index.ts @@ -144,7 +144,7 @@ export async function makeApp( await adapter.process(req, res, async (turnContext) => { await bot.run(turnContext); }); - } catch (err) { + } catch (err: any) { return errorHandler(err, res); } }); @@ -173,7 +173,7 @@ export async function makeApp( await adapter.process(req, res, async (turnContext) => { await bot.run(turnContext); }); - } catch (err) { + } catch (err: any) { return errorHandler(err, res); } }); @@ -200,7 +200,7 @@ export async function makeApp( await adapter.process(req, socket, head, async (context) => { await bot.run(context); }); - } catch (err) { + } catch (err: any) { return errorHandler(err); } }); diff --git a/libraries/botbuilder-dialogs-adaptive-runtime-integration-restify/src/index.ts b/libraries/botbuilder-dialogs-adaptive-runtime-integration-restify/src/index.ts index 5d731cc585..b9fddd2ddb 100644 --- a/libraries/botbuilder-dialogs-adaptive-runtime-integration-restify/src/index.ts +++ b/libraries/botbuilder-dialogs-adaptive-runtime-integration-restify/src/index.ts @@ -140,7 +140,7 @@ export async function makeServer( await adapter.process(req, res, async (turnContext) => { await bot.run(turnContext); }); - } catch (err) { + } catch (err: any) { return errorHandler(err, res); } }); @@ -169,7 +169,7 @@ export async function makeServer( await adapter.process(req, res, async (turnContext) => { await bot.run(turnContext); }); - } catch (err) { + } catch (err: any) { return errorHandler(err, res); } }); @@ -197,7 +197,7 @@ export async function makeServer( await adapter.process(req, socket, head, async (context) => { await bot.run(context); }); - } catch (err) { + } catch (err: any) { return errorHandler(err); } }); diff --git a/libraries/botbuilder-dialogs-adaptive-runtime/src/index.ts b/libraries/botbuilder-dialogs-adaptive-runtime/src/index.ts index f2022e9b32..1c68ad8af2 100644 --- a/libraries/botbuilder-dialogs-adaptive-runtime/src/index.ts +++ b/libraries/botbuilder-dialogs-adaptive-runtime/src/index.ts @@ -442,7 +442,7 @@ async function addSettingsBotComponents(services: ServiceCollection, configurati const botComponent = await loadBotComponent(name); botComponent.configureServices(services, configuration.bind([settingsPrefix ?? name])); - } catch (error) { + } catch (error: any) { loadErrors.push({ error, name }); } } diff --git a/libraries/botbuilder-stdlib/src/retry.ts b/libraries/botbuilder-stdlib/src/retry.ts index 741e19e706..9bc9e1d060 100644 --- a/libraries/botbuilder-stdlib/src/retry.ts +++ b/libraries/botbuilder-stdlib/src/retry.ts @@ -25,7 +25,7 @@ export async function retry( try { // Note: return await intentional so we can catch errors return await promise(n); - } catch (err) { + } catch (err: any) { maybeError = err; await new Promise((resolve) => setTimeout(resolve, delay)); diff --git a/package.json b/package.json index 9414b403c2..d2eeb1825b 100644 --- a/package.json +++ b/package.json @@ -91,11 +91,11 @@ "source-map-support": "^0.5.19", "sponge": "^0.1.0", "tinyify": "^3.0.0", - "ts-node": "^9.0.0", + "ts-node": "^10.0.0", "typedoc": "^0.19.2", "typedoc-plugin-external-module-name": "^4.0.3", "typedoc-plugin-markdown": "^3.0.11", - "typescript": "^4.0.5", + "typescript": "^4.1.0", "wsrun": "^5.2.4" }, "nyc": { diff --git a/yarn.lock b/yarn.lock index 7bc3932ced..91c7db2bbe 100644 --- a/yarn.lock +++ b/yarn.lock @@ -40,6 +40,14 @@ "@azure/abort-controller" "^1.0.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": version "1.5.0" resolved "https://registry.yarnpkg.com/@azure/core-client/-/core-client-1.5.0.tgz#7aabb87d20e08db3683a117191c844bc19adb74e" @@ -175,11 +183,12 @@ dependencies: tslib "^2.0.0" -"@azure/cosmos@^3.3.1": - version "3.9.2" - resolved "https://registry.yarnpkg.com/@azure/cosmos/-/cosmos-3.9.2.tgz#2d4ca87bdef5fa1358f022a13305510691147ab0" - integrity sha512-nS02/LyjE22osouSJGWw6DqJ34tbkEgAcysrbKyDzyiqdDKNprP8sAU43WGVr6Jxjw8jGBzg6rkHz9A+IvPcdg== +"@azure/cosmos@3.10.0": + version "3.10.0" + resolved "https://registry.yarnpkg.com/@azure/cosmos/-/cosmos-3.10.0.tgz#ec11828e380a656f689357b51e8f3f451d78640d" + integrity sha512-B0cVMLy7XvsaL6t2AKn/1KDLfEctnH4AZAqkoDLR3Q+IXWHoZ5BxDWm5URr7PY2tW8igfWWMSiXxStBi6BWuVQ== dependencies: + "@azure/core-auth" "^1.2.0" "@types/debug" "^4.1.4" debug "^4.1.1" fast-json-stable-stringify "^2.0.0" @@ -190,7 +199,7 @@ semaphore "^1.0.5" tslib "^2.0.0" universal-user-agent "^6.0.0" - uuid "^8.1.0" + uuid "^8.3.0" "@azure/functions@^1.2.3": version "1.2.3" @@ -1298,6 +1307,13 @@ "@babel/helper-validator-identifier" "^7.14.5" 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": version "0.4.0" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.0.tgz#99cc0a0584d72f1df38b900fb062ba995f395547" @@ -1357,6 +1373,24 @@ "@types/istanbul-reports" "^1.1.1" "@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": version "1.0.10" 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" 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@*": version "1.3.1" resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" @@ -1743,9 +1797,11 @@ "@types/node" "*" "@types/debug@^4.1.4": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" - integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ== + version "4.1.7" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82" + integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== + dependencies: + "@types/ms" "*" "@types/events@*": version "3.0.0" @@ -1904,6 +1960,11 @@ resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.2.0.tgz#3eb56d13a1de1d347ecb1957c6860c911704bc44" 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": version "0.10.0" 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" 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" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" 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" 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: version "8.8.0" 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" 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: version "3.1.5" 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" node-abort-controller@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-1.1.0.tgz#8a734a631b022af29963be7245c1483cbb9e070d" - integrity sha512-dEYmUqjtbivotqjraOe8UvhT/poFfog1BQRNsZm/MSEDDESk2cQ1tvD8kGyuN07TM/zoW+n42odL8zTeJupYdQ== + version "1.2.1" + resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-1.2.1.tgz#1eddb57eb8fea734198b11b28857596dc6165708" + integrity sha512-79PYeJuj6S9+yOHirR0JBLFOgjB6sQCir10uN6xRx25iD+ZD4ULqgRn3MwWBRaQGB0vEgReJzWwJo42T1R6YbQ== node-addon-api@^3.1.0: version "3.1.0" @@ -12468,6 +12539,25 @@ ts-loader@^7.0.5: micromatch "^4.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: version "9.0.0" 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" 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: version "4.1.0-dev.20201102" 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" 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: version "2.2.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132"