From 0148631d28c801c315f33f4c26b3c07540283113 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=A4=95=E0=A4=BE=E0=A4=B0=E0=A4=A4=E0=A5=8B=E0=A4=AB?= =?UTF-8?q?=E0=A5=8D=E0=A4=AB=E0=A5=87=E0=A4=B2=E0=A4=B8=E0=A5=8D=E0=A4=95?= =?UTF-8?q?=E0=A5=8D=E0=A4=B0=E0=A4=BF=E0=A4=AA=E0=A5=8D=E0=A4=9F=E2=84=A2?= Date: Mon, 14 Nov 2022 15:37:32 +0100 Subject: [PATCH] build: Upgrade some of the backend dev-tooling (no-changelog) (#4589) * upgrade ts-node * move tslint and typescript to a single place * source-map-support should be loaded in the `n8n` bin script, and not in core * upgrade jest * Support only node.js 14, 16, or 18 --- jest.config.js | 23 +- package.json | 11 +- packages/@n8n_io/eslint-config/package.json | 3 +- packages/cli/bin/n8n | 29 +- packages/cli/package.json | 7 +- packages/core/package.json | 3 +- packages/core/src/Interfaces.ts | 56 +- packages/core/src/NodeExecuteFunctions.ts | 1 - packages/core/src/WorkflowExecute.ts | 1 - packages/core/src/index.ts | 6 - packages/editor-ui/package.json | 1 - packages/nodes-base/package.json | 4 +- packages/workflow/src/Interfaces.ts | 20 +- packages/workflow/src/WorkflowHooks.ts | 1 - pnpm-lock.yaml | 843 ++++++++++++-------- 15 files changed, 574 insertions(+), 435 deletions(-) diff --git a/jest.config.js b/jest.config.js index 75d8ca974a..ee19fa41c1 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,22 +1,23 @@ const { compilerOptions } = require('./tsconfig.json'); +const tsJestOptions = { + isolatedModules: true, + tsconfig: { + ...compilerOptions, + declaration: false, + sourceMap: false, + skipLibCheck: true, + }, +}; + /** @type {import('jest').Config} */ module.exports = { verbose: true, - preset: 'ts-jest', testEnvironment: 'node', testRegex: '\\.(test|spec)\\.(js|ts)$', testPathIgnorePatterns: ['/dist/', '/node_modules/'], - globals: { - 'ts-jest': { - isolatedModules: true, - tsconfig: { - ...compilerOptions, - declaration: false, - sourceMap: false, - skipLibCheck: true, - }, - }, + transform: { + '^.+\\.ts$': ['ts-jest', tsJestOptions], }, moduleNameMapper: { '^@/(.*)$': '/src/$1', diff --git a/package.json b/package.json index 114da95fcf..c31db3f5da 100644 --- a/package.json +++ b/package.json @@ -39,20 +39,19 @@ "devDependencies": { "@n8n_io/eslint-config": "*", "@ngneat/falso": "^6.1.0", - "@types/jest": "^28.1.8", + "@types/jest": "^29.2.2", "@types/node": "^16.11.22", "cross-env": "^7.0.3", "cypress": "^10.0.3", - "jest": "^28.1.3", - "jest-environment-jsdom": "^28.1.3", - "jest-mock": "^28.1.3", + "jest": "^29.3.1", + "jest-environment-jsdom": "^29.3.1", + "jest-mock": "^29.3.1", "prettier": "^2.3.2", "rimraf": "^3.0.2", "run-script-os": "^1.0.7", "start-server-and-test": "^1.14.0", "supertest": "^6.2.2", - "ts-jest": "^28.0.8", - "ts-node": "^9.1.1", + "ts-jest": "^29.0.3", "turbo": "1.5.5", "typescript": "^4.8.4" }, diff --git a/packages/@n8n_io/eslint-config/package.json b/packages/@n8n_io/eslint-config/package.json index c2343912f6..10fab1eb39 100644 --- a/packages/@n8n_io/eslint-config/package.json +++ b/packages/@n8n_io/eslint-config/package.json @@ -14,7 +14,8 @@ "eslint-plugin-import": "~2.26", "eslint-plugin-n8n-local-rules": "~1.0", "eslint-plugin-prettier": "~4.2", - "eslint-plugin-vue": "~7.17" + "eslint-plugin-vue": "~7.17", + "tslint": "^6.1.3" }, "scripts": { "clean": "rimraf .turbo", diff --git a/packages/cli/bin/n8n b/packages/cli/bin/n8n index ef4aeff866..3b0b3c9297 100755 --- a/packages/cli/bin/n8n +++ b/packages/cli/bin/n8n @@ -1,17 +1,13 @@ #!/usr/bin/env node -var path = require('path'); +const path = require('path'); // Make sure that it also find the config folder when it // did get started from another folder that the root one. process.env.NODE_CONFIG_DIR = process.env.NODE_CONFIG_DIR || path.join(__dirname, 'config'); // Check if version should be displayed -var versionFlags = [ - '-v', - '-V', - '--version', -]; +const versionFlags = ['-v', '-V', '--version']; if (versionFlags.includes(process.argv.slice(-1)[0])) { console.log(require('../package').version); process.exit(0); @@ -22,13 +18,22 @@ if (process.argv.length === 2) { process.argv.push('start'); } -var nodeVersion = process.versions.node.split('.'); +const nodeVersion = process.versions.node; +const nodeVersionMajor = require('semver').major(nodeVersion); -if (parseInt(nodeVersion[0], 10) < 14) { - console.log(`\nYour Node.js version (${process.versions.node}) is too old to run n8n.\nPlease update at least to Node.js v14 or to the recommended Node.js v16!\n`); +if (![14, 16, 18].includes(nodeVersionMajor)) { + console.log(` + Your Node.js version (${nodeVersion}) is currently not supported by n8n. + Please use Node.js v14, v16 (recommended), or v18 instead! + `); process.exit(1); } -require('@oclif/command').run() -.then(require('@oclif/command/flush')) -.catch(require('@oclif/errors/handle')); +try { + require('source-map-support').install(); +} catch {} + +require('@oclif/command') + .run() + .then(require('@oclif/command/flush')) + .catch(require('@oclif/errors/handle')); diff --git a/packages/cli/package.json b/packages/cli/package.json index 2f6a08975b..236188389b 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -96,11 +96,11 @@ "concurrently": "^5.1.0", "nodemon": "^2.0.2", "run-script-os": "^1.0.7", + "source-map-support": "^0.5.21", "supertest": "^6.2.2", - "ts-node": "^8.9.1", + "ts-node": "^9.1.1", "tsc-alias": "^1.7.0", - "tsconfig-paths": "^3.14.1", - "typescript": "~4.8.0" + "tsconfig-paths": "^3.14.1" }, "dependencies": { "@oclif/command": "^1.8.16", @@ -164,6 +164,7 @@ "posthog-node": "^1.3.0", "prom-client": "^13.1.0", "psl": "^1.8.0", + "semver": "^7.3.8", "shelljs": "^0.8.5", "sqlite3": "^5.1.2", "sse-channel": "^3.1.1", diff --git a/packages/core/package.json b/packages/core/package.json index 48ed341cfc..fcfd7a0d06 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -35,8 +35,7 @@ "@types/lodash.get": "^4.4.6", "@types/mime-types": "^2.1.0", "@types/request-promise-native": "~1.0.15", - "@types/uuid": "^8.3.2", - "source-map-support": "^0.5.9" + "@types/uuid": "^8.3.2" }, "dependencies": { "axios": "^0.21.1", diff --git a/packages/core/src/Interfaces.ts b/packages/core/src/Interfaces.ts index d0ec2f024a..c048ad7b79 100644 --- a/packages/core/src/Interfaces.ts +++ b/packages/core/src/Interfaces.ts @@ -32,7 +32,7 @@ export interface IProcessMessage { export interface IExecuteFunctions extends IExecuteFunctionsBase { helpers: { - httpRequest(requestOptions: IHttpRequestOptions): Promise; // tslint:disable-line:no-any + httpRequest(requestOptions: IHttpRequestOptions): Promise; prepareBinaryData( binaryData: Buffer, filePath?: string, @@ -40,7 +40,7 @@ export interface IExecuteFunctions extends IExecuteFunctionsBase { ): Promise; getBinaryDataBuffer(itemIndex: number, propertyName: string): Promise; setBinaryDataBuffer(data: IBinaryData, binaryData: Buffer): Promise; - request: (uriOrObject: string | IDataObject | any, options?: IDataObject) => Promise; // tslint:disable-line:no-any + request: (uriOrObject: string | IDataObject | any, options?: IDataObject) => Promise; requestWithAuthentication( this: IAllExecuteFunctions, credentialsType: string, @@ -52,12 +52,12 @@ export interface IExecuteFunctions extends IExecuteFunctionsBase { credentialsType: string, requestOptions: OptionsWithUri | RequestPromiseOptions, oAuth2Options?: IOAuth2Options, - ): Promise; // tslint:disable-line:no-any + ): Promise; requestOAuth1( this: IAllExecuteFunctions, credentialsType: string, requestOptions: OptionsWithUrl | RequestPromiseOptions, - ): Promise; // tslint:disable-line:no-any + ): Promise; returnJsonArray(jsonData: IDataObject | IDataObject[]): INodeExecutionData[]; normalizeItems(items: INodeExecutionData | INodeExecutionData[]): INodeExecutionData[]; httpRequestWithAuthentication( @@ -76,13 +76,13 @@ export interface IExecuteSingleFunctions extends IExecuteSingleFunctionsBase { helpers: { getBinaryDataBuffer(propertyName: string, inputIndex?: number): Promise; setBinaryDataBuffer(data: IBinaryData, binaryData: Buffer): Promise; - httpRequest(requestOptions: IHttpRequestOptions): Promise; // tslint:disable-line:no-any + httpRequest(requestOptions: IHttpRequestOptions): Promise; prepareBinaryData( binaryData: Buffer, filePath?: string, mimeType?: string, ): Promise; - request: (uriOrObject: string | IDataObject | any, options?: IDataObject) => Promise; // tslint:disable-line:no-any + request: (uriOrObject: string | IDataObject | any, options?: IDataObject) => Promise; requestWithAuthentication( this: IAllExecuteFunctions, credentialsType: string, @@ -94,12 +94,12 @@ export interface IExecuteSingleFunctions extends IExecuteSingleFunctionsBase { credentialsType: string, requestOptions: OptionsWithUri | RequestPromiseOptions, oAuth2Options?: IOAuth2Options, - ): Promise; // tslint:disable-line:no-any + ): Promise; requestOAuth1( this: IAllExecuteFunctions, credentialsType: string, requestOptions: OptionsWithUrl | RequestPromiseOptions, - ): Promise; // tslint:disable-line:no-any + ): Promise; httpRequestWithAuthentication( this: IAllExecuteFunctions, credentialsType: string, @@ -110,13 +110,13 @@ export interface IExecuteSingleFunctions extends IExecuteSingleFunctionsBase { export interface IPollFunctions extends IPollFunctionsBase { helpers: { - httpRequest(requestOptions: IHttpRequestOptions): Promise; // tslint:disable-line:no-any + httpRequest(requestOptions: IHttpRequestOptions): Promise; prepareBinaryData( binaryData: Buffer, filePath?: string, mimeType?: string, ): Promise; - request: (uriOrObject: string | IDataObject | any, options?: IDataObject) => Promise; // tslint:disable-line:no-any + request: (uriOrObject: string | IDataObject | any, options?: IDataObject) => Promise; requestWithAuthentication( this: IAllExecuteFunctions, credentialsType: string, @@ -128,12 +128,12 @@ export interface IPollFunctions extends IPollFunctionsBase { credentialsType: string, requestOptions: OptionsWithUri | RequestPromiseOptions, oAuth2Options?: IOAuth2Options, - ): Promise; // tslint:disable-line:no-any + ): Promise; requestOAuth1( this: IAllExecuteFunctions, credentialsType: string, requestOptions: OptionsWithUrl | RequestPromiseOptions, - ): Promise; // tslint:disable-line:no-any + ): Promise; returnJsonArray(jsonData: IDataObject | IDataObject[]): INodeExecutionData[]; httpRequestWithAuthentication( this: IAllExecuteFunctions, @@ -149,13 +149,13 @@ export interface IResponseError extends Error { export interface ITriggerFunctions extends ITriggerFunctionsBase { helpers: { - httpRequest(requestOptions: IHttpRequestOptions): Promise; // tslint:disable-line:no-any + httpRequest(requestOptions: IHttpRequestOptions): Promise; prepareBinaryData( binaryData: Buffer, filePath?: string, mimeType?: string, ): Promise; - request: (uriOrObject: string | IDataObject | any, options?: IDataObject) => Promise; // tslint:disable-line:no-any + request: (uriOrObject: string | IDataObject | any, options?: IDataObject) => Promise; requestWithAuthentication( this: IAllExecuteFunctions, credentialsType: string, @@ -167,12 +167,12 @@ export interface ITriggerFunctions extends ITriggerFunctionsBase { credentialsType: string, requestOptions: OptionsWithUri | RequestPromiseOptions, oAuth2Options?: IOAuth2Options, - ): Promise; // tslint:disable-line:no-any + ): Promise; requestOAuth1( this: IAllExecuteFunctions, credentialsType: string, requestOptions: OptionsWithUrl | RequestPromiseOptions, - ): Promise; // tslint:disable-line:no-any + ): Promise; returnJsonArray(jsonData: IDataObject | IDataObject[]): INodeExecutionData[]; httpRequestWithAuthentication( this: IAllExecuteFunctions, @@ -190,8 +190,8 @@ export interface IUserSettings { export interface ILoadOptionsFunctions extends ILoadOptionsFunctionsBase { helpers: { - httpRequest(requestOptions: IHttpRequestOptions): Promise; // tslint:disable-line:no-any - request?: (uriOrObject: string | IDataObject | any, options?: IDataObject) => Promise; // tslint:disable-line:no-any + httpRequest(requestOptions: IHttpRequestOptions): Promise; + request?: (uriOrObject: string | IDataObject | any, options?: IDataObject) => Promise; requestWithAuthentication( this: IAllExecuteFunctions, credentialsType: string, @@ -203,12 +203,12 @@ export interface ILoadOptionsFunctions extends ILoadOptionsFunctionsBase { credentialsType: string, requestOptions: OptionsWithUri | RequestPromiseOptions, oAuth2Options?: IOAuth2Options, - ) => Promise; // tslint:disable-line:no-any + ) => Promise; requestOAuth1?( this: IAllExecuteFunctions, credentialsType: string, requestOptions: OptionsWithUrl | RequestPromiseOptions, - ): Promise; // tslint:disable-line:no-any + ): Promise; httpRequestWithAuthentication( this: IAllExecuteFunctions, credentialsType: string, @@ -225,8 +225,8 @@ export interface ICredentialTestFunctions extends ICredentialTestFunctionsBase { export interface IHookFunctions extends IHookFunctionsBase { helpers: { - httpRequest(requestOptions: IHttpRequestOptions): Promise; // tslint:disable-line:no-any - request: (uriOrObject: string | IDataObject | any, options?: IDataObject) => Promise; // tslint:disable-line:no-any + httpRequest(requestOptions: IHttpRequestOptions): Promise; + request: (uriOrObject: string | IDataObject | any, options?: IDataObject) => Promise; requestWithAuthentication( this: IAllExecuteFunctions, credentialsType: string, @@ -238,12 +238,12 @@ export interface IHookFunctions extends IHookFunctionsBase { credentialsType: string, requestOptions: OptionsWithUri | RequestPromiseOptions, oAuth2Options?: IOAuth2Options, - ): Promise; // tslint:disable-line:no-any + ): Promise; requestOAuth1( this: IAllExecuteFunctions, credentialsType: string, requestOptions: OptionsWithUrl | RequestPromiseOptions, - ): Promise; // tslint:disable-line:no-any + ): Promise; httpRequestWithAuthentication( this: IAllExecuteFunctions, credentialsType: string, @@ -254,13 +254,13 @@ export interface IHookFunctions extends IHookFunctionsBase { export interface IWebhookFunctions extends IWebhookFunctionsBase { helpers: { - httpRequest(requestOptions: IHttpRequestOptions): Promise; // tslint:disable-line:no-any + httpRequest(requestOptions: IHttpRequestOptions): Promise; prepareBinaryData( binaryData: Buffer, filePath?: string, mimeType?: string, ): Promise; - request: (uriOrObject: string | IDataObject | any, options?: IDataObject) => Promise; // tslint:disable-line:no-any + request: (uriOrObject: string | IDataObject | any, options?: IDataObject) => Promise; requestWithAuthentication( this: IAllExecuteFunctions, credentialsType: string, @@ -272,12 +272,12 @@ export interface IWebhookFunctions extends IWebhookFunctionsBase { credentialsType: string, requestOptions: OptionsWithUri | RequestPromiseOptions, oAuth2Options?: IOAuth2Options, - ): Promise; // tslint:disable-line:no-any + ): Promise; requestOAuth1( this: IAllExecuteFunctions, credentialsType: string, requestOptions: OptionsWithUrl | RequestPromiseOptions, - ): Promise; // tslint:disable-line:no-any + ): Promise; returnJsonArray(jsonData: IDataObject | IDataObject[]): INodeExecutionData[]; httpRequestWithAuthentication( this: IAllExecuteFunctions, diff --git a/packages/core/src/NodeExecuteFunctions.ts b/packages/core/src/NodeExecuteFunctions.ts index 581129c5a3..d56a6f7d5b 100644 --- a/packages/core/src/NodeExecuteFunctions.ts +++ b/packages/core/src/NodeExecuteFunctions.ts @@ -559,7 +559,6 @@ function digestAuthAxiosConfig( async function proxyRequestToAxios( uriOrObject: string | IDataObject, options?: IDataObject, - // tslint:disable-next-line:no-any ): Promise { // Check if there's a better way of getting this config here if (process.env.N8N_USE_DEPRECATED_REQUEST_LIB) { diff --git a/packages/core/src/WorkflowExecute.ts b/packages/core/src/WorkflowExecute.ts index 9cbf6334d6..8eed16f04f 100644 --- a/packages/core/src/WorkflowExecute.ts +++ b/packages/core/src/WorkflowExecute.ts @@ -292,7 +292,6 @@ export class WorkflowExecute { */ // eslint-disable-next-line @typescript-eslint/no-explicit-any async executeHook(hookName: string, parameters: any[]): Promise { - // tslint:disable-line:no-any if (this.additionalData.hooks === undefined) { return; } diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 88d41b6214..95ff90e6eb 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -1,12 +1,6 @@ import * as NodeExecuteFunctions from './NodeExecuteFunctions'; import * as UserSettings from './UserSettings'; -try { - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, import/no-extraneous-dependencies, global-require, @typescript-eslint/no-var-requires - require('source-map-support').install(); - // eslint-disable-next-line no-empty -} catch (error) {} - export * from './ActiveWorkflows'; export * from './ActiveWebhooks'; export * from './BinaryDataManager'; diff --git a/packages/editor-ui/package.json b/packages/editor-ui/package.json index 4dc1be7732..aff6531ebe 100644 --- a/packages/editor-ui/package.json +++ b/packages/editor-ui/package.json @@ -102,7 +102,6 @@ "sass": "^1.55.0", "sass-loader": "^10.1.1", "string-template-parser": "^1.2.6", - "tslint": "^6.1.2", "vite": "2.9.5", "vite-plugin-html": "^3.2.0", "vite-plugin-monaco-editor": "^1.0.10", diff --git a/packages/nodes-base/package.json b/packages/nodes-base/package.json index 8edfb5ea1f..134cf509d2 100644 --- a/packages/nodes-base/package.json +++ b/packages/nodes-base/package.json @@ -750,9 +750,7 @@ "@types/xml2js": "^0.4.3", "eslint-plugin-n8n-nodes-base": "^1.11.0", "gulp": "^4.0.0", - "n8n-workflow": "~0.124.1", - "tslint": "^6.1.2", - "typescript": "~4.8.0" + "n8n-workflow": "~0.124.1" }, "dependencies": { "@kafkajs/confluent-schema-registry": "1.0.6", diff --git a/packages/workflow/src/Interfaces.ts b/packages/workflow/src/Interfaces.ts index d2637f5053..9516ce8568 100644 --- a/packages/workflow/src/Interfaces.ts +++ b/packages/workflow/src/Interfaces.ts @@ -583,8 +583,8 @@ export interface IExecuteFunctions { outputIndex?: number, ): Promise; putExecutionToWait(waitTill: Date): Promise; - sendMessageToUI(message: any): void; // tslint:disable-line:no-any - sendResponse(response: IExecuteResponsePromiseData): void; // tslint:disable-line:no-any + sendMessageToUI(message: any): void; + sendResponse(response: IExecuteResponsePromiseData): void; helpers: { httpRequest( requestOptions: IHttpRequestOptions, @@ -595,7 +595,7 @@ export interface IExecuteFunctions { requestOptions: IHttpRequestOptions, additionalCredentialOptions?: IAdditionalCredentialOptions, ): Promise; - [key: string]: (...args: any[]) => any; // tslint:disable-line:no-any + [key: string]: (...args: any[]) => any; }; } @@ -629,7 +629,7 @@ export interface IExecuteSingleFunctions { requestOptions: IHttpRequestOptions, additionalCredentialOptions?: IAdditionalCredentialOptions, ): Promise; - [key: string]: (...args: any[]) => any; // tslint:disable-line:no-any + [key: string]: (...args: any[]) => any; }; } @@ -679,7 +679,7 @@ export interface ILoadOptionsFunctions { requestWithAuthentication( this: IAllExecuteFunctions, credentialsType: string, - requestOptions: any, // tslint:disable-line:no-any + requestOptions: any, additionalCredentialOptions?: IAdditionalCredentialOptions, ): Promise; httpRequestWithAuthentication( @@ -688,7 +688,7 @@ export interface ILoadOptionsFunctions { requestOptions: IHttpRequestOptions, additionalCredentialOptions?: IAdditionalCredentialOptions, ): Promise; - [key: string]: ((...args: any[]) => any) | undefined; // tslint:disable-line:no-any + [key: string]: ((...args: any[]) => any) | undefined; }; } @@ -718,7 +718,7 @@ export interface IHookFunctions { requestOptions: IHttpRequestOptions, additionalCredentialOptions?: IAdditionalCredentialOptions, ): Promise; - [key: string]: (...args: any[]) => any; // tslint:disable-line:no-any + [key: string]: (...args: any[]) => any; }; } @@ -752,7 +752,7 @@ export interface IPollFunctions { requestOptions: IHttpRequestOptions, additionalCredentialOptions?: IAdditionalCredentialOptions, ): Promise; - [key: string]: (...args: any[]) => any; // tslint:disable-line:no-any + [key: string]: (...args: any[]) => any; }; } @@ -786,7 +786,7 @@ export interface ITriggerFunctions { requestOptions: IHttpRequestOptions, additionalCredentialOptions?: IAdditionalCredentialOptions, ): Promise; - [key: string]: (...args: any[]) => any; // tslint:disable-line:no-any + [key: string]: (...args: any[]) => any; }; } @@ -824,7 +824,7 @@ export interface IWebhookFunctions { requestOptions: IHttpRequestOptions, additionalCredentialOptions?: IAdditionalCredentialOptions, ): Promise; - [key: string]: (...args: any[]) => any; // tslint:disable-line:no-any + [key: string]: (...args: any[]) => any; }; } diff --git a/packages/workflow/src/WorkflowHooks.ts b/packages/workflow/src/WorkflowHooks.ts index f8021e8ccd..3392d080da 100644 --- a/packages/workflow/src/WorkflowHooks.ts +++ b/packages/workflow/src/WorkflowHooks.ts @@ -38,7 +38,6 @@ export class WorkflowHooks { // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any async executeHookFunctions(hookName: string, parameters: any[]) { - // tslint:disable-line:no-any if (this.hookFunctions[hookName] !== undefined && Array.isArray(this.hookFunctions[hookName])) { // eslint-disable-next-line @typescript-eslint/no-non-null-assertion, no-restricted-syntax for (const hookFunction of this.hookFunctions[hookName]!) { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f62f875ad5..a3b1b11173 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,21 +21,20 @@ importers: specifiers: '@n8n_io/eslint-config': '*' '@ngneat/falso': ^6.1.0 - '@types/jest': ^28.1.8 + '@types/jest': ^29.2.2 '@types/node': ^16.11.22 cross-env: ^7.0.3 cypress: ^10.0.3 - jest: ^28.1.3 - jest-environment-jsdom: ^28.1.3 - jest-mock: ^28.1.3 + jest: ^29.3.1 + jest-environment-jsdom: ^29.3.1 + jest-mock: ^29.3.1 n8n: '*' prettier: ^2.3.2 rimraf: ^3.0.2 run-script-os: ^1.0.7 start-server-and-test: ^1.14.0 supertest: ^6.2.2 - ts-jest: ^28.0.8 - ts-node: ^9.1.1 + ts-jest: ^29.0.3 turbo: 1.5.5 typescript: ^4.8.4 dependencies: @@ -43,20 +42,19 @@ importers: devDependencies: '@n8n_io/eslint-config': link:packages/@n8n_io/eslint-config '@ngneat/falso': 6.1.0 - '@types/jest': 28.1.8 + '@types/jest': 29.2.2 '@types/node': 16.11.65 cross-env: 7.0.3 cypress: 10.11.0 - jest: 28.1.3_nfsrgz5svgjbkxnex2uhjyxexa - jest-environment-jsdom: 28.1.3 - jest-mock: 28.1.3 + jest: 29.3.1_@types+node@16.11.65 + jest-environment-jsdom: 29.3.1 + jest-mock: 29.3.1 prettier: 2.7.1 rimraf: 3.0.2 run-script-os: 1.1.6 start-server-and-test: 1.14.0 supertest: 6.3.0 - ts-jest: 28.0.8_tdm5zcqep4nsvpmkmbrzs32za4 - ts-node: 9.1.1_typescript@4.8.4 + ts-jest: 29.0.3_s73gpqhbuwbfokcbq32jn3f4zi turbo: 1.5.5 typescript: 4.8.4 @@ -74,6 +72,7 @@ importers: eslint-plugin-n8n-local-rules: ~1.0 eslint-plugin-prettier: ~4.2 eslint-plugin-vue: ~7.17 + tslint: ^6.1.3 devDependencies: '@types/eslint': 8.4.6 '@typescript-eslint/eslint-plugin': 5.36.2_gxwdnffpiv5ciyba5kqrxpisdq @@ -87,6 +86,7 @@ importers: eslint-plugin-n8n-local-rules: 1.0.0 eslint-plugin-prettier: 4.2.1_aniwkeyvlpmwkidetuytnokvcm eslint-plugin-vue: 7.17.0_eslint@8.26.0 + tslint: 6.1.3_typescript@4.8.4 packages/cli: specifiers: @@ -186,17 +186,18 @@ importers: prom-client: ^13.1.0 psl: ^1.8.0 run-script-os: ^1.0.7 + semver: ^7.3.8 shelljs: ^0.8.5 + source-map-support: ^0.5.21 sqlite3: ^5.1.2 sse-channel: ^3.1.1 supertest: ^6.2.2 swagger-ui-express: ^4.3.0 - ts-node: ^8.9.1 + ts-node: ^9.1.1 tsc-alias: ^1.7.0 tsconfig-paths: ^3.14.1 tslib: 1.14.1 typeorm: 0.2.45 - typescript: ~4.8.0 uuid: ^8.3.2 validator: 13.7.0 winston: ^3.3.3 @@ -263,6 +264,7 @@ importers: posthog-node: 1.3.0 prom-client: 13.2.0 psl: 1.9.0 + semver: 7.3.8 shelljs: 0.8.5 sqlite3: 5.1.2 sse-channel: 3.1.1 @@ -309,11 +311,11 @@ importers: concurrently: 5.3.0 nodemon: 2.0.20 run-script-os: 1.1.6 + source-map-support: 0.5.21 supertest: 6.3.0 - ts-node: 8.10.2_typescript@4.8.4 + ts-node: 9.1.1_typescript@4.8.4 tsc-alias: 1.7.1 tsconfig-paths: 3.14.1 - typescript: 4.8.4 packages/core: specifiers: @@ -339,7 +341,6 @@ importers: qs: ^6.10.1 request: ^2.88.2 request-promise-native: ^1.0.7 - source-map-support: ^0.5.9 uuid: ^8.3.2 dependencies: axios: 0.21.4 @@ -366,7 +367,6 @@ importers: '@types/mime-types': 2.1.1 '@types/request-promise-native': 1.0.18 '@types/uuid': 8.3.4 - source-map-support: 0.5.21 packages/design-system: specifiers: @@ -514,7 +514,6 @@ importers: sass-loader: ^10.1.1 string-template-parser: ^1.2.6 timeago.js: ^4.0.2 - tslint: ^6.1.2 uuid: ^8.3.2 v-click-outside: ^3.1.2 vite: 2.9.5 @@ -611,7 +610,6 @@ importers: sass: 1.55.0 sass-loader: 10.3.1_sass@1.55.0+webpack@5.74.0 string-template-parser: 1.2.6 - tslint: 6.1.3_typescript@4.8.4 vite: 2.9.5_sass@1.55.0 vite-plugin-html: 3.2.0_vite@2.9.5 vite-plugin-monaco-editor: 1.1.0_monaco-editor@0.33.0 @@ -739,8 +737,6 @@ importers: snowflake-sdk: ^1.5.3 ssh2-sftp-client: ^7.0.0 tmp-promise: ^3.0.2 - tslint: ^6.1.2 - typescript: ~4.8.0 uuid: ^8.3.2 vm2: ~3.9.5 xlsx: ^0.17.0 @@ -833,8 +829,6 @@ importers: eslint-plugin-n8n-nodes-base: 1.11.0_wyqvi574yv7oiwfeinomdzmc3m gulp: 4.0.2 n8n-workflow: link:../workflow - tslint: 6.1.3_typescript@4.8.4 - typescript: 4.8.4 packages/workflow: specifiers: @@ -2895,54 +2889,53 @@ packages: engines: {node: '>=8'} dev: true - /@jest/console/28.1.3: - resolution: {integrity: sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /@jest/console/29.3.1: + resolution: {integrity: sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 28.1.3 + '@jest/types': 29.3.1 '@types/node': 16.11.65 chalk: 4.1.2 - jest-message-util: 28.1.3 - jest-util: 28.1.3 + jest-message-util: 29.3.1 + jest-util: 29.3.1 slash: 3.0.0 dev: true - /@jest/core/28.1.3_ts-node@9.1.1: - resolution: {integrity: sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /@jest/core/29.3.1: + resolution: {integrity: sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: node-notifier: optional: true dependencies: - '@jest/console': 28.1.3 - '@jest/reporters': 28.1.3 - '@jest/test-result': 28.1.3 - '@jest/transform': 28.1.3 - '@jest/types': 28.1.3 + '@jest/console': 29.3.1 + '@jest/reporters': 29.3.1 + '@jest/test-result': 29.3.1 + '@jest/transform': 29.3.1 + '@jest/types': 29.3.1 '@types/node': 16.11.65 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.5.0 exit: 0.1.2 graceful-fs: 4.2.10 - jest-changed-files: 28.1.3 - jest-config: 28.1.3_nfsrgz5svgjbkxnex2uhjyxexa - jest-haste-map: 28.1.3 - jest-message-util: 28.1.3 - jest-regex-util: 28.0.2 - jest-resolve: 28.1.3 - jest-resolve-dependencies: 28.1.3 - jest-runner: 28.1.3 - jest-runtime: 28.1.3 - jest-snapshot: 28.1.3 - jest-util: 28.1.3 - jest-validate: 28.1.3 - jest-watcher: 28.1.3 + jest-changed-files: 29.2.0 + jest-config: 29.3.1_@types+node@16.11.65 + jest-haste-map: 29.3.1 + jest-message-util: 29.3.1 + jest-regex-util: 29.2.0 + jest-resolve: 29.3.1 + jest-resolve-dependencies: 29.3.1 + jest-runner: 29.3.1 + jest-runtime: 29.3.1 + jest-snapshot: 29.3.1 + jest-util: 29.3.1 + jest-validate: 29.3.1 + jest-watcher: 29.3.1 micromatch: 4.0.5 - pretty-format: 28.1.3 - rimraf: 3.0.2 + pretty-format: 29.3.1 slash: 3.0.0 strip-ansi: 6.0.1 transitivePeerDependencies: @@ -2950,14 +2943,14 @@ packages: - ts-node dev: true - /@jest/environment/28.1.3: - resolution: {integrity: sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /@jest/environment/29.3.1: + resolution: {integrity: sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/fake-timers': 28.1.3 - '@jest/types': 28.1.3 + '@jest/fake-timers': 29.3.1 + '@jest/types': 29.3.1 '@types/node': 16.11.65 - jest-mock: 28.1.3 + jest-mock: 29.3.1 dev: true /@jest/expect-utils/28.1.3: @@ -2967,42 +2960,50 @@ packages: jest-get-type: 28.0.2 dev: true - /@jest/expect/28.1.3: - resolution: {integrity: sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /@jest/expect-utils/29.3.1: + resolution: {integrity: sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - expect: 28.1.3 - jest-snapshot: 28.1.3 + jest-get-type: 29.2.0 + dev: true + + /@jest/expect/29.3.1: + resolution: {integrity: sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + expect: 29.3.1 + jest-snapshot: 29.3.1 transitivePeerDependencies: - supports-color dev: true - /@jest/fake-timers/28.1.3: - resolution: {integrity: sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /@jest/fake-timers/29.3.1: + resolution: {integrity: sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 28.1.3 + '@jest/types': 29.3.1 '@sinonjs/fake-timers': 9.1.2 '@types/node': 16.11.65 - jest-message-util: 28.1.3 - jest-mock: 28.1.3 - jest-util: 28.1.3 + jest-message-util: 29.3.1 + jest-mock: 29.3.1 + jest-util: 29.3.1 dev: true - /@jest/globals/28.1.3: - resolution: {integrity: sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /@jest/globals/29.3.1: + resolution: {integrity: sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 28.1.3 - '@jest/expect': 28.1.3 - '@jest/types': 28.1.3 + '@jest/environment': 29.3.1 + '@jest/expect': 29.3.1 + '@jest/types': 29.3.1 + jest-mock: 29.3.1 transitivePeerDependencies: - supports-color dev: true - /@jest/reporters/28.1.3: - resolution: {integrity: sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /@jest/reporters/29.3.1: + resolution: {integrity: sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: @@ -3010,10 +3011,10 @@ packages: optional: true dependencies: '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 28.1.3 - '@jest/test-result': 28.1.3 - '@jest/transform': 28.1.3 - '@jest/types': 28.1.3 + '@jest/console': 29.3.1 + '@jest/test-result': 29.3.1 + '@jest/transform': 29.3.1 + '@jest/types': 29.3.1 '@jridgewell/trace-mapping': 0.3.16 '@types/node': 16.11.65 chalk: 4.1.2 @@ -3026,13 +3027,12 @@ packages: istanbul-lib-report: 3.0.0 istanbul-lib-source-maps: 4.0.1 istanbul-reports: 3.1.5 - jest-message-util: 28.1.3 - jest-util: 28.1.3 - jest-worker: 28.1.3 + jest-message-util: 29.3.1 + jest-util: 29.3.1 + jest-worker: 29.3.1 slash: 3.0.0 string-length: 4.0.2 strip-ansi: 6.0.1 - terminal-link: 2.1.1 v8-to-istanbul: 9.0.1 transitivePeerDependencies: - supports-color @@ -3045,32 +3045,39 @@ packages: '@sinclair/typebox': 0.24.50 dev: true - /@jest/source-map/28.1.2: - resolution: {integrity: sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /@jest/schemas/29.0.0: + resolution: {integrity: sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.24.50 + dev: true + + /@jest/source-map/29.2.0: + resolution: {integrity: sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jridgewell/trace-mapping': 0.3.16 callsites: 3.1.0 graceful-fs: 4.2.10 dev: true - /@jest/test-result/28.1.3: - resolution: {integrity: sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /@jest/test-result/29.3.1: + resolution: {integrity: sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/console': 28.1.3 - '@jest/types': 28.1.3 + '@jest/console': 29.3.1 + '@jest/types': 29.3.1 '@types/istanbul-lib-coverage': 2.0.4 collect-v8-coverage: 1.0.1 dev: true - /@jest/test-sequencer/28.1.3: - resolution: {integrity: sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /@jest/test-sequencer/29.3.1: + resolution: {integrity: sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/test-result': 28.1.3 + '@jest/test-result': 29.3.1 graceful-fs: 4.2.10 - jest-haste-map: 28.1.3 + jest-haste-map: 29.3.1 slash: 3.0.0 dev: true @@ -3097,21 +3104,21 @@ packages: - supports-color dev: true - /@jest/transform/28.1.3: - resolution: {integrity: sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /@jest/transform/29.3.1: + resolution: {integrity: sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.19.3 - '@jest/types': 28.1.3 + '@jest/types': 29.3.1 '@jridgewell/trace-mapping': 0.3.16 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 - convert-source-map: 1.9.0 + convert-source-map: 2.0.0 fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.10 - jest-haste-map: 28.1.3 - jest-regex-util: 28.0.2 - jest-util: 28.1.3 + jest-haste-map: 29.3.1 + jest-regex-util: 29.2.0 + jest-util: 29.3.1 micromatch: 4.0.5 pirates: 4.0.5 slash: 3.0.0 @@ -3143,6 +3150,18 @@ packages: chalk: 4.1.2 dev: true + /@jest/types/29.3.1: + resolution: {integrity: sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.0.0 + '@types/istanbul-lib-coverage': 2.0.4 + '@types/istanbul-reports': 3.0.1 + '@types/node': 16.11.65 + '@types/yargs': 17.0.13 + chalk: 4.1.2 + dev: true + /@jridgewell/gen-mapping/0.1.1: resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} engines: {node: '>=6.0.0'} @@ -5663,6 +5682,13 @@ packages: pretty-format: 28.1.3 dev: true + /@types/jest/29.2.2: + resolution: {integrity: sha512-og1wAmdxKoS71K2ZwSVqWPX6OVn3ihZ6ZT2qvZvZQm90lJVDyXIjYcu4Khx2CNIeaFv12rOU/YObOsI3VOkzog==} + dependencies: + expect: 29.3.1 + pretty-format: 29.3.1 + dev: true + /@types/jmespath/0.15.0: resolution: {integrity: sha512-uaht4XcYSq5ZrPriQW8C+g5DhptewRd1E84ph7L167sCyzLObz+U3JTpmYq/CNkvjNsz2mtyQoHPNEYQYTzWmg==} dev: true @@ -5671,12 +5697,12 @@ packages: resolution: {integrity: sha512-juUvxo444ZfwDSwWyhssMxSN+snqTdiUoOVXZF+/ffVrGHq3rAf1fmczWn3z9TCEAuRbaTmgAcYlZ9MutyyOkQ==} dev: false - /@types/jsdom/16.2.15: - resolution: {integrity: sha512-nwF87yjBKuX/roqGYerZZM0Nv1pZDMAT5YhOHYeM/72Fic+VEqJh4nyoqoapzJnW3pUlfxPY5FhgsJtM+dRnQQ==} + /@types/jsdom/20.0.1: + resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} dependencies: '@types/node': 16.11.65 - '@types/parse5': 6.0.3 '@types/tough-cookie': 4.0.2 + parse5: 7.1.1 dev: true /@types/json-diff/0.5.2: @@ -5859,10 +5885,6 @@ packages: resolution: {integrity: sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==} dev: true - /@types/parse5/6.0.3: - resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} - dev: true - /@types/parseurl/1.3.1: resolution: {integrity: sha512-sAfjGAYgJ/MZsk95f3ByThfJgasZk1hWJROghBwfKnLLNANEAG/WHckAcT6HNqx2sHwVlci7OAX7k1KYpOcgMw==} dependencies: @@ -6880,6 +6902,13 @@ packages: acorn-walk: 7.2.0 dev: true + /acorn-globals/7.0.1: + resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} + dependencies: + acorn: 8.8.1 + acorn-walk: 8.2.0 + dev: true + /acorn-import-assertions/1.8.0_acorn@8.8.1: resolution: {integrity: sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==} peerDependencies: @@ -6912,7 +6941,6 @@ packages: /acorn-walk/8.2.0: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} engines: {node: '>=0.4.0'} - dev: false /acorn/6.4.2: resolution: {integrity: sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==} @@ -7627,17 +7655,17 @@ packages: resolution: {integrity: sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg==} dev: false - /babel-jest/28.1.3_@babel+core@7.19.3: - resolution: {integrity: sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /babel-jest/29.3.1_@babel+core@7.19.3: + resolution: {integrity: sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: '@babel/core': 7.19.3 - '@jest/transform': 28.1.3 + '@jest/transform': 29.3.1 '@types/babel__core': 7.1.19 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 28.1.3_@babel+core@7.19.3 + babel-preset-jest: 29.2.0_@babel+core@7.19.3 chalk: 4.1.2 graceful-fs: 4.2.10 slash: 3.0.0 @@ -7695,9 +7723,9 @@ packages: - supports-color dev: true - /babel-plugin-jest-hoist/28.1.3: - resolution: {integrity: sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /babel-plugin-jest-hoist/29.2.0: + resolution: {integrity: sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/template': 7.18.10 '@babel/types': 7.19.4 @@ -7782,14 +7810,14 @@ packages: '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.19.3 dev: true - /babel-preset-jest/28.1.3_@babel+core@7.19.3: - resolution: {integrity: sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /babel-preset-jest/29.2.0_@babel+core@7.19.3: + resolution: {integrity: sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.19.3 - babel-plugin-jest-hoist: 28.1.3 + babel-plugin-jest-hoist: 29.2.0 babel-preset-current-node-syntax: 1.0.1_@babel+core@7.19.3 dev: true @@ -9331,6 +9359,10 @@ packages: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} dev: true + /convert-source-map/2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + dev: true + /convict/6.2.3: resolution: {integrity: sha512-mTY04Qr7WrqiXifdeUYXr4/+Te4hPFWDvz6J2FVIKCLc2XBhq63VOSSYAKJ+unhZAYOAjmEdNswTOeHt7s++pQ==} engines: {node: '>=6'} @@ -10134,6 +10166,11 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dev: true + /diff-sequences/29.3.1: + resolution: {integrity: sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + /diff/4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} @@ -10393,8 +10430,8 @@ packages: minimalistic-crypto-utils: 1.0.1 dev: true - /emittery/0.10.2: - resolution: {integrity: sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==} + /emittery/0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} engines: {node: '>=12'} dev: true @@ -10476,6 +10513,11 @@ packages: /entities/2.2.0: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + /entities/4.4.0: + resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==} + engines: {node: '>=0.12'} + dev: true + /env-paths/2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -11357,6 +11399,17 @@ packages: jest-util: 28.1.3 dev: true + /expect/29.3.1: + resolution: {integrity: sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/expect-utils': 29.3.1 + jest-get-type: 29.2.0 + jest-matcher-utils: 29.3.1 + jest-message-util: 29.3.1 + jest-util: 29.3.1 + dev: true + /express-openapi-validator/4.13.8: resolution: {integrity: sha512-89/sdkq+BKBuIyykaMl/vR9grFc3WFUPTjFo0THHbu+5g+q8rA7fKeoMfz+h84yOQIBcztmJ5ZJdk5uhEls31A==} dependencies: @@ -13224,12 +13277,6 @@ packages: ci-info: 3.5.0 dev: true - /is-core-module/2.10.0: - resolution: {integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==} - dependencies: - has: 1.0.3 - dev: true - /is-core-module/2.11.0: resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} dependencies: @@ -13712,44 +13759,44 @@ packages: filelist: 1.0.4 minimatch: 3.1.2 - /jest-changed-files/28.1.3: - resolution: {integrity: sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-changed-files/29.2.0: + resolution: {integrity: sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: execa: 5.1.1 p-limit: 3.1.0 dev: true - /jest-circus/28.1.3: - resolution: {integrity: sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-circus/29.3.1: + resolution: {integrity: sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 28.1.3 - '@jest/expect': 28.1.3 - '@jest/test-result': 28.1.3 - '@jest/types': 28.1.3 + '@jest/environment': 29.3.1 + '@jest/expect': 29.3.1 + '@jest/test-result': 29.3.1 + '@jest/types': 29.3.1 '@types/node': 16.11.65 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 is-generator-fn: 2.1.0 - jest-each: 28.1.3 - jest-matcher-utils: 28.1.3 - jest-message-util: 28.1.3 - jest-runtime: 28.1.3 - jest-snapshot: 28.1.3 - jest-util: 28.1.3 + jest-each: 29.3.1 + jest-matcher-utils: 29.3.1 + jest-message-util: 29.3.1 + jest-runtime: 29.3.1 + jest-snapshot: 29.3.1 + jest-util: 29.3.1 p-limit: 3.1.0 - pretty-format: 28.1.3 + pretty-format: 29.3.1 slash: 3.0.0 stack-utils: 2.0.5 transitivePeerDependencies: - supports-color dev: true - /jest-cli/28.1.3_nfsrgz5svgjbkxnex2uhjyxexa: - resolution: {integrity: sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-cli/29.3.1_@types+node@16.11.65: + resolution: {integrity: sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -13757,16 +13804,16 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 28.1.3_ts-node@9.1.1 - '@jest/test-result': 28.1.3 - '@jest/types': 28.1.3 + '@jest/core': 29.3.1 + '@jest/test-result': 29.3.1 + '@jest/types': 29.3.1 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.10 import-local: 3.1.0 - jest-config: 28.1.3_nfsrgz5svgjbkxnex2uhjyxexa - jest-util: 28.1.3 - jest-validate: 28.1.3 + jest-config: 29.3.1_@types+node@16.11.65 + jest-util: 29.3.1 + jest-validate: 29.3.1 prompts: 2.4.2 yargs: 17.6.0 transitivePeerDependencies: @@ -13775,9 +13822,9 @@ packages: - ts-node dev: true - /jest-config/28.1.3_nfsrgz5svgjbkxnex2uhjyxexa: - resolution: {integrity: sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-config/29.3.1_@types+node@16.11.65: + resolution: {integrity: sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@types/node': '*' ts-node: '>=9.0.0' @@ -13788,29 +13835,28 @@ packages: optional: true dependencies: '@babel/core': 7.19.3 - '@jest/test-sequencer': 28.1.3 - '@jest/types': 28.1.3 + '@jest/test-sequencer': 29.3.1 + '@jest/types': 29.3.1 '@types/node': 16.11.65 - babel-jest: 28.1.3_@babel+core@7.19.3 + babel-jest: 29.3.1_@babel+core@7.19.3 chalk: 4.1.2 ci-info: 3.5.0 deepmerge: 4.2.2 glob: 7.2.3 graceful-fs: 4.2.10 - jest-circus: 28.1.3 - jest-environment-node: 28.1.3 - jest-get-type: 28.0.2 - jest-regex-util: 28.0.2 - jest-resolve: 28.1.3 - jest-runner: 28.1.3 - jest-util: 28.1.3 - jest-validate: 28.1.3 + jest-circus: 29.3.1 + jest-environment-node: 29.3.1 + jest-get-type: 29.2.0 + jest-regex-util: 29.2.0 + jest-resolve: 29.3.1 + jest-runner: 29.3.1 + jest-util: 29.3.1 + jest-validate: 29.3.1 micromatch: 4.0.5 parse-json: 5.2.0 - pretty-format: 28.1.3 + pretty-format: 29.3.1 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 9.1.1_typescript@4.8.4 transitivePeerDependencies: - supports-color dev: true @@ -13825,53 +13871,67 @@ packages: pretty-format: 28.1.3 dev: true - /jest-docblock/28.1.1: - resolution: {integrity: sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-diff/29.3.1: + resolution: {integrity: sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + diff-sequences: 29.3.1 + jest-get-type: 29.2.0 + pretty-format: 29.3.1 + dev: true + + /jest-docblock/29.2.0: + resolution: {integrity: sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: detect-newline: 3.1.0 dev: true - /jest-each/28.1.3: - resolution: {integrity: sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-each/29.3.1: + resolution: {integrity: sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 28.1.3 + '@jest/types': 29.3.1 chalk: 4.1.2 - jest-get-type: 28.0.2 - jest-util: 28.1.3 - pretty-format: 28.1.3 + jest-get-type: 29.2.0 + jest-util: 29.3.1 + pretty-format: 29.3.1 dev: true - /jest-environment-jsdom/28.1.3: - resolution: {integrity: sha512-HnlGUmZRdxfCByd3GM2F100DgQOajUBzEitjGqIREcb45kGjZvRrKUdlaF6escXBdcXNl0OBh+1ZrfeZT3GnAg==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-environment-jsdom/29.3.1: + resolution: {integrity: sha512-G46nKgiez2Gy4zvYNhayfMEAFlVHhWfncqvqS6yCd0i+a4NsSUD2WtrKSaYQrYiLQaupHXxCRi8xxVL2M9PbhA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true dependencies: - '@jest/environment': 28.1.3 - '@jest/fake-timers': 28.1.3 - '@jest/types': 28.1.3 - '@types/jsdom': 16.2.15 + '@jest/environment': 29.3.1 + '@jest/fake-timers': 29.3.1 + '@jest/types': 29.3.1 + '@types/jsdom': 20.0.1 '@types/node': 16.11.65 - jest-mock: 28.1.3 - jest-util: 28.1.3 - jsdom: 19.0.0 + jest-mock: 29.3.1 + jest-util: 29.3.1 + jsdom: 20.0.2 transitivePeerDependencies: - bufferutil - - canvas - supports-color - utf-8-validate dev: true - /jest-environment-node/28.1.3: - resolution: {integrity: sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-environment-node/29.3.1: + resolution: {integrity: sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 28.1.3 - '@jest/fake-timers': 28.1.3 - '@jest/types': 28.1.3 + '@jest/environment': 29.3.1 + '@jest/fake-timers': 29.3.1 + '@jest/types': 29.3.1 '@types/node': 16.11.65 - jest-mock: 28.1.3 - jest-util: 28.1.3 + jest-mock: 29.3.1 + jest-util: 29.3.1 dev: true /jest-get-type/28.0.2: @@ -13879,6 +13939,11 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dev: true + /jest-get-type/29.2.0: + resolution: {integrity: sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + /jest-haste-map/26.6.2: resolution: {integrity: sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==} engines: {node: '>= 10.14.2'} @@ -13902,31 +13967,31 @@ packages: - supports-color dev: true - /jest-haste-map/28.1.3: - resolution: {integrity: sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-haste-map/29.3.1: + resolution: {integrity: sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 28.1.3 + '@jest/types': 29.3.1 '@types/graceful-fs': 4.1.5 '@types/node': 16.11.65 anymatch: 3.1.2 fb-watchman: 2.0.2 graceful-fs: 4.2.10 - jest-regex-util: 28.0.2 - jest-util: 28.1.3 - jest-worker: 28.1.3 + jest-regex-util: 29.2.0 + jest-util: 29.3.1 + jest-worker: 29.3.1 micromatch: 4.0.5 walker: 1.0.8 optionalDependencies: fsevents: 2.3.2 dev: true - /jest-leak-detector/28.1.3: - resolution: {integrity: sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-leak-detector/29.3.1: + resolution: {integrity: sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - jest-get-type: 28.0.2 - pretty-format: 28.1.3 + jest-get-type: 29.2.0 + pretty-format: 29.3.1 dev: true /jest-matcher-utils/28.1.3: @@ -13939,6 +14004,16 @@ packages: pretty-format: 28.1.3 dev: true + /jest-matcher-utils/29.3.1: + resolution: {integrity: sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + jest-diff: 29.3.1 + jest-get-type: 29.2.0 + pretty-format: 29.3.1 + dev: true + /jest-message-util/28.1.3: resolution: {integrity: sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -13954,15 +14029,31 @@ packages: stack-utils: 2.0.5 dev: true - /jest-mock/28.1.3: - resolution: {integrity: sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-message-util/29.3.1: + resolution: {integrity: sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 28.1.3 - '@types/node': 16.11.65 + '@babel/code-frame': 7.18.6 + '@jest/types': 29.3.1 + '@types/stack-utils': 2.0.1 + chalk: 4.1.2 + graceful-fs: 4.2.10 + micromatch: 4.0.5 + pretty-format: 29.3.1 + slash: 3.0.0 + stack-utils: 2.0.5 dev: true - /jest-pnp-resolver/1.2.2_jest-resolve@28.1.3: + /jest-mock/29.3.1: + resolution: {integrity: sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.3.1 + '@types/node': 16.11.65 + jest-util: 29.3.1 + dev: true + + /jest-pnp-resolver/1.2.2_jest-resolve@29.3.1: resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} engines: {node: '>=6'} peerDependencies: @@ -13971,7 +14062,7 @@ packages: jest-resolve: optional: true dependencies: - jest-resolve: 28.1.3 + jest-resolve: 29.3.1 dev: true /jest-regex-util/26.0.0: @@ -13979,89 +14070,89 @@ packages: engines: {node: '>= 10.14.2'} dev: true - /jest-regex-util/28.0.2: - resolution: {integrity: sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-regex-util/29.2.0: + resolution: {integrity: sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-resolve-dependencies/28.1.3: - resolution: {integrity: sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-resolve-dependencies/29.3.1: + resolution: {integrity: sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - jest-regex-util: 28.0.2 - jest-snapshot: 28.1.3 + jest-regex-util: 29.2.0 + jest-snapshot: 29.3.1 transitivePeerDependencies: - supports-color dev: true - /jest-resolve/28.1.3: - resolution: {integrity: sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-resolve/29.3.1: + resolution: {integrity: sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 graceful-fs: 4.2.10 - jest-haste-map: 28.1.3 - jest-pnp-resolver: 1.2.2_jest-resolve@28.1.3 - jest-util: 28.1.3 - jest-validate: 28.1.3 + jest-haste-map: 29.3.1 + jest-pnp-resolver: 1.2.2_jest-resolve@29.3.1 + jest-util: 29.3.1 + jest-validate: 29.3.1 resolve: 1.22.1 resolve.exports: 1.1.0 slash: 3.0.0 dev: true - /jest-runner/28.1.3: - resolution: {integrity: sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-runner/29.3.1: + resolution: {integrity: sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/console': 28.1.3 - '@jest/environment': 28.1.3 - '@jest/test-result': 28.1.3 - '@jest/transform': 28.1.3 - '@jest/types': 28.1.3 + '@jest/console': 29.3.1 + '@jest/environment': 29.3.1 + '@jest/test-result': 29.3.1 + '@jest/transform': 29.3.1 + '@jest/types': 29.3.1 '@types/node': 16.11.65 chalk: 4.1.2 - emittery: 0.10.2 + emittery: 0.13.1 graceful-fs: 4.2.10 - jest-docblock: 28.1.1 - jest-environment-node: 28.1.3 - jest-haste-map: 28.1.3 - jest-leak-detector: 28.1.3 - jest-message-util: 28.1.3 - jest-resolve: 28.1.3 - jest-runtime: 28.1.3 - jest-util: 28.1.3 - jest-watcher: 28.1.3 - jest-worker: 28.1.3 + jest-docblock: 29.2.0 + jest-environment-node: 29.3.1 + jest-haste-map: 29.3.1 + jest-leak-detector: 29.3.1 + jest-message-util: 29.3.1 + jest-resolve: 29.3.1 + jest-runtime: 29.3.1 + jest-util: 29.3.1 + jest-watcher: 29.3.1 + jest-worker: 29.3.1 p-limit: 3.1.0 source-map-support: 0.5.13 transitivePeerDependencies: - supports-color dev: true - /jest-runtime/28.1.3: - resolution: {integrity: sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-runtime/29.3.1: + resolution: {integrity: sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 28.1.3 - '@jest/fake-timers': 28.1.3 - '@jest/globals': 28.1.3 - '@jest/source-map': 28.1.2 - '@jest/test-result': 28.1.3 - '@jest/transform': 28.1.3 - '@jest/types': 28.1.3 + '@jest/environment': 29.3.1 + '@jest/fake-timers': 29.3.1 + '@jest/globals': 29.3.1 + '@jest/source-map': 29.2.0 + '@jest/test-result': 29.3.1 + '@jest/transform': 29.3.1 + '@jest/types': 29.3.1 + '@types/node': 16.11.65 chalk: 4.1.2 cjs-module-lexer: 1.2.2 collect-v8-coverage: 1.0.1 - execa: 5.1.1 glob: 7.2.3 graceful-fs: 4.2.10 - jest-haste-map: 28.1.3 - jest-message-util: 28.1.3 - jest-mock: 28.1.3 - jest-regex-util: 28.0.2 - jest-resolve: 28.1.3 - jest-snapshot: 28.1.3 - jest-util: 28.1.3 + jest-haste-map: 29.3.1 + jest-message-util: 29.3.1 + jest-mock: 29.3.1 + jest-regex-util: 29.2.0 + jest-resolve: 29.3.1 + jest-snapshot: 29.3.1 + jest-util: 29.3.1 slash: 3.0.0 strip-bom: 4.0.0 transitivePeerDependencies: @@ -14076,32 +14167,33 @@ packages: graceful-fs: 4.2.10 dev: true - /jest-snapshot/28.1.3: - resolution: {integrity: sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-snapshot/29.3.1: + resolution: {integrity: sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.19.3 '@babel/generator': 7.19.5 + '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.19.3 '@babel/plugin-syntax-typescript': 7.18.6_@babel+core@7.19.3 '@babel/traverse': 7.19.4 '@babel/types': 7.19.4 - '@jest/expect-utils': 28.1.3 - '@jest/transform': 28.1.3 - '@jest/types': 28.1.3 + '@jest/expect-utils': 29.3.1 + '@jest/transform': 29.3.1 + '@jest/types': 29.3.1 '@types/babel__traverse': 7.18.2 '@types/prettier': 2.7.1 babel-preset-current-node-syntax: 1.0.1_@babel+core@7.19.3 chalk: 4.1.2 - expect: 28.1.3 + expect: 29.3.1 graceful-fs: 4.2.10 - jest-diff: 28.1.3 - jest-get-type: 28.0.2 - jest-haste-map: 28.1.3 - jest-matcher-utils: 28.1.3 - jest-message-util: 28.1.3 - jest-util: 28.1.3 + jest-diff: 29.3.1 + jest-get-type: 29.2.0 + jest-haste-map: 29.3.1 + jest-matcher-utils: 29.3.1 + jest-message-util: 29.3.1 + jest-util: 29.3.1 natural-compare: 1.4.0 - pretty-format: 28.1.3 + pretty-format: 29.3.1 semver: 7.3.8 transitivePeerDependencies: - supports-color @@ -14131,29 +14223,41 @@ packages: picomatch: 2.3.1 dev: true - /jest-validate/28.1.3: - resolution: {integrity: sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-util/29.3.1: + resolution: {integrity: sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 28.1.3 - camelcase: 6.3.0 + '@jest/types': 29.3.1 + '@types/node': 16.11.65 chalk: 4.1.2 - jest-get-type: 28.0.2 - leven: 3.1.0 - pretty-format: 28.1.3 + ci-info: 3.5.0 + graceful-fs: 4.2.10 + picomatch: 2.3.1 dev: true - /jest-watcher/28.1.3: - resolution: {integrity: sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-validate/29.3.1: + resolution: {integrity: sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/test-result': 28.1.3 - '@jest/types': 28.1.3 + '@jest/types': 29.3.1 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 29.2.0 + leven: 3.1.0 + pretty-format: 29.3.1 + dev: true + + /jest-watcher/29.3.1: + resolution: {integrity: sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/test-result': 29.3.1 + '@jest/types': 29.3.1 '@types/node': 16.11.65 ansi-escapes: 4.3.2 chalk: 4.1.2 - emittery: 0.10.2 - jest-util: 28.1.3 + emittery: 0.13.1 + jest-util: 29.3.1 string-length: 4.0.2 dev: true @@ -14175,18 +14279,19 @@ packages: supports-color: 8.1.1 dev: true - /jest-worker/28.1.3: - resolution: {integrity: sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest-worker/29.3.1: + resolution: {integrity: sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@types/node': 16.11.65 + jest-util: 29.3.1 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jest/28.1.3_nfsrgz5svgjbkxnex2uhjyxexa: - resolution: {integrity: sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /jest/29.3.1_@types+node@16.11.65: + resolution: {integrity: sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -14194,10 +14299,10 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 28.1.3_ts-node@9.1.1 - '@jest/types': 28.1.3 + '@jest/core': 29.3.1 + '@jest/types': 29.3.1 import-local: 3.1.0 - jest-cli: 28.1.3_nfsrgz5svgjbkxnex2uhjyxexa + jest-cli: 29.3.1_@types+node@16.11.65 transitivePeerDependencies: - '@types/node' - supports-color @@ -14355,6 +14460,47 @@ packages: - utf-8-validate dev: true + /jsdom/20.0.2: + resolution: {integrity: sha512-AHWa+QO/cgRg4N+DsmHg1Y7xnz+8KU3EflM0LVDTdmrYOc1WWTSkOjtpUveQH+1Bqd5rtcVnb/DuxV/UjDO4rA==} + engines: {node: '>=14'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + abab: 2.0.6 + acorn: 8.8.1 + acorn-globals: 7.0.1 + cssom: 0.5.0 + cssstyle: 2.3.0 + data-urls: 3.0.2 + decimal.js: 10.4.1 + domexception: 4.0.0 + escodegen: 2.0.0 + form-data: 4.0.0 + html-encoding-sniffer: 3.0.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.2 + parse5: 7.1.1 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 4.1.2 + w3c-xmlserializer: 3.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + ws: 8.9.0 + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + /jsesc/0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} hasBin: true @@ -16039,7 +16185,7 @@ packages: engines: {node: '>=10'} dependencies: hosted-git-info: 4.1.0 - is-core-module: 2.10.0 + is-core-module: 2.11.0 semver: 7.3.8 validate-npm-package-license: 3.0.4 dev: true @@ -16639,6 +16785,12 @@ packages: /parse5/6.0.1: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + /parse5/7.1.1: + resolution: {integrity: sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==} + dependencies: + entities: 4.4.0 + dev: true + /parseley/0.7.0: resolution: {integrity: sha512-xyOytsdDu077M3/46Am+2cGXEKM9U9QclBDv7fimY7e+BBlxh2JcBp2mgNsmkyA9uvgyTjVzDi7cP1v4hcFxbw==} dependencies: @@ -17296,6 +17448,15 @@ packages: react-is: 18.2.0 dev: true + /pretty-format/29.3.1: + resolution: {integrity: sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.0.0 + ansi-styles: 5.2.0 + react-is: 18.2.0 + dev: true + /pretty-hrtime/1.0.3: resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==} engines: {node: '>= 0.8'} @@ -18646,6 +18807,13 @@ packages: xmlchars: 2.2.0 dev: true + /saxes/6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} + dependencies: + xmlchars: 2.2.0 + dev: true + /sb-promise-queue/2.1.0: resolution: {integrity: sha512-zwq4YuP1FQFkGx2Q7GIkZYZ6PqWpV+bg0nIO1sJhWOyGyhqbj0MsTvK6lCFo5TQwX5pZr6SCQ75e8PCDCuNvkg==} engines: {node: '>= 8'} @@ -19897,14 +20065,6 @@ packages: rimraf: 2.6.3 dev: true - /terminal-link/2.1.1: - resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} - engines: {node: '>=8'} - dependencies: - ansi-escapes: 4.3.2 - supports-hyperlinks: 2.3.0 - dev: true - /terser-webpack-plugin/1.4.5_webpack@4.46.0: resolution: {integrity: sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==} engines: {node: '>= 6.9.0'} @@ -20276,16 +20436,16 @@ packages: resolution: {integrity: sha512-e4g0EJtAjk64xgnFPD6kTBUtpnMVzDrMb12N1YZV0VvSlhnVT3SGxiYTLdGy8Q5cYHOIC/FAHmZ10eGrAguicQ==} dev: false - /ts-jest/28.0.8_tdm5zcqep4nsvpmkmbrzs32za4: - resolution: {integrity: sha512-5FaG0lXmRPzApix8oFG8RKjAz4ehtm8yMKOTy5HX3fY6W8kmvOrmcY0hKDElW52FJov+clhUbrKAqofnj4mXTg==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + /ts-jest/29.0.3_s73gpqhbuwbfokcbq32jn3f4zi: + resolution: {integrity: sha512-Ibygvmuyq1qp/z3yTh9QTwVVAbFdDy/+4BtIQR2sp6baF2SJU/8CKK/hhnGIDY2L90Az2jIqTwZPnN2p+BweiQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/types': ^28.0.0 - babel-jest: ^28.0.0 + '@jest/types': ^29.0.0 + babel-jest: ^29.0.0 esbuild: '*' - jest: ^28.0.0 + jest: ^29.0.0 typescript: '>=4.3' peerDependenciesMeta: '@babel/core': @@ -20300,8 +20460,8 @@ packages: '@babel/core': 7.19.3 bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 28.1.3_nfsrgz5svgjbkxnex2uhjyxexa - jest-util: 28.1.3 + jest: 29.3.1_@types+node@16.11.65 + jest-util: 29.3.1 json5: 2.2.1 lodash.memoize: 4.1.2 make-error: 1.3.6 @@ -20330,21 +20490,6 @@ packages: resolution: {integrity: sha512-vDWbsl26LIcPGmDpoVzjEP6+hvHZkBkLW7JpvwbCv/5IYPJlsbzCVXY3wsCeAxAUeTclNOUZxnLdGh3VBD/J6w==} dev: true - /ts-node/8.10.2_typescript@4.8.4: - resolution: {integrity: sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==} - engines: {node: '>=6.0.0'} - hasBin: true - peerDependencies: - typescript: '>=2.7' - dependencies: - arg: 4.1.3 - diff: 4.0.2 - make-error: 1.3.6 - source-map-support: 0.5.21 - typescript: 4.8.4 - yn: 3.1.1 - dev: true - /ts-node/9.1.1_typescript@4.8.4: resolution: {integrity: sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==} engines: {node: '>=10.0.0'}