From fea217c30058be57537d63e773be06222fd510ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kvasnic=CC=8Ca=CC=81k?= Date: Tue, 29 Jun 2021 17:09:29 +0200 Subject: [PATCH 01/25] fix(deps): update unidici --- src/packages/engine-core/package.json | 2 +- src/packages/engine-core/src/undici.ts | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/packages/engine-core/package.json b/src/packages/engine-core/package.json index f951cb901555..e2fa1f309e91 100644 --- a/src/packages/engine-core/package.json +++ b/src/packages/engine-core/package.json @@ -51,7 +51,7 @@ "new-github-issue-url": "^0.2.1", "p-retry": "^4.2.0", "terminal-link": "^2.1.1", - "undici": "3.3.6" + "undici": "^4.0.0" }, "files": [ "README.md", diff --git a/src/packages/engine-core/src/undici.ts b/src/packages/engine-core/src/undici.ts index 8382b86b8e95..f58c7427f299 100644 --- a/src/packages/engine-core/src/undici.ts +++ b/src/packages/engine-core/src/undici.ts @@ -1,25 +1,29 @@ import getStream = require('get-stream') -import { Client, Pool } from 'undici' +import { Client, Dispatcher, Pool } from 'undici' import { URL } from 'url' export class Undici { private pool: Pool private closed = false + private url: string | URL constructor(url: string | URL, moreArgs?: Pool.Options) { + this.url = url this.pool = new Pool(url, { connections: 100, pipelining: 10, keepAliveMaxTimeout: 600e3, headersTimeout: 0, + bodyTimeout: 0, ...moreArgs, }) } request( - body: Client.DispatchOptions['body'], + body: Dispatcher.DispatchOptions['body'], customHeaders?: Record, ) { return new Promise((resolve, reject) => { this.pool.request( { + origin: this.url, path: '/', method: 'POST', headers: { @@ -27,7 +31,6 @@ export class Undici { ...customHeaders, }, body, - bodyTimeout: 0, }, async (err, result) => { if (err) { @@ -45,6 +48,7 @@ export class Undici { return new Promise((resolve, reject) => { this.pool.request( { + origin: this.url, path: '/', method: 'GET', }, From e79239e8dabfe70d0b377cc53d169ba46397210c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kvasnic=CC=8Ca=CC=81k?= Date: Wed, 30 Jun 2021 07:43:13 +0200 Subject: [PATCH 02/25] build: copy undici wasm files to dist --- src/packages/client/helpers/build.js | 22 ++++++++++++++++++---- src/packages/client/package.json | 1 + 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/packages/client/helpers/build.js b/src/packages/client/helpers/build.js index 58f6588bf3a5..b693b1ac0359 100644 --- a/src/packages/client/helpers/build.js +++ b/src/packages/client/helpers/build.js @@ -1,6 +1,7 @@ const execa = require('execa') -const fs = require('fs') +const fs = require('fs-extra') const chalk = require('chalk') +const path = require('path') const { promisify } = require('util') const esbuild = require('esbuild') const copyFile = promisify(fs.copyFile) @@ -31,8 +32,15 @@ async function main() { target: 'node12', outfile: 'generator-build/index.js', entryPoints: ['src/generator.ts'], - external: ['_http_common'] }), + // copy wasm files, etc necessary for undici + fs.copy( + path.resolve( + __dirname, + '../node_modules/@prisma/engine-core/node_modules/undici/lib/llhttp', + ), + path.resolve(__dirname, '../generator-build/llhttp'), + ), ]) await Promise.all([ @@ -42,7 +50,6 @@ async function main() { target: 'node12', outdir: 'runtime', entryPoints: ['src/runtime/index.ts'], - external: ['_http_common'] }), esbuild.build({ platform: 'node', @@ -51,9 +58,16 @@ async function main() { target: ['chrome58', 'firefox57', 'safari11', 'edge16'], outdir: 'runtime', entryPoints: ['src/runtime/index-browser.ts'], - external: ['_http_common'] }), run('rollup -c'), + // copy wasm files, etc necessary for undici + fs.copy( + path.resolve( + __dirname, + '../node_modules/@prisma/engine-core/node_modules/undici/lib/llhttp', + ), + path.resolve(__dirname, '../runtime/llhttp'), + ), ]) await Promise.all([ diff --git a/src/packages/client/package.json b/src/packages/client/package.json index bb1ec67cc20d..af08428d88ef 100644 --- a/src/packages/client/package.json +++ b/src/packages/client/package.json @@ -86,6 +86,7 @@ "eslint-plugin-prettier": "3.4.0", "execa": "5.1.1", "flat-map-polyfill": "0.3.8", + "fs-extra": "10.0.0", "fs-monkey": "1.0.3", "get-own-enumerable-property-symbols": "3.0.2", "indent-string": "4.0.0", From 4cc8333777ac0320108c898dd2ff950a6fb57a66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kvasnic=CC=8Ca=CC=81k?= Date: Wed, 30 Jun 2021 08:21:52 +0200 Subject: [PATCH 03/25] build: copy llhttp --- src/packages/cli/helpers/build.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/packages/cli/helpers/build.js b/src/packages/cli/helpers/build.js index 0831bf63cb9a..514d4615ff4b 100644 --- a/src/packages/cli/helpers/build.js +++ b/src/packages/cli/helpers/build.js @@ -26,7 +26,7 @@ async function main() { target: 'node12', outfile: 'build/index.js', entryPoints: ['src/bin.ts'], - external: ['@prisma/engines', '_http_common'], + external: ['@prisma/engines'], }), esbuild.build({ platform: 'node', @@ -65,6 +65,13 @@ async function main() { path.join(require.resolve('open/package.json'), '../xdg-open'), './build/xdg-open', ), + copy({ + from: path.resolve(__dirname, '../prisma-client/runtime/llhttp'), + to: './build/llhttp', + recursive: true, + parallelJobs: process.platform === 'win32' ? 1 : 20, + overwrite: true, + }), ]) await Promise.all([ From b92f97d192b0be00d4c0727e69c9f21e452f79ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kvasnic=CC=8Ca=CC=81k?= Date: Wed, 30 Jun 2021 08:31:52 +0200 Subject: [PATCH 04/25] fix: mark _http_common external --- src/packages/cli/helpers/build.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/packages/cli/helpers/build.js b/src/packages/cli/helpers/build.js index 514d4615ff4b..33b3cadab50e 100644 --- a/src/packages/cli/helpers/build.js +++ b/src/packages/cli/helpers/build.js @@ -1,5 +1,5 @@ const execa = require('execa') -const fs = require('fs') +const fs = require('fs-extra') const chalk = require('chalk') const copy = require('@timsuchanek/copy') const makeDir = require('make-dir') @@ -26,7 +26,7 @@ async function main() { target: 'node12', outfile: 'build/index.js', entryPoints: ['src/bin.ts'], - external: ['@prisma/engines'], + external: ['@prisma/engines', '_http_common'], }), esbuild.build({ platform: 'node', From 206c0abbda7b3f4d9f535ab61871263e32ad999f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kvasnic=CC=8Ca=CC=81k?= Date: Wed, 30 Jun 2021 08:34:00 +0200 Subject: [PATCH 05/25] chore: remove fs-extra --- src/packages/cli/helpers/build.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/packages/cli/helpers/build.js b/src/packages/cli/helpers/build.js index 33b3cadab50e..390f19d9c442 100644 --- a/src/packages/cli/helpers/build.js +++ b/src/packages/cli/helpers/build.js @@ -1,5 +1,5 @@ const execa = require('execa') -const fs = require('fs-extra') +const fs = require('fs') const chalk = require('chalk') const copy = require('@timsuchanek/copy') const makeDir = require('make-dir') From c6b028627937d1f84ac90e3a88c5217148582467 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Galeran?= Date: Thu, 19 Aug 2021 17:12:58 +0200 Subject: [PATCH 06/25] Delete undici.ts --- src/packages/engine-core/src/undici.ts | 75 -------------------------- 1 file changed, 75 deletions(-) delete mode 100644 src/packages/engine-core/src/undici.ts diff --git a/src/packages/engine-core/src/undici.ts b/src/packages/engine-core/src/undici.ts deleted file mode 100644 index f58c7427f299..000000000000 --- a/src/packages/engine-core/src/undici.ts +++ /dev/null @@ -1,75 +0,0 @@ -import getStream = require('get-stream') -import { Client, Dispatcher, Pool } from 'undici' -import { URL } from 'url' -export class Undici { - private pool: Pool - private closed = false - private url: string | URL - constructor(url: string | URL, moreArgs?: Pool.Options) { - this.url = url - this.pool = new Pool(url, { - connections: 100, - pipelining: 10, - keepAliveMaxTimeout: 600e3, - headersTimeout: 0, - bodyTimeout: 0, - ...moreArgs, - }) - } - request( - body: Dispatcher.DispatchOptions['body'], - customHeaders?: Record, - ) { - return new Promise((resolve, reject) => { - this.pool.request( - { - origin: this.url, - path: '/', - method: 'POST', - headers: { - 'Content-Type': 'application/json', - ...customHeaders, - }, - body, - }, - async (err, result) => { - if (err) { - reject(err) - } else { - const { statusCode, headers, body } = result - const data = JSON.parse(await getStream(body)) - resolve({ statusCode, headers, data }) - } - }, - ) - }) - } - status() { - return new Promise((resolve, reject) => { - this.pool.request( - { - origin: this.url, - path: '/', - method: 'GET', - }, - async (err, result) => { - if (err) { - reject(err) - } else { - const { statusCode, headers, body } = result - const data = JSON.parse(await getStream(body)) - resolve({ statusCode, headers, data }) - } - }, - ) - }) - } - close() { - if (!this.closed) { - this.pool.close(() => { - // ignore close error - }) - } - this.closed = true - } -} From 6ddf05212a9a2e62885d0dbb9988badbb4056d77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Galeran?= Date: Thu, 19 Aug 2021 17:13:11 +0200 Subject: [PATCH 07/25] Delete build.js --- src/packages/client/helpers/build.js | 96 ---------------------------- 1 file changed, 96 deletions(-) delete mode 100644 src/packages/client/helpers/build.js diff --git a/src/packages/client/helpers/build.js b/src/packages/client/helpers/build.js deleted file mode 100644 index b693b1ac0359..000000000000 --- a/src/packages/client/helpers/build.js +++ /dev/null @@ -1,96 +0,0 @@ -const execa = require('execa') -const fs = require('fs-extra') -const chalk = require('chalk') -const path = require('path') -const { promisify } = require('util') -const esbuild = require('esbuild') -const copyFile = promisify(fs.copyFile) - -async function main() { - const before = Date.now() - - // do the job for typescript - if ( - !fs.existsSync('./runtime-dist') && - fs.existsSync('./tsconfig.runtime.tsbuildinfo') - ) { - try { - console.log('unlinking') - fs.unlinkSync('./tsconfig.tsbuildinfo') - } catch (e) { - console.error(e) - // - } - } - - await Promise.all([ - run('tsc --build tsconfig.runtime.json', true), - run('tsc --build tsconfig.json', true), - esbuild.build({ - platform: 'node', - bundle: true, - target: 'node12', - outfile: 'generator-build/index.js', - entryPoints: ['src/generator.ts'], - }), - // copy wasm files, etc necessary for undici - fs.copy( - path.resolve( - __dirname, - '../node_modules/@prisma/engine-core/node_modules/undici/lib/llhttp', - ), - path.resolve(__dirname, '../generator-build/llhttp'), - ), - ]) - - await Promise.all([ - esbuild.build({ - platform: 'node', - bundle: true, - target: 'node12', - outdir: 'runtime', - entryPoints: ['src/runtime/index.ts'], - }), - esbuild.build({ - platform: 'node', - bundle: true, - format: 'cjs', - target: ['chrome58', 'firefox57', 'safari11', 'edge16'], - outdir: 'runtime', - entryPoints: ['src/runtime/index-browser.ts'], - }), - run('rollup -c'), - // copy wasm files, etc necessary for undici - fs.copy( - path.resolve( - __dirname, - '../node_modules/@prisma/engine-core/node_modules/undici/lib/llhttp', - ), - path.resolve(__dirname, '../runtime/llhttp'), - ), - ]) - - await Promise.all([ - copyFile('./scripts/backup-index.js', 'index.js'), - copyFile('./scripts/backup-index-browser.js', 'index-browser.js'), - copyFile('./scripts/backup-index.d.ts', 'index.d.ts'), - ]) - - const after = Date.now() - console.log( - chalk.blueBright( - `\nDone with client build in ${chalk.bold( - ((after - before) / 1000).toFixed(1), - )}s`, - ), - ) -} - -function run(command, preferLocal = true) { - return execa.command(command, { preferLocal, shell: true, stdio: 'inherit' }) -} - -main().catch((e) => { - console.error(e) - process.exit(1) -}) From 487d6a85a01d2f173f9e15b71cd84630504057d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Galeran?= Date: Thu, 19 Aug 2021 15:20:34 +0000 Subject: [PATCH 08/25] add runtime/llhttp to package.json --- packages/cli/package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index ec4e6d2e3687..3c50e9e10554 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -42,6 +42,7 @@ "runtime/*.d.ts", "runtime/utils", "runtime/dist", + "runtime/llhttp", "prisma-client", "preinstall", "scripts/preinstall-entry.js", @@ -118,7 +119,7 @@ "format": "prettier --write .", "lint": "eslint --cache --fix --ext .ts .", "lint-ci": "eslint --ext .ts .", - "tsc": "tsc -d -p tsconfig.build.json && bash scripts/copy-runtime-dist.sh", + "tsc": "tsc -d -p tsconfig.build.json", "prepublishOnly": "pnpm run build", "preinstall": "node scripts/preinstall-entry.js", "precommit": "lint-staged" @@ -132,4 +133,4 @@ "prettier --write" ] } -} +} \ No newline at end of file From 22b805ca7d3666ab1a66fafde8dce9484a0761fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Galeran?= Date: Thu, 19 Aug 2021 15:37:40 +0000 Subject: [PATCH 09/25] copy wasm to generator-build as well --- packages/client/helpers/build.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/client/helpers/build.js b/packages/client/helpers/build.js index 468fb00a4ec5..6cad9ee39d07 100644 --- a/packages/client/helpers/build.js +++ b/packages/client/helpers/build.js @@ -31,6 +31,14 @@ async function build() { format: 'cjs', }), // copy wasm files, etc necessary for undici + fs.copy( + path.resolve( + __dirname, + '../node_modules/@prisma/engine-core/node_modules/undici/lib/llhttp', + ), + path.resolve(__dirname, '../generator-build/llhttp'), + ), + // copy wasm files, etc necessary for undici fs.copy( path.resolve( __dirname, From 3a2df2c76734967c005f5d6aece59e2f0e074d89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Galeran?= Date: Thu, 19 Aug 2021 15:55:58 +0000 Subject: [PATCH 10/25] remove unused import --- packages/engine-core/src/binary/Connection.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/engine-core/src/binary/Connection.ts b/packages/engine-core/src/binary/Connection.ts index 0f8e8cb2a0ea..ba3b610c2c56 100644 --- a/packages/engine-core/src/binary/Connection.ts +++ b/packages/engine-core/src/binary/Connection.ts @@ -1,5 +1,5 @@ import getStream = require('get-stream') -import { Client, Pool, Dispatcher } from 'undici' +import { Pool, Dispatcher } from 'undici' import { URL } from 'url' export type Result = { From 6079f1462ec32f1ed436804ae55830cb61de9a8d Mon Sep 17 00:00:00 2001 From: Jan Piotrowski Date: Fri, 20 Aug 2021 17:55:37 +0200 Subject: [PATCH 11/25] fix(deps): update undici to 4.4.6 (#8831) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Joël Galeran --- packages/engine-core/package.json | 4 +- pnpm-lock.yaml | 129 +++++++++++++++--------------- 2 files changed, 67 insertions(+), 66 deletions(-) diff --git a/packages/engine-core/package.json b/packages/engine-core/package.json index b317c6071720..8cea23913fd1 100644 --- a/packages/engine-core/package.json +++ b/packages/engine-core/package.json @@ -55,7 +55,7 @@ "new-github-issue-url": "0.2.1", "p-retry": "4.6.1", "terminal-link": "2.1.1", - "undici": "^4.0.0" + "undici": "^4.4.6" }, "files": [ "README.md", @@ -67,4 +67,4 @@ "prettier --write" ] } -} \ No newline at end of file +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5619599b97e9..53a1e81bb7c4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -213,6 +213,7 @@ importers: eslint-plugin-prettier: 3.4.0 execa: 5.1.1 flat-map-polyfill: 0.3.8 + fs-extra: 10.0.0 fs-monkey: 1.0.3 get-own-enumerable-property-symbols: 3.0.2 indent-string: 4.0.0 @@ -275,6 +276,7 @@ importers: eslint-plugin-prettier: 3.4.0_5a48a349ffec60f5257b5f148f5199c3 execa: 5.1.1 flat-map-polyfill: 0.3.8 + fs-extra: 10.0.0 fs-monkey: 1.0.3 get-own-enumerable-property-symbols: 3.0.2 indent-string: 4.0.0 @@ -360,7 +362,7 @@ importers: '@prisma/generator-helper': workspace:* '@prisma/get-platform': 2.30.0-22.6ee261c643b2c461a20371f48ffa5090ed578aaf '@types/jest': 27.0.1 - '@types/node': 12.20.19 + '@types/node': 16.6.2 '@typescript-eslint/eslint-plugin': 4.29.2 '@typescript-eslint/parser': 4.29.2 chalk: 4.1.2 @@ -383,7 +385,7 @@ importers: terminal-link: 2.1.1 ts-jest: 27.0.5 typescript: 4.3.5 - undici: 3.3.6 + undici: ^4.4.6 dependencies: '@prisma/debug': link:../debug '@prisma/engines': 2.30.0-22.6ee261c643b2c461a20371f48ffa5090ed578aaf @@ -396,10 +398,10 @@ importers: new-github-issue-url: 0.2.1 p-retry: 4.6.1 terminal-link: 2.1.1 - undici: 3.3.6 + undici: 4.4.6 devDependencies: '@types/jest': 27.0.1 - '@types/node': 12.20.19 + '@types/node': 16.6.2 '@typescript-eslint/eslint-plugin': 4.29.2_b01b7137116ac50f0745961d9cf72d34 '@typescript-eslint/parser': 4.29.2_eslint@7.32.0+typescript@4.3.5 esbuild: 0.12.16 @@ -1648,8 +1650,8 @@ packages: transitivePeerDependencies: - supports-color - /@prisma/debug/2.30.0-dev.33: - resolution: {integrity: sha512-LVfngS6qZybtsQuYXKTU6fr90l4n4sumRQ7jqGLty0R7aV6Uvl+/Y3nxy1mxDUiFiH/JSQcuMoXZLpzVuGi9NA==} + /@prisma/debug/2.30.0-dev.35: + resolution: {integrity: sha512-vMAL1/n49Xd8GwJTkjHVf/J92M2hHvdBXFy5a2jFoX3XKuNtCHO2hq8cF0KFmaq389SRFEYF2r+BrY7GFnHvyQ==} dependencies: '@types/debug': 4.1.7 debug: 4.3.2 @@ -1658,13 +1660,13 @@ packages: - supports-color dev: true - /@prisma/engine-core/2.30.0-dev.33: - resolution: {integrity: sha512-JWcSaI1s5Gb+behRD6q9X/cL/SvHTahGllj/ZEMzklwpAvkW2/xqWoO2EfUC3kf9XRAOKxTlQHXvg3hG0I4yyA==} + /@prisma/engine-core/2.30.0-dev.35: + resolution: {integrity: sha512-bXS2dcXiEXd3e5EhUIA9fHf9bAiU68QQZk+T9cpp/6OlhHhPdnVNtOLxRsWVT19DeyZ4c6h0xY3JHz3P3in7Qg==} dependencies: - '@prisma/debug': 2.30.0-dev.33 - '@prisma/engines': 2.30.0-21.222465dda7cc7803b17526d3971e77de27fec0c2 - '@prisma/generator-helper': 2.30.0-dev.33 - '@prisma/get-platform': 2.30.0-21.222465dda7cc7803b17526d3971e77de27fec0c2 + '@prisma/debug': 2.30.0-dev.35 + '@prisma/engines': 2.30.0-22.6ee261c643b2c461a20371f48ffa5090ed578aaf + '@prisma/generator-helper': 2.30.0-dev.35 + '@prisma/get-platform': 2.30.0-22.6ee261c643b2c461a20371f48ffa5090ed578aaf chalk: 4.1.2 execa: 5.1.1 get-stream: 6.0.1 @@ -1680,39 +1682,10 @@ packages: /@prisma/engines-version/2.30.0-22.6ee261c643b2c461a20371f48ffa5090ed578aaf: resolution: {integrity: sha512-JWRh9TkiUAfghqAhA/ehIta6pR3c8+TtfRwlmokSmud4DfJ5Z8adORHxWXq3bWxS9ZBMQ9bIXfP9vHeVjxFSIA==} - /@prisma/engines/2.30.0-21.222465dda7cc7803b17526d3971e77de27fec0c2: - resolution: {integrity: sha512-1cNa3i8jD2ZLM7fYVpskKVGiHz/XhFwapP5RqlXp9ZupTmbiD0qgmwpyS2JHwSkC8el9ct/ya9TSfa6lVMZkdg==} - requiresBuild: true - dev: true - /@prisma/engines/2.30.0-22.6ee261c643b2c461a20371f48ffa5090ed578aaf: resolution: {integrity: sha512-wIqGgmG7Cm3nSaN5UMOFlglrCRO14dpfSyBGK9b9zwWqmNSZDLrDJADd5lqT27TxtBEGSwc8fH7BJF4PqOiKxQ==} requiresBuild: true - /@prisma/fetch-engine/2.30.0-21.222465dda7cc7803b17526d3971e77de27fec0c2: - resolution: {integrity: sha512-uDiQB6RapmTah9ay98Ik56R7Q/PQrR7DFUTUrPmkpADxn8cTj/B4wrM0Nf96+sP6kdaWX22HTa0cNQWf4eCOng==} - dependencies: - '@prisma/debug': 2.29.1 - '@prisma/get-platform': 2.30.0-21.222465dda7cc7803b17526d3971e77de27fec0c2 - chalk: 4.1.2 - execa: 5.1.1 - find-cache-dir: 3.3.1 - hasha: 5.2.2 - http-proxy-agent: 4.0.1 - https-proxy-agent: 5.0.0 - make-dir: 3.1.0 - node-fetch: 2.6.1 - p-filter: 2.1.0 - p-map: 4.0.0 - p-retry: 4.6.1 - progress: 2.0.3 - rimraf: 3.0.2 - temp-dir: 2.0.0 - tempy: 1.0.1 - transitivePeerDependencies: - - supports-color - dev: true - /@prisma/fetch-engine/2.30.0-22.6ee261c643b2c461a20371f48ffa5090ed578aaf: resolution: {integrity: sha512-4YPMaTOZ41Hm4TjV6V1AgqBDQ3787yzTweBndmWt93TxljOOnrVCrQWvMp1z1NVwwf/LQ+OxZr4NwznhJJB4CA==} dependencies: @@ -1736,10 +1709,10 @@ packages: transitivePeerDependencies: - supports-color - /@prisma/generator-helper/2.30.0-dev.33: - resolution: {integrity: sha512-BfZ75Eb4j0oE6U0zEwE9LqCmH5W2WuUOS9G4++SWJLPcFt/juKcb0gpIcj3hAEfVb1ZRv4M2+JeQZBHoTcUngA==} + /@prisma/generator-helper/2.30.0-dev.35: + resolution: {integrity: sha512-2pvPWZwI0Fk3fBIFxzWUyO1/Jfaz/Kkf2ug6WCewvOQHXjwcJyiFXSCaWa4GWFHtPsevE000wXjHldCbcq1P8A==} dependencies: - '@prisma/debug': 2.30.0-dev.33 + '@prisma/debug': 2.30.0-dev.35 '@types/cross-spawn': 6.0.2 chalk: 4.1.2 cross-spawn: 7.0.3 @@ -1747,14 +1720,6 @@ packages: - supports-color dev: true - /@prisma/get-platform/2.30.0-21.222465dda7cc7803b17526d3971e77de27fec0c2: - resolution: {integrity: sha512-WtR3rEdOUcnNj57kU5v5V4lDMERUwd+vfT7bsY+UpE85U7mV+WqqRL+1pw0sHplMxOQRwdqHmCreVRFvcZz1tw==} - dependencies: - '@prisma/debug': 2.29.1 - transitivePeerDependencies: - - supports-color - dev: true - /@prisma/get-platform/2.30.0-22.6ee261c643b2c461a20371f48ffa5090ed578aaf: resolution: {integrity: sha512-7OQmEWe8LWd5MUQF0DIWs5sLacIE2cmlH4wCM2pxJgFo/pP3bbrl2YplMZjdNXntCBbH+Ul34eUvIdMRnoDfxA==} dependencies: @@ -1762,15 +1727,15 @@ packages: transitivePeerDependencies: - supports-color - /@prisma/sdk/2.30.0-dev.33: - resolution: {integrity: sha512-BLoU7OJvo1AxsnWMnZ5lnMqwcYWc6bl+wsk3AA2DuhMnLhaJIwp3xcExIpVIgqg0mxVoMF0oAabDtv1vyOF7oQ==} + /@prisma/sdk/2.30.0-dev.35: + resolution: {integrity: sha512-qxEUFV/IpFBR1XzpILgkG1vbHs2SKZcSUlL9XWCKR6GDYKTSg47xd3fH62nALZL2Vzz/JoshVXM+S8XFDGbVSg==} dependencies: - '@prisma/debug': 2.30.0-dev.33 - '@prisma/engine-core': 2.30.0-dev.33 - '@prisma/engines': 2.30.0-21.222465dda7cc7803b17526d3971e77de27fec0c2 - '@prisma/fetch-engine': 2.30.0-21.222465dda7cc7803b17526d3971e77de27fec0c2 - '@prisma/generator-helper': 2.30.0-dev.33 - '@prisma/get-platform': 2.30.0-21.222465dda7cc7803b17526d3971e77de27fec0c2 + '@prisma/debug': 2.30.0-dev.35 + '@prisma/engine-core': 2.30.0-dev.35 + '@prisma/engines': 2.30.0-22.6ee261c643b2c461a20371f48ffa5090ed578aaf + '@prisma/fetch-engine': 2.30.0-22.6ee261c643b2c461a20371f48ffa5090ed578aaf + '@prisma/generator-helper': 2.30.0-dev.35 + '@prisma/get-platform': 2.30.0-22.6ee261c643b2c461a20371f48ffa5090ed578aaf '@timsuchanek/copy': 1.4.5 archiver: 4.0.2 arg: 5.0.1 @@ -1804,13 +1769,13 @@ packages: - supports-color dev: true - /@prisma/studio-pcw/0.422.0_@prisma+sdk@2.30.0-dev.33: + /@prisma/studio-pcw/0.422.0_@prisma+sdk@2.30.0-dev.35: resolution: {integrity: sha512-82VESX2oeh6DwggY6B9Cblaz2xeaJfj0a+LRvUJve8NDShkarhLHMFh9auO8AWa3cCN1gWxEF/DUfnLNL35BrA==} peerDependencies: '@prisma/client': '*' '@prisma/sdk': '*' dependencies: - '@prisma/sdk': 2.30.0-dev.33 + '@prisma/sdk': 2.30.0-dev.35 debug: 4.3.1 lodash: 4.17.21 transitivePeerDependencies: @@ -1820,8 +1785,8 @@ packages: /@prisma/studio-server/0.422.0: resolution: {integrity: sha512-VLDIsIDzklsFJB4AUyluZq9QiKQkz/nI9Hrj7Pp7Mb1rm3S0x8fsf4W3jYqibqqqz8rgg+5ztc4EjkCgpCa4sA==} dependencies: - '@prisma/sdk': 2.30.0-dev.33 - '@prisma/studio-pcw': 0.422.0_@prisma+sdk@2.30.0-dev.33 + '@prisma/sdk': 2.30.0-dev.35 + '@prisma/studio-pcw': 0.422.0_@prisma+sdk@2.30.0-dev.35 '@prisma/studio-transports': 0.422.0 '@sentry/node': 6.2.5 checkpoint-client: 1.1.20 @@ -2143,6 +2108,10 @@ packages: resolution: {integrity: sha512-CMjgRNsks27IDwI785YMY0KLt3co/c0cQ5foxHYv/shC2w8oOnVwz5Ubq1QG5KzrcW+AXk6gzdnxIkDnTvzu3g==} dev: true + /@types/node/16.6.2: + resolution: {integrity: sha512-LSw8TZt12ZudbpHc6EkIyDM3nHVWKYrAvGy6EAJfNfjusbwnThqjqxUKKRwuV3iWYeW/LYMzNgaq3MaLffQ2xA==} + dev: true + /@types/node/8.10.66: resolution: {integrity: sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==} dev: true @@ -3961,6 +3930,15 @@ packages: /fs-constants/1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + /fs-extra/10.0.0: + resolution: {integrity: sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==} + engines: {node: '>=12'} + dependencies: + graceful-fs: 4.2.8 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + /fs-jetpack/4.1.1: resolution: {integrity: sha512-BSZ+f6VjrMInpA6neNnUhQNFPPdf3M+I8v8M9dBRrbmExd8GNRbTJIq1tjNh86FQ4a+EoMtPcp1oemwY5ghGBw==} dependencies: @@ -4121,6 +4099,10 @@ packages: /graceful-fs/4.2.6: resolution: {integrity: sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==} + /graceful-fs/4.2.8: + resolution: {integrity: sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==} + dev: true + /graphviz/0.0.9: resolution: {integrity: sha512-SmoY2pOtcikmMCqCSy2NO1YsRfu9OO0wpTlOYW++giGjfX1a6gax/m1Fo8IdUd0/3H15cTOfR1SMKwohj4LKsg==} engines: {node: '>=0.6.8'} @@ -5110,6 +5092,14 @@ packages: minimist: 1.2.5 dev: true + /jsonfile/6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.8 + dev: true + /jsonwebtoken/8.5.1: resolution: {integrity: sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==} engines: {node: '>=4', npm: '>=1.4.28'} @@ -7361,6 +7351,12 @@ packages: /undici/3.3.6: resolution: {integrity: sha512-/j3YTZ5AobMB4ZrTY72mzM54uFUX32v0R/JRW9G2vOyF1uSKYAx+WT8dMsAcRS13TOFISv094TxIyWYk+WEPsA==} + dev: true + + /undici/4.4.6: + resolution: {integrity: sha512-NxnFqJouVi+R7wC7TtIeIP9AeBIy1ZHwnUHtmDFyXhtKNFQ2pjxFZdz3yYBKEWDTPQ5D2ipYxtovOi1tuU6s4w==} + engines: {node: '>=12.18'} + dev: false /unique-string/2.0.0: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} @@ -7373,6 +7369,11 @@ packages: engines: {node: '>= 4.0.0'} dev: true + /universalify/2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + dev: true + /unpipe/1.0.0: resolution: {integrity: sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=} engines: {node: '>= 0.8'} From 96592810797ae8ef0b1b91da015dc83c21876a8f Mon Sep 17 00:00:00 2001 From: Jan Piotrowski Date: Mon, 23 Aug 2021 10:59:54 +0200 Subject: [PATCH 12/25] Apply suggestions from code review Co-authored-by: Pierre-Antoine Mills --- packages/client/helpers/build.js | 1 - packages/engine-core/package.json | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/client/helpers/build.js b/packages/client/helpers/build.js index 6cad9ee39d07..38a08af47852 100644 --- a/packages/client/helpers/build.js +++ b/packages/client/helpers/build.js @@ -7,7 +7,6 @@ const ESBUILD_DEFAULT = { bundle: true, platform: 'node', target: 'es2018', - // external: ['_http_common'], tsconfig: 'tsconfig.build.json', } diff --git a/packages/engine-core/package.json b/packages/engine-core/package.json index 8cea23913fd1..f0c280952241 100644 --- a/packages/engine-core/package.json +++ b/packages/engine-core/package.json @@ -55,7 +55,7 @@ "new-github-issue-url": "0.2.1", "p-retry": "4.6.1", "terminal-link": "2.1.1", - "undici": "^4.4.6" + "undici": "4.4.6" }, "files": [ "README.md", From c0cebfd41632005128b99a7991aa30312ce58a6a Mon Sep 17 00:00:00 2001 From: Jan Piotrowski Date: Tue, 24 Aug 2021 17:13:14 +0200 Subject: [PATCH 13/25] fix(deps): update undici to 4.x (remove one of the two copy actions for undici binary files) (#8889) --- packages/client/helpers/build.js | 8 -------- 1 file changed, 8 deletions(-) diff --git a/packages/client/helpers/build.js b/packages/client/helpers/build.js index 38a08af47852..f579c9845998 100644 --- a/packages/client/helpers/build.js +++ b/packages/client/helpers/build.js @@ -30,14 +30,6 @@ async function build() { format: 'cjs', }), // copy wasm files, etc necessary for undici - fs.copy( - path.resolve( - __dirname, - '../node_modules/@prisma/engine-core/node_modules/undici/lib/llhttp', - ), - path.resolve(__dirname, '../generator-build/llhttp'), - ), - // copy wasm files, etc necessary for undici fs.copy( path.resolve( __dirname, From db39f11601b869eedd8d95eaa03e174aeafe5eba Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Mills Date: Mon, 15 Nov 2021 15:50:55 -0500 Subject: [PATCH 14/25] fix(engine-core): disable body timeout --- packages/engine-core/src/binary/Connection.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/engine-core/src/binary/Connection.ts b/packages/engine-core/src/binary/Connection.ts index ada0ddb4ae07..a47f36123112 100644 --- a/packages/engine-core/src/binary/Connection.ts +++ b/packages/engine-core/src/binary/Connection.ts @@ -29,7 +29,7 @@ export class Connection { /** * Wrapper to handle HTTP error codes. HTTP errors don't trigger any - * execptions because it is optional to handle error status codes. + * exceptions because it is optional to handle error status codes. * @param response to handle * @param handler to execute * @returns @@ -58,6 +58,7 @@ export class Connection { pipelining: 10, keepAliveMaxTimeout: 600e3, headersTimeout: 0, + bodyTimeout: 0, ...options, }) } @@ -85,8 +86,7 @@ export class Connection { 'Content-Type': 'application/json', ...headers, }, - body, - // bodyTimeout: 0, + body: body, }) const result: Result = { From 79460dbf362ae9d34e1ae768623af9d726d97147 Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Mills Date: Thu, 18 Nov 2021 10:43:10 -0500 Subject: [PATCH 15/25] chore(build): inline wasm --- helpers/compile/plugins/replaceWithPlugin.ts | 20 +++++-- packages/cli/helpers/build.ts | 2 +- packages/client/helpers/build.ts | 57 ++++++++++---------- packages/engine-core/package.json | 2 +- pnpm-lock.yaml | 8 +-- 5 files changed, 51 insertions(+), 38 deletions(-) diff --git a/helpers/compile/plugins/replaceWithPlugin.ts b/helpers/compile/plugins/replaceWithPlugin.ts index 45d34a2f9250..b54e18cd3184 100644 --- a/helpers/compile/plugins/replaceWithPlugin.ts +++ b/helpers/compile/plugins/replaceWithPlugin.ts @@ -1,27 +1,39 @@ import type * as esbuild from 'esbuild' import fs from 'fs' -function applyReplacements(contents: string, replacements: [RegExp, string][]) { +type Replacement = [RegExp, string | ((regex: RegExp, contents: string) => string | Promise)] + +async function applyReplacements(contents: string, replacements: Replacement[]) { for (const [regex, replacement] of replacements) { - contents = contents.replace(regex, replacement) + if (typeof replacement === 'string') { + contents = contents.replace(regex, replacement) + } else { + contents = await replacement(regex, contents) + } } return contents } +// native nodejs imports so that we can filter out +const nativeDependencies = new Set(Object.keys((process as any).binding('natives'))) + /** * Replace the contents of a file with the given replacements. * @param replacements * @returns */ -export const replaceWithPlugin = (replacements: [RegExp, string][]): esbuild.Plugin => { +export const replaceWithPlugin = (replacements: Replacement[]): esbuild.Plugin => { return { name: 'replaceWithPlugin', setup(build) { build.onLoad({ filter: /.*/ }, async (args) => { + if (nativeDependencies.has(args.path)) return {} + if (!/.*?(.js|.mjs)$/.exec(args.path)) return {} + const contents = await fs.promises.readFile(args.path, 'utf8') - return { contents: applyReplacements(contents, replacements) } + return { contents: await applyReplacements(contents, replacements) } }) }, } diff --git a/packages/cli/helpers/build.ts b/packages/cli/helpers/build.ts index e9f10e445915..9de2752a9af3 100644 --- a/packages/cli/helpers/build.ts +++ b/packages/cli/helpers/build.ts @@ -78,7 +78,7 @@ const cliLifecyclePlugin: esbuild.Plugin = { const cliBuildConfig: BuildOptions = { entryPoints: ['src/bin.ts'], outfile: 'build/index', - external: ['@prisma/engines', '_http_common'], + external: ['@prisma/engines'], plugins: [resolveHelperPlugin, cliLifecyclePlugin], bundle: true, } diff --git a/packages/client/helpers/build.ts b/packages/client/helpers/build.ts index 0670e60916cc..42d83be90f49 100644 --- a/packages/client/helpers/build.ts +++ b/packages/client/helpers/build.ts @@ -1,49 +1,45 @@ import type { BuildOptions } from '../../../helpers/compile/build' import { build } from '../../../helpers/compile/build' import { fillPlugin } from '../../../helpers/compile/plugins/fill-plugin/fillPlugin' +import { replaceWithPlugin } from '../../../helpers/compile/plugins/replaceWithPlugin' import { Extractor, ExtractorConfig } from '@microsoft/api-extractor' +import resolve from 'resolve' import path from 'path' -import { copy } from 'fs-extra' -import type * as esbuild from 'esbuild' +import fs from 'fs' -const external = ['_http_common'] +const inlineUndiciWasm = replaceWithPlugin([ + [ + /(await WebAssembly\.compile\().*?'(.*?)'\)\)\)/g, + async (regex, contents) => { + for (const match of contents.matchAll(regex)) { + const engineCoreDir = resolve.sync('@prisma/engine-core') + const undiciPackage = resolve.sync('undici/package.json', { basedir: engineCoreDir }) + const lhttpWasmPath = path.join(path.dirname(undiciPackage), 'lib', match[2]) + const wasmContents = (await fs.promises.readFile(lhttpWasmPath)).toString('base64') + const inlineWasm = `${match[1]}(Buffer.from("${wasmContents}", "base64")))` -const runtimeLifecyclePlugin: esbuild.Plugin = { - name: 'cliLifecyclePlugin', - setup(build) { - // we only do this for the first one of the builds - if (build.initialOptions?.format === 'esm') return + const test = await WebAssembly.compile(await fs.promises.readFile(lhttpWasmPath)) - build.onStart(async () => { - // copy wasm files, etc necessary for undici - await copy( - path.resolve(__dirname, '../node_modules/@prisma/engine-core/node_modules/undici/lib/llhttp'), - path.resolve(__dirname, '../runtime/llhttp'), - ) - }) - }, -} -// we define the config for generator -const generatorBuildConfig: BuildOptions = { - entryPoints: ['src/generation/generator.ts'], - outfile: 'generator-build/index', - bundle: true, - external: external, -} + // contents = contents.replace(match[0], inlineWasm) + } + + return contents + }, + ], +]) // we define the config for runtime const runtimeBuildConfig: BuildOptions = { entryPoints: ['src/runtime/index.ts'], outfile: 'runtime/index', bundle: true, - external: external, define: { 'globalThis.NOT_PRISMA_DATA_PROXY': 'true', // that fixes an issue with lz-string umd builds 'define.amd': 'false', }, - plugins: [runtimeLifecyclePlugin], + plugins: [inlineUndiciWasm], } // we define the config for browser @@ -52,7 +48,6 @@ const browserBuildConfig: BuildOptions = { outfile: 'runtime/index-browser', target: ['chrome58', 'firefox57', 'safari11', 'edge16'], bundle: true, - external: external, } // we define the config for proxy @@ -62,7 +57,6 @@ const proxyBuildConfig: BuildOptions = { bundle: true, minify: true, legalComments: 'none', - external: external, define: { // that helps us to tree-shake unused things out 'globalThis.NOT_PRISMA_DATA_PROXY': 'false', @@ -88,6 +82,13 @@ const proxyBuildConfig: BuildOptions = { logLevel: 'error', } +// we define the config for generator +const generatorBuildConfig: BuildOptions = { + entryPoints: ['src/generation/generator.ts'], + outfile: 'generator-build/index', + bundle: true, +} + /** * Bundle all type definitions by using the API Extractor from RushStack * @param filename the source d.ts to bundle diff --git a/packages/engine-core/package.json b/packages/engine-core/package.json index 19771e04ddf1..0426d2ba35c9 100644 --- a/packages/engine-core/package.json +++ b/packages/engine-core/package.json @@ -54,7 +54,7 @@ "new-github-issue-url": "0.2.1", "p-retry": "4.6.1", "terminal-link": "2.1.1", - "undici": "4.4.6" + "undici": "4.10.0" }, "files": [ "README.md", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9c8689f80de7..9bf43311f185 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -404,7 +404,7 @@ importers: terminal-link: 2.1.1 ts-jest: 27.0.7 typescript: 4.4.4 - undici: 4.4.6 + undici: 4.10.0 dependencies: '@prisma/debug': link:../debug '@prisma/engines': 3.5.0-37.471f775de5e67ec17de893781ae51484bbcbeb63 @@ -417,7 +417,7 @@ importers: new-github-issue-url: 0.2.1 p-retry: 4.6.1 terminal-link: 2.1.1 - undici: 4.4.6 + undici: 4.10.0 devDependencies: '@types/jest': 27.0.2 '@types/node': 16.6.2 @@ -7927,8 +7927,8 @@ packages: resolution: {integrity: sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==} dev: true - /undici/4.4.6: - resolution: {integrity: sha512-NxnFqJouVi+R7wC7TtIeIP9AeBIy1ZHwnUHtmDFyXhtKNFQ2pjxFZdz3yYBKEWDTPQ5D2ipYxtovOi1tuU6s4w==} + /undici/4.10.0: + resolution: {integrity: sha512-W7NwyQzfiSYIZ+maOvz/u9tPFyAYhstF9XhtohK7txvD1jg41oatcHVq6Zls81LhzGvh4BN5WpQGuMiT4IipoA==} engines: {node: '>=12.18'} dev: false From 63c83bc3bb25d121d1f7c2f4b973f66b0dec95cf Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Mills Date: Wed, 22 Dec 2021 13:01:41 +0100 Subject: [PATCH 16/25] chore: update locks --- pnpm-lock.yaml | 831 +++++++++++++++++++++++++------------------------ 1 file changed, 421 insertions(+), 410 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0b5a266751f2..5ee538ec8444 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -380,11 +380,11 @@ importers: '@prisma/debug': workspace:* '@prisma/engines': 3.8.0-5.4f46a9eae52ebe9bc7c675c3e6ba65a4b614eeab '@prisma/generator-helper': workspace:* - '@prisma/get-platform': 3.5.0-37.471f775de5e67ec17de893781ae51484bbcbeb63 - '@types/jest': 27.0.2 + '@prisma/get-platform': 3.8.0-5.4f46a9eae52ebe9bc7c675c3e6ba65a4b614eeab + '@types/jest': 27.0.3 '@types/node': 16.6.2 - '@typescript-eslint/eslint-plugin': 4.33.0 - '@typescript-eslint/parser': 4.33.0 + '@typescript-eslint/eslint-plugin': 5.4.0 + '@typescript-eslint/parser': 5.4.0 chalk: 4.1.2 esbuild: 0.13.14 eslint: 8.3.0 @@ -419,18 +419,18 @@ importers: terminal-link: 2.1.1 undici: 4.10.0 devDependencies: - '@types/jest': 27.0.2 + '@types/jest': 27.0.3 '@types/node': 16.6.2 - '@typescript-eslint/eslint-plugin': 4.33.0_cc617358c89d3f38c52462f6d809db4c - '@typescript-eslint/parser': 4.33.0_eslint@7.32.0+typescript@4.4.4 - esbuild: 0.13.13 - eslint: 7.32.0 - eslint-config-prettier: 8.3.0_eslint@7.32.0 - eslint-plugin-eslint-comments: 3.2.0_eslint@7.32.0 - eslint-plugin-jest: 25.2.4_6d42bc8ddfc03001030ae8a08670e142 - eslint-plugin-prettier: 4.0.0_6e975bd57c7acf028c1a9ddbbf60c898 - jest: 27.3.1_ts-node@10.4.0 - lint-staged: 12.0.1 + '@typescript-eslint/eslint-plugin': 5.4.0_8fbd82ef37e23da98dfca9805cf945cd + '@typescript-eslint/parser': 5.4.0_eslint@8.3.0+typescript@4.4.4 + esbuild: 0.13.14 + eslint: 8.3.0 + eslint-config-prettier: 8.3.0_eslint@8.3.0 + eslint-plugin-eslint-comments: 3.2.0_eslint@8.3.0 + eslint-plugin-jest: 25.3.0_9e717fee4725c7001f5180f8f1a71d35 + eslint-plugin-prettier: 4.0.0_6c1acfc8d9d3a8dba99beef4e8bcebae + jest: 27.4.5_ts-node@10.4.0 + lint-staged: 12.0.2 prettier: 2.4.1 strip-ansi: 6.0.1 ts-jest: 27.1.2_b72bf80ce6f8fcf89768bfa40958465f @@ -819,15 +819,15 @@ packages: '@azure/abort-controller': 1.0.4 '@azure/core-asynciterator-polyfill': 1.0.0 '@azure/core-auth': 1.3.2 - '@azure/core-rest-pipeline': 1.3.2 + '@azure/core-rest-pipeline': 1.3.1 '@azure/core-tracing': 1.0.0-preview.13 tslib: 2.3.1 transitivePeerDependencies: - supports-color dev: true - /@azure/core-http/2.2.2: - resolution: {integrity: sha512-V1DdoO9V/sFimKpdWoNBgsE+QUjQgpXYnxrTdUp5RyhsTJjvEVn/HKmTQXIHuLUUo6IyIWj+B+Dg4VaXse9dIA==} + /@azure/core-http/2.2.1: + resolution: {integrity: sha512-7ATnV3OGzCO2K9kMrh3NKUM8b4v+xasmlUhkNZz6uMbm+8XH/AexLkhRGsoo0GyKNlEGvyGEfytqTk0nUY2I4A==} engines: {node: '>=12.0.0'} dependencies: '@azure/abort-controller': 1.0.4 @@ -838,7 +838,7 @@ packages: '@types/node-fetch': 2.5.12 '@types/tunnel': 0.0.3 form-data: 4.0.0 - node-fetch: 2.6.6 + node-fetch: 2.6.5 process: 0.11.10 tough-cookie: 4.0.0 tslib: 2.3.1 @@ -865,8 +865,8 @@ packages: tslib: 2.3.1 dev: true - /@azure/core-rest-pipeline/1.3.2: - resolution: {integrity: sha512-kymICKESeHBpVLgQiAxllgWdSTopkqtmfPac8ITwMCxNEC6hzbSpqApYbjzxbBNkBMgoD4GESo6LLhR/sPh6kA==} + /@azure/core-rest-pipeline/1.3.1: + resolution: {integrity: sha512-xTQiv47O5cWzJFkwiDrUTT4K4IYbUIts0gaou5TZxAAuhQi9kAKWHEmFTjHVMOeAmyDhlMM5cb21M2n4WDto1A==} engines: {node: '>=12.0.0'} dependencies: '@azure/abort-controller': 1.0.4 @@ -904,7 +904,7 @@ packages: dependencies: '@azure/core-auth': 1.3.2 '@azure/core-client': 1.3.2 - '@azure/core-rest-pipeline': 1.3.2 + '@azure/core-rest-pipeline': 1.3.1 '@azure/core-tracing': 1.0.0-preview.12 '@azure/logger': 1.0.3 '@azure/msal-node': 1.0.0-beta.6_debug@4.3.2 @@ -912,7 +912,7 @@ packages: axios: 0.21.4_debug@4.3.2 events: 3.3.0 jws: 4.0.0 - msal: 1.4.15 + msal: 1.4.14 open: 7.4.2 qs: 6.10.1 stoppable: 1.1.0 @@ -930,7 +930,7 @@ packages: engines: {node: '>=8.0.0'} dependencies: '@azure/abort-controller': 1.0.4 - '@azure/core-http': 2.2.2 + '@azure/core-http': 2.2.1 '@azure/core-lro': 2.2.1 '@azure/core-paging': 1.2.0 '@azure/core-tracing': 1.0.0-preview.13 @@ -955,7 +955,7 @@ packages: '@azure/core-auth': 1.3.2 abort-controller: 3.0.0 form-data: 2.5.1 - node-fetch: 2.6.6 + node-fetch: 2.6.5 tough-cookie: 3.0.1 tslib: 1.14.1 tunnel: 0.0.6 @@ -994,36 +994,30 @@ packages: - supports-color dev: true - /@babel/code-frame/7.12.11: - resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} - dependencies: - '@babel/highlight': 7.16.0 - dev: true - - /@babel/code-frame/7.16.0: - resolution: {integrity: sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==} + /@babel/code-frame/7.15.8: + resolution: {integrity: sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.16.0 + '@babel/highlight': 7.14.5 - /@babel/compat-data/7.16.0: - resolution: {integrity: sha512-DGjt2QZse5SGd9nfOSqO4WLJ8NN/oHkijbXbPrxuoJO3oIPJL3TciZs9FX+cOHNiY9E9l0opL8g7BmLe3T+9ew==} + /@babel/compat-data/7.15.0: + resolution: {integrity: sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==} engines: {node: '>=6.9.0'} dev: true - /@babel/core/7.16.0: - resolution: {integrity: sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==} + /@babel/core/7.15.8: + resolution: {integrity: sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.16.0 - '@babel/generator': 7.16.0 - '@babel/helper-compilation-targets': 7.16.3_@babel+core@7.16.0 - '@babel/helper-module-transforms': 7.16.0 - '@babel/helpers': 7.16.3 - '@babel/parser': 7.16.3 - '@babel/template': 7.16.0 - '@babel/traverse': 7.16.3 - '@babel/types': 7.16.0 + '@babel/code-frame': 7.15.8 + '@babel/generator': 7.15.8 + '@babel/helper-compilation-targets': 7.15.4_@babel+core@7.15.8 + '@babel/helper-module-transforms': 7.15.8 + '@babel/helpers': 7.15.4 + '@babel/parser': 7.15.8 + '@babel/template': 7.15.4 + '@babel/traverse': 7.15.4 + '@babel/types': 7.15.6 convert-source-map: 1.8.0 debug: 4.3.3 gensync: 1.0.0-beta.2 @@ -1034,86 +1028,86 @@ packages: - supports-color dev: true - /@babel/generator/7.16.0: - resolution: {integrity: sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==} + /@babel/generator/7.15.8: + resolution: {integrity: sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.16.0 + '@babel/types': 7.15.6 jsesc: 2.5.2 source-map: 0.5.7 dev: true - /@babel/helper-compilation-targets/7.16.3_@babel+core@7.16.0: - resolution: {integrity: sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==} + /@babel/helper-compilation-targets/7.15.4_@babel+core@7.15.8: + resolution: {integrity: sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/compat-data': 7.16.0 - '@babel/core': 7.16.0 + '@babel/compat-data': 7.15.0 + '@babel/core': 7.15.8 '@babel/helper-validator-option': 7.14.5 - browserslist: 4.18.1 + browserslist: 4.17.5 semver: 6.3.0 dev: true - /@babel/helper-function-name/7.16.0: - resolution: {integrity: sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==} + /@babel/helper-function-name/7.15.4: + resolution: {integrity: sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-get-function-arity': 7.16.0 - '@babel/template': 7.16.0 - '@babel/types': 7.16.0 + '@babel/helper-get-function-arity': 7.15.4 + '@babel/template': 7.15.4 + '@babel/types': 7.15.6 dev: true - /@babel/helper-get-function-arity/7.16.0: - resolution: {integrity: sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==} + /@babel/helper-get-function-arity/7.15.4: + resolution: {integrity: sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.16.0 + '@babel/types': 7.15.6 dev: true - /@babel/helper-hoist-variables/7.16.0: - resolution: {integrity: sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==} + /@babel/helper-hoist-variables/7.15.4: + resolution: {integrity: sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.16.0 + '@babel/types': 7.15.6 dev: true - /@babel/helper-member-expression-to-functions/7.16.0: - resolution: {integrity: sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==} + /@babel/helper-member-expression-to-functions/7.15.4: + resolution: {integrity: sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.16.0 + '@babel/types': 7.15.6 dev: true - /@babel/helper-module-imports/7.16.0: - resolution: {integrity: sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==} + /@babel/helper-module-imports/7.15.4: + resolution: {integrity: sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.16.0 + '@babel/types': 7.15.6 dev: true - /@babel/helper-module-transforms/7.16.0: - resolution: {integrity: sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==} + /@babel/helper-module-transforms/7.15.8: + resolution: {integrity: sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-module-imports': 7.16.0 - '@babel/helper-replace-supers': 7.16.0 - '@babel/helper-simple-access': 7.16.0 - '@babel/helper-split-export-declaration': 7.16.0 + '@babel/helper-module-imports': 7.15.4 + '@babel/helper-replace-supers': 7.15.4 + '@babel/helper-simple-access': 7.15.4 + '@babel/helper-split-export-declaration': 7.15.4 '@babel/helper-validator-identifier': 7.15.7 - '@babel/template': 7.16.0 - '@babel/traverse': 7.16.3 - '@babel/types': 7.16.0 + '@babel/template': 7.15.4 + '@babel/traverse': 7.15.4 + '@babel/types': 7.15.6 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-optimise-call-expression/7.16.0: - resolution: {integrity: sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==} + /@babel/helper-optimise-call-expression/7.15.4: + resolution: {integrity: sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.16.0 + '@babel/types': 7.15.6 dev: true /@babel/helper-plugin-utils/7.14.5: @@ -1121,30 +1115,30 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-replace-supers/7.16.0: - resolution: {integrity: sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==} + /@babel/helper-replace-supers/7.15.4: + resolution: {integrity: sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-member-expression-to-functions': 7.16.0 - '@babel/helper-optimise-call-expression': 7.16.0 - '@babel/traverse': 7.16.3 - '@babel/types': 7.16.0 + '@babel/helper-member-expression-to-functions': 7.15.4 + '@babel/helper-optimise-call-expression': 7.15.4 + '@babel/traverse': 7.15.4 + '@babel/types': 7.15.6 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-simple-access/7.16.0: - resolution: {integrity: sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==} + /@babel/helper-simple-access/7.15.4: + resolution: {integrity: sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.16.0 + '@babel/types': 7.15.6 dev: true - /@babel/helper-split-export-declaration/7.16.0: - resolution: {integrity: sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==} + /@babel/helper-split-export-declaration/7.15.4: + resolution: {integrity: sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.16.0 + '@babel/types': 7.15.6 dev: true /@babel/helper-validator-identifier/7.15.7: @@ -1156,178 +1150,178 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helpers/7.16.3: - resolution: {integrity: sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==} + /@babel/helpers/7.15.4: + resolution: {integrity: sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.16.0 - '@babel/traverse': 7.16.3 - '@babel/types': 7.16.0 + '@babel/template': 7.15.4 + '@babel/traverse': 7.15.4 + '@babel/types': 7.15.6 transitivePeerDependencies: - supports-color dev: true - /@babel/highlight/7.16.0: - resolution: {integrity: sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==} + /@babel/highlight/7.14.5: + resolution: {integrity: sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-validator-identifier': 7.15.7 chalk: 2.4.2 js-tokens: 4.0.0 - /@babel/parser/7.16.3: - resolution: {integrity: sha512-dcNwU1O4sx57ClvLBVFbEgx0UZWfd0JQX5X6fxFRCLHelFBGXFfSz6Y0FAq2PEwUqlqLkdVjVr4VASEOuUnLJw==} + /@babel/parser/7.15.8: + resolution: {integrity: sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==} engines: {node: '>=6.0.0'} hasBin: true dev: true - /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.16.0: + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.15.8: resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.16.0 + '@babel/core': 7.15.8 '@babel/helper-plugin-utils': 7.14.5 dev: true - /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.16.0: + /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.15.8: resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.16.0 + '@babel/core': 7.15.8 '@babel/helper-plugin-utils': 7.14.5 dev: true - /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.16.0: + /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.15.8: resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.16.0 + '@babel/core': 7.15.8 '@babel/helper-plugin-utils': 7.14.5 dev: true - /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.16.0: + /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.15.8: resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.16.0 + '@babel/core': 7.15.8 '@babel/helper-plugin-utils': 7.14.5 dev: true - /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.16.0: + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.15.8: resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.16.0 + '@babel/core': 7.15.8 '@babel/helper-plugin-utils': 7.14.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.16.0: + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.15.8: resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.16.0 + '@babel/core': 7.15.8 '@babel/helper-plugin-utils': 7.14.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.16.0: + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.15.8: resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.16.0 + '@babel/core': 7.15.8 '@babel/helper-plugin-utils': 7.14.5 dev: true - /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.16.0: + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.15.8: resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.16.0 + '@babel/core': 7.15.8 '@babel/helper-plugin-utils': 7.14.5 dev: true - /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.16.0: + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.15.8: resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.16.0 + '@babel/core': 7.15.8 '@babel/helper-plugin-utils': 7.14.5 dev: true - /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.16.0: + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.15.8: resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.16.0 + '@babel/core': 7.15.8 '@babel/helper-plugin-utils': 7.14.5 dev: true - /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.16.0: + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.15.8: resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.16.0 + '@babel/core': 7.15.8 '@babel/helper-plugin-utils': 7.14.5 dev: true - /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.16.0: + /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.15.8: resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.16.0 + '@babel/core': 7.15.8 '@babel/helper-plugin-utils': 7.14.5 dev: true - /@babel/plugin-syntax-typescript/7.16.0_@babel+core@7.16.0: - resolution: {integrity: sha512-Xv6mEXqVdaqCBfJFyeab0fH2DnUoMsDmhamxsSi4j8nLd4Vtw213WMJr55xxqipC/YVWyPY3K0blJncPYji+dQ==} + /@babel/plugin-syntax-typescript/7.14.5_@babel+core@7.15.8: + resolution: {integrity: sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.16.0 + '@babel/core': 7.15.8 '@babel/helper-plugin-utils': 7.14.5 dev: true - /@babel/template/7.16.0: - resolution: {integrity: sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==} + /@babel/template/7.15.4: + resolution: {integrity: sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.16.0 - '@babel/parser': 7.16.3 - '@babel/types': 7.16.0 + '@babel/code-frame': 7.15.8 + '@babel/parser': 7.15.8 + '@babel/types': 7.15.6 dev: true - /@babel/traverse/7.16.3: - resolution: {integrity: sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==} + /@babel/traverse/7.15.4: + resolution: {integrity: sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.16.0 - '@babel/generator': 7.16.0 - '@babel/helper-function-name': 7.16.0 - '@babel/helper-hoist-variables': 7.16.0 - '@babel/helper-split-export-declaration': 7.16.0 - '@babel/parser': 7.16.3 - '@babel/types': 7.16.0 - debug: 4.3.2 + '@babel/code-frame': 7.15.8 + '@babel/generator': 7.15.8 + '@babel/helper-function-name': 7.15.4 + '@babel/helper-hoist-variables': 7.15.4 + '@babel/helper-split-export-declaration': 7.15.4 + '@babel/parser': 7.15.8 + '@babel/types': 7.15.6 + debug: 4.3.3 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types/7.16.0: - resolution: {integrity: sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==} + /@babel/types/7.15.6: + resolution: {integrity: sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-validator-identifier': 7.15.7 @@ -1387,16 +1381,27 @@ packages: /@humanwhocodes/config-array/0.6.0: resolution: {integrity: sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==} engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.0 + debug: 4.3.3 + minimatch: 3.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/config-array/0.9.2: + resolution: {integrity: sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==} + engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.2 + debug: 4.3.3 minimatch: 3.0.4 transitivePeerDependencies: - supports-color dev: true - /@humanwhocodes/object-schema/1.2.1: - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + /@humanwhocodes/object-schema/1.2.0: + resolution: {integrity: sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==} dev: true /@humanwhocodes/object-schema/1.2.1: @@ -1423,8 +1428,8 @@ packages: resolution: {integrity: sha512-xknHThRsPB/To1FUbi6pCe43y58qFC03zfb6R7fDb/FfC7k2R3i1l+izRBJf8DI46KhYGRaF14Eo9A3qbBoixg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@jest/types': 27.2.5 - '@types/node': 12.20.37 + '@jest/types': 27.4.2 + '@types/node': 16.11.13 chalk: 4.1.2 jest-message-util: 27.4.2 jest-util: 27.4.2 @@ -1440,12 +1445,12 @@ packages: node-notifier: optional: true dependencies: - '@jest/console': 27.3.1 - '@jest/reporters': 27.3.1 - '@jest/test-result': 27.3.1 - '@jest/transform': 27.3.1 - '@jest/types': 27.2.5 - '@types/node': 12.20.37 + '@jest/console': 27.4.2 + '@jest/reporters': 27.4.5 + '@jest/test-result': 27.4.2 + '@jest/transform': 27.4.5 + '@jest/types': 27.4.2 + '@types/node': 16.11.13 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.8.1 @@ -1480,22 +1485,22 @@ packages: resolution: {integrity: sha512-q+niMx7cJgt/t/b6dzLOh4W8Ef/8VyKG7hxASK39jakijJzbFBGpptx3RXz13FFV7OishQ9lTbv+dQ5K3EhfDQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@jest/fake-timers': 27.3.1 - '@jest/types': 27.2.5 - '@types/node': 12.20.37 - jest-mock: 27.3.0 + '@jest/fake-timers': 27.4.2 + '@jest/types': 27.4.2 + '@types/node': 16.11.13 + jest-mock: 27.4.2 dev: true /@jest/fake-timers/27.4.2: resolution: {integrity: sha512-f/Xpzn5YQk5adtqBgvw1V6bF8Nx3hY0OIRRpCvWcfPl0EAjdqWPdhH3t/3XpiWZqtjIEHDyMKP9ajpva1l4Zmg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@jest/types': 27.2.5 - '@sinonjs/fake-timers': 8.1.0 - '@types/node': 12.20.37 - jest-message-util: 27.3.1 - jest-mock: 27.3.0 - jest-util: 27.3.1 + '@jest/types': 27.4.2 + '@sinonjs/fake-timers': 8.0.1 + '@types/node': 16.11.13 + jest-message-util: 27.4.2 + jest-mock: 27.4.2 + jest-util: 27.4.2 dev: true /@jest/globals/27.4.4: @@ -1517,11 +1522,11 @@ packages: optional: true dependencies: '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 27.3.1 - '@jest/test-result': 27.3.1 - '@jest/transform': 27.3.1 - '@jest/types': 27.2.5 - '@types/node': 12.20.37 + '@jest/console': 27.4.2 + '@jest/test-result': 27.4.2 + '@jest/transform': 27.4.5 + '@jest/types': 27.4.2 + '@types/node': 16.11.13 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 @@ -1580,8 +1585,8 @@ packages: resolution: {integrity: sha512-PuMet2UlZtlGzwc6L+aZmR3I7CEBpqadO03pU40l2RNY2fFJ191b9/ITB44LNOhVtsyykx0OZvj0PCyuLm7Eew==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@babel/core': 7.16.0 - '@jest/types': 27.2.5 + '@babel/core': 7.15.8 + '@jest/types': 27.4.2 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 convert-source-map: 1.8.0 @@ -1605,7 +1610,7 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.3 '@types/istanbul-reports': 3.0.1 - '@types/node': 12.20.37 + '@types/node': 16.11.13 '@types/yargs': 16.0.4 chalk: 4.1.2 dev: true @@ -1752,7 +1757,6 @@ packages: express: 4.17.1 untildify: 4.0.0 transitivePeerDependencies: - - '@prisma/client' - supports-color dev: true @@ -1810,8 +1814,8 @@ packages: type-detect: 4.0.8 dev: true - /@sinonjs/fake-timers/8.1.0: - resolution: {integrity: sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==} + /@sinonjs/fake-timers/8.0.1: + resolution: {integrity: sha512-AU7kwFxreVd6OAXcAFlKSmZquiRUU0FvYm44k1Y1QbK7Co4m0aqfGMhjykIeQp/H6rcl+nFmj0zfdUcGVs9Dew==} dependencies: '@sinonjs/commons': 1.8.3 dev: true @@ -1826,7 +1830,7 @@ packages: engines: {node: '>= 12.13.0', npm: '>= 6.12.0'} dependencies: '@slack/types': 1.10.0 - '@types/node': 14.17.33 + '@types/node': 16.11.13 axios: 0.21.4 transitivePeerDependencies: - debug @@ -1885,8 +1889,8 @@ packages: /@types/babel__core/7.1.16: resolution: {integrity: sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==} dependencies: - '@babel/parser': 7.16.3 - '@babel/types': 7.16.0 + '@babel/parser': 7.15.8 + '@babel/types': 7.15.6 '@types/babel__generator': 7.6.3 '@types/babel__template': 7.4.1 '@types/babel__traverse': 7.14.2 @@ -1895,20 +1899,20 @@ packages: /@types/babel__generator/7.6.3: resolution: {integrity: sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==} dependencies: - '@babel/types': 7.16.0 + '@babel/types': 7.15.6 dev: true /@types/babel__template/7.4.1: resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} dependencies: - '@babel/parser': 7.16.3 - '@babel/types': 7.16.0 + '@babel/parser': 7.15.8 + '@babel/types': 7.15.6 dev: true /@types/babel__traverse/7.14.2: resolution: {integrity: sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==} dependencies: - '@babel/types': 7.16.0 + '@babel/types': 7.15.6 dev: true /@types/benchmark/2.1.1: @@ -1918,7 +1922,7 @@ packages: /@types/cross-spawn/6.0.2: resolution: {integrity: sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw==} dependencies: - '@types/node': 12.20.37 + '@types/node': 16.11.13 dev: false /@types/debug/4.1.7: @@ -1926,8 +1930,8 @@ packages: dependencies: '@types/ms': 0.7.31 - /@types/eslint/7.29.0: - resolution: {integrity: sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==} + /@types/eslint/7.28.2: + resolution: {integrity: sha512-KubbADPkfoU75KgKeKLsFHXnU4ipH7wYg0TRT33NK3N3yiu7jlFAAoygIWBV+KbuHx/G+AvuGX6DllnK35gfJA==} dependencies: '@types/estree': 0.0.50 '@types/json-schema': 7.0.9 @@ -1940,7 +1944,7 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 16.11.7 + '@types/node': 16.11.6 dev: true /@types/geojson/7946.0.8: @@ -1951,19 +1955,19 @@ packages: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 3.0.5 - '@types/node': 14.17.33 + '@types/node': 16.11.13 dev: true /@types/graceful-fs/4.1.5: resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} dependencies: - '@types/node': 12.20.37 + '@types/node': 16.11.13 dev: true /@types/graphviz/0.0.34: resolution: {integrity: sha512-5pyobgT+/NhwKy/LMLw14xFInvYXBPx4ITc2a5FvZbm6hcudcP73DpTKTlaZbjr8fdNAkaK9KdP8GAEF0iBwlQ==} dependencies: - '@types/node': 14.17.33 + '@types/node': 16.11.13 dev: true /@types/istanbul-lib-coverage/2.0.3: @@ -2008,7 +2012,7 @@ packages: /@types/minipass/3.1.0: resolution: {integrity: sha512-b2yPKwCrB8x9SB65kcCistMoe3wrYnxxt5rJSZ1kprw0uOXvhuKi9kTQ746Y+Pbqoh+9C0N4zt0ztmTnG9yg7A==} dependencies: - '@types/node': 12.20.37 + '@types/node': 16.11.15 dev: true /@types/ms/0.7.31: @@ -2017,14 +2021,14 @@ packages: /@types/mssql/6.0.8: resolution: {integrity: sha512-N3dr3o1c6EXhHhhNRaKpLTdAoXT/s6qDEJET5FID2gFCj58vIV9q/7RtkvYdE6ntpkJF5F9hpURhxT/oC62yLw==} dependencies: - '@types/node': 12.20.37 + '@types/node': 16.11.13 '@types/tedious': 4.0.5 dev: true /@types/node-fetch/2.5.12: resolution: {integrity: sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==} dependencies: - '@types/node': 14.17.33 + '@types/node': 16.11.13 form-data: 3.0.1 dev: true @@ -2032,8 +2036,17 @@ packages: resolution: {integrity: sha512-yxDeaQIAJlMav7fH5AQqPH1u8YIuhYJXYBzxaQ4PifsU0GDO38MSdmEDeRlIxrKbC6NbEaaEHDanWb+y30U8SQ==} dev: true - /@types/node/12.20.37: - resolution: {integrity: sha512-i1KGxqcvJaLQali+WuypQnXwcplhtNtjs66eNsZpp2P2FL/trJJxx/VWsM0YCL2iMoIJrbXje48lvIQAQ4p2ZA==} + /@types/node/12.20.38: + resolution: {integrity: sha512-NxmtBRGipjx1B225OeMdI+CQmLbYqvvmYbukDTJGDgzIDgPQ1EcjGmYxGhOk5hTBqeB558S6RgHSpq2iiqifAQ==} + dev: true + + /@types/node/14.18.2: + resolution: {integrity: sha512-fqtSN5xn/bBzDxMT77C1rJg6CsH/R49E7qsGuvdPJa20HtV5zSTuLJPNfnlyVH3wauKnkHdLggTVkOW/xP9oQg==} + dev: true + + /@types/node/16.11.11: + resolution: {integrity: sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw==} + dev: true /@types/node/16.11.13: resolution: {integrity: sha512-eUXZzHLHoZqj1frtUetNkUetYoJ6X55UmrVnFD4DMhVeAmwLjniZhtBmsRiemQh4uq4G3vUra/Ws/hs9vEvL3Q==} @@ -2042,8 +2055,8 @@ packages: resolution: {integrity: sha512-LMGR7iUjwZRxoYnfc9+YELxwqkaLmkJlo4/HUvOMyGvw9DaHO0gtAbH2FUdoFE6PXBTYZIT7x610r7kdo8o1fQ==} dev: true - /@types/node/16.11.7: - resolution: {integrity: sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw==} + /@types/node/16.11.6: + resolution: {integrity: sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==} dev: true /@types/node/16.6.2: @@ -2060,25 +2073,25 @@ packages: /@types/pg/8.6.3: resolution: {integrity: sha512-P0RrXJcw1hPS+KF0nBCC3FEEdZBfRsHbYtAzbY2QTc0gC4jFQvjQxIKXs0X/NgPhPI4DbAzdeW7WMCjaWjT7Pg==} dependencies: - '@types/node': 12.20.37 + '@types/node': 16.11.13 pg-protocol: 1.5.0 pg-types: 2.2.0 dev: true - /@types/prettier/2.4.2: - resolution: {integrity: sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA==} + /@types/prettier/2.4.1: + resolution: {integrity: sha512-Fo79ojj3vdEZOHg3wR9ksAMRz4P3S5fDB5e/YWZiFnyFQI1WY2Vftu9XoXVVtJfxB7Bpce/QTqWSSntkz2Znrw==} dev: true /@types/prompts/2.0.14: resolution: {integrity: sha512-HZBd99fKxRWpYCErtm2/yxUZv6/PBI9J7N4TNFffl5JbrYMHBwF25DjQGTW3b3jmXq+9P6/8fCIb2ee57BFfYA==} dependencies: - '@types/node': 12.20.37 + '@types/node': 16.11.15 dev: true /@types/redis/2.8.32: resolution: {integrity: sha512-7jkMKxcGq9p242exlbsVzuJb57KqHRhNl4dHoQu2Y5v9bCAbtIXXH0R3HleSQW4CTOqpHIYUW3t6tpUj4BVQ+w==} dependencies: - '@types/node': 14.17.33 + '@types/node': 16.11.13 dev: true /@types/resolve/1.20.1: @@ -2092,7 +2105,7 @@ packages: resolution: {integrity: sha512-F3OznnSLAUxFrCEu/L5PY8+ny8DtcFRjx7fZZ9bycvXRi3KPTRS9HOitGZwvPg0juRhXFWIeKX58cnX5YqLohQ==} dependencies: '@types/glob': 7.2.0 - '@types/node': 16.11.7 + '@types/node': 16.11.6 dev: true /@types/shell-quote/1.7.1: @@ -2102,7 +2115,7 @@ packages: /@types/sqlite3/3.1.8: resolution: {integrity: sha512-sQMt/qnyUWnqiTcJXm5ZfNPIBeJ/DVvJDwxw+0tAxPJvadzfiP1QhryO1JOR6t1yfb8NpzQb/Rud06mob5laIA==} dependencies: - '@types/node': 12.20.37 + '@types/node': 16.11.13 dev: true /@types/stack-utils/2.0.1: @@ -2112,32 +2125,32 @@ packages: /@types/stoppable/1.1.1: resolution: {integrity: sha512-b8N+fCADRIYYrGZOcmOR8ZNBOqhktWTB/bMUl5LvGtT201QKJZOOH5UsFyI3qtteM6ZAJbJqZoBcLqqxKIwjhw==} dependencies: - '@types/node': 14.17.33 + '@types/node': 16.11.13 dev: true /@types/tar/6.1.1: resolution: {integrity: sha512-8mto3YZfVpqB1CHMaYz1TUYIQfZFbh/QbEq5Hsn6D0ilCfqRVCdalmc89B7vi3jhl9UYIk+dWDABShNfOkv5HA==} dependencies: '@types/minipass': 3.1.0 - '@types/node': 12.20.37 + '@types/node': 16.11.15 dev: true /@types/tedious/4.0.5: resolution: {integrity: sha512-zlnChTP63Bds6kMBuKOR+qJPB9wcYf1zVm78qiXTnT1gbcU6wdTmSp28cd2BPxePy4mrGM6TnQG1fmHxQW1pZw==} dependencies: - '@types/node': 14.17.33 + '@types/node': 16.11.13 dev: true /@types/tunnel/0.0.3: resolution: {integrity: sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA==} dependencies: - '@types/node': 14.17.33 + '@types/node': 16.11.13 dev: true /@types/ws/8.2.2: resolution: {integrity: sha512-NOn5eIcgWLOo6qW8AcuLZ7G8PycXu0xTxxkS6Q18VWFxgPUSOwV0pBj2a/4viNZVu25i7RIB7GttdkAIUUXOOg==} dependencies: - '@types/node': 16.11.7 + '@types/node': 16.11.11 dev: true /@types/yargs-parser/20.2.1: @@ -2167,7 +2180,7 @@ packages: debug: 4.3.2 eslint: 8.3.0 functional-red-black-tree: 1.0.1 - ignore: 5.1.9 + ignore: 5.1.8 regexpp: 3.2.0 semver: 7.3.5 tsutils: 3.21.0_typescript@4.4.4 @@ -2220,7 +2233,7 @@ packages: - typescript dev: true - /@typescript-eslint/experimental-utils/5.4.0_eslint@7.32.0+typescript@4.4.4: + /@typescript-eslint/experimental-utils/5.4.0_eslint@8.5.0+typescript@4.5.4: resolution: {integrity: sha512-Nz2JDIQUdmIGd6p33A+naQmwfkU5KVTLb/5lTk+tLVTDacZKoGQisj8UCxk7onJcrgjIvr8xWqkYI+DbI3TfXg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2229,8 +2242,8 @@ packages: '@types/json-schema': 7.0.9 '@typescript-eslint/scope-manager': 5.4.0 '@typescript-eslint/types': 5.4.0 - '@typescript-eslint/typescript-estree': 5.4.0_typescript@4.4.4 - eslint: 7.32.0 + '@typescript-eslint/typescript-estree': 5.4.0_typescript@4.5.4 + eslint: 8.5.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@8.5.0 transitivePeerDependencies: @@ -2304,12 +2317,12 @@ packages: '@typescript-eslint/visitor-keys': 5.4.0 dev: true - /@typescript-eslint/scope-manager/5.4.0: - resolution: {integrity: sha512-pRxFjYwoi8R+n+sibjgF9iUiAELU9ihPBtHzocyW8v8D8G8KeQvXTsW7+CBYIyTYsmhtNk50QPGLE3vrvhM5KA==} + /@typescript-eslint/scope-manager/5.8.0: + resolution: {integrity: sha512-x82CYJsLOjPCDuFFEbS6e7K1QEWj7u5Wk1alw8A+gnJiYwNnDJk0ib6PCegbaPMjrfBvFKa7SxE3EOnnIQz2Gg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.4.0 - '@typescript-eslint/visitor-keys': 5.4.0 + '@typescript-eslint/types': 5.8.0 + '@typescript-eslint/visitor-keys': 5.8.0 dev: true /@typescript-eslint/types/5.4.0: @@ -2317,8 +2330,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types/5.4.0: - resolution: {integrity: sha512-GjXNpmn+n1LvnttarX+sPD6+S7giO+9LxDIGlRl4wK3a7qMWALOHYuVSZpPTfEIklYjaWuMtfKdeByx0AcaThA==} + /@typescript-eslint/types/5.8.0: + resolution: {integrity: sha512-LdCYOqeqZWqCMOmwFnum6YfW9F3nKuxJiR84CdIRN5nfHJ7gyvGpXWqL/AaW0k3Po0+wm93ARAsOdzlZDPCcXg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -2343,7 +2356,7 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree/5.4.0_typescript@4.4.4: + /@typescript-eslint/typescript-estree/5.4.0_typescript@4.5.4: resolution: {integrity: sha512-nhlNoBdhKuwiLMx6GrybPT3SFILm5Gij2YBdPEPFlYNFAXUJWX6QRgvi/lwVoadaQEFsizohs6aFRMqsXI2ewA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2393,11 +2406,11 @@ packages: eslint-visitor-keys: 3.1.0 dev: true - /@typescript-eslint/visitor-keys/5.4.0: - resolution: {integrity: sha512-PVbax7MeE7tdLfW5SA0fs8NGVVr+buMPrcj+CWYWPXsZCH8qZ1THufDzbXm1xrZ2b2PA1iENJ0sRq5fuUtvsJg==} + /@typescript-eslint/visitor-keys/5.8.0: + resolution: {integrity: sha512-+HDIGOEMnqbxdAHegxvnOqESUH6RWFRR2b8qxP1W9CZnnYh4Usz6MBL+2KMAgPk/P0o9c1HqnYtwzVH6GTIqug==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.4.0 + '@typescript-eslint/types': 5.8.0 eslint-visitor-keys: 3.1.0 dev: true @@ -2425,7 +2438,7 @@ packages: resolution: {integrity: sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==} engines: {node: '>= 0.6'} dependencies: - mime-types: 2.1.34 + mime-types: 2.1.33 negotiator: 0.6.2 dev: true @@ -2512,15 +2525,6 @@ packages: uri-js: 4.4.1 dev: true - /ajv/8.8.0: - resolution: {integrity: sha512-L+cJ/+pkdICMueKR6wIx3VP2fjIx3yAhuvadUv/osv9yFD7OVZy442xFF+Oeu3ZvmhBGQzoF6mTSt+LUWBmGQg==} - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - dev: true - /ansi-colors/4.1.1: resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} engines: {node: '>=6'} @@ -2601,7 +2605,7 @@ packages: engines: {node: '>= 10'} dependencies: archiver-utils: 2.1.0 - async: 3.2.2 + async: 3.2.1 buffer-crc32: 0.2.13 readable-stream: 3.6.0 readdir-glob: 1.1.1 @@ -2646,8 +2650,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /asn1/0.2.6: - resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + /asn1/0.2.4: + resolution: {integrity: sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==} dependencies: safer-buffer: 2.1.2 dev: true @@ -2668,8 +2672,8 @@ packages: lodash: 4.17.21 dev: true - /async/3.2.2: - resolution: {integrity: sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g==} + /async/3.2.1: + resolution: {integrity: sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg==} dev: false /asynckit/0.4.0: @@ -2694,7 +2698,7 @@ packages: /axios/0.21.4: resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} dependencies: - follow-redirects: 1.14.5 + follow-redirects: 1.14.4 transitivePeerDependencies: - debug dev: true @@ -2702,23 +2706,23 @@ packages: /axios/0.21.4_debug@4.3.2: resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} dependencies: - follow-redirects: 1.14.5_debug@4.3.2 + follow-redirects: 1.14.4_debug@4.3.2 transitivePeerDependencies: - debug dev: true - /babel-jest/27.3.1_@babel+core@7.16.0: - resolution: {integrity: sha512-SjIF8hh/ir0peae2D6S6ZKRhUy7q/DnpH7k/V6fT4Bgs/LXXUztOpX4G2tCgq8mLo5HA9mN6NmlFMeYtKmIsTQ==} + /babel-jest/27.4.5_@babel+core@7.15.8: + resolution: {integrity: sha512-3uuUTjXbgtODmSv/DXO9nZfD52IyC2OYTFaXGRzL0kpykzroaquCrD5+lZNafTvZlnNqZHt5pb0M08qVBZnsnA==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: - '@babel/core': 7.16.0 - '@jest/transform': 27.3.1 - '@jest/types': 27.2.5 + '@babel/core': 7.15.8 + '@jest/transform': 27.4.5 + '@jest/types': 27.4.2 '@types/babel__core': 7.1.16 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 27.2.0_@babel+core@7.16.0 + babel-preset-jest: 27.4.0_@babel+core@7.15.8 chalk: 4.1.2 graceful-fs: 4.2.8 slash: 3.0.0 @@ -2733,7 +2737,7 @@ packages: '@babel/helper-plugin-utils': 7.14.5 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 5.1.0 + istanbul-lib-instrument: 5.0.4 test-exclude: 6.0.0 transitivePeerDependencies: - supports-color @@ -2743,41 +2747,41 @@ packages: resolution: {integrity: sha512-Jcu7qS4OX5kTWBc45Hz7BMmgXuJqRnhatqpUhnzGC3OBYpOmf2tv6jFNwZpwM7wU7MUuv2r9IPS/ZlYOuburVw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@babel/template': 7.16.0 - '@babel/types': 7.16.0 + '@babel/template': 7.15.4 + '@babel/types': 7.15.6 '@types/babel__core': 7.1.16 '@types/babel__traverse': 7.14.2 dev: true - /babel-preset-current-node-syntax/1.0.1_@babel+core@7.16.0: + /babel-preset-current-node-syntax/1.0.1_@babel+core@7.15.8: resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.16.0 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.16.0 - '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.16.0 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.16.0 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.16.0 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.16.0 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.16.0 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.16.0 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.16.0 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.16.0 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.16.0 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.16.0 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.16.0 - dev: true - - /babel-preset-jest/27.2.0_@babel+core@7.16.0: - resolution: {integrity: sha512-z7MgQ3peBwN5L5aCqBKnF6iqdlvZvFUQynEhu0J+X9nHLU72jO3iY331lcYrg+AssJ8q7xsv5/3AICzVmJ/wvg==} + '@babel/core': 7.15.8 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.15.8 + '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.15.8 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.15.8 + '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.15.8 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.15.8 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.15.8 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.15.8 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.15.8 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.15.8 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.15.8 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.15.8 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.15.8 + dev: true + + /babel-preset-jest/27.4.0_@babel+core@7.15.8: + resolution: {integrity: sha512-NK4jGYpnBvNxcGo7/ZpZJr51jCGT+3bwwpVIDY2oNfTxJJldRtB4VAcYdgp1loDE50ODuTu+yBjpMAswv5tlpg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.16.0 - babel-plugin-jest-hoist: 27.2.0 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.16.0 + '@babel/core': 7.15.8 + babel-plugin-jest-hoist: 27.4.0 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.15.8 dev: true /balanced-match/1.0.2: @@ -2865,13 +2869,13 @@ packages: resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} dev: true - /browserslist/4.18.1: - resolution: {integrity: sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==} + /browserslist/4.17.5: + resolution: {integrity: sha512-I3ekeB92mmpctWBoLXe0d5wPS2cBuRvvW0JyyJHMrk9/HmP2ZjrTboNAZ8iuGqaEIlKguljbQY32OkOJIRrgoA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001280 - electron-to-chromium: 1.3.896 + caniuse-lite: 1.0.30001271 + electron-to-chromium: 1.3.880 escalade: 3.1.1 node-releases: 2.0.1 picocolors: 1.0.0 @@ -2951,13 +2955,13 @@ packages: engines: {node: '>=6'} dev: true - /camelcase/6.2.1: - resolution: {integrity: sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==} + /camelcase/6.2.0: + resolution: {integrity: sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==} engines: {node: '>=10'} dev: true - /caniuse-lite/1.0.30001280: - resolution: {integrity: sha512-kFXwYvHe5rix25uwueBxC569o53J6TpnGu0BEEn+6Lhl2vsnAumRFWEBhDft1fwyo6m1r4i+RqA4+163FpeFcA==} + /caniuse-lite/1.0.30001271: + resolution: {integrity: sha512-BBruZFWmt3HFdVPS8kceTBIguKxu4f99n5JNp06OlPD/luoAMIaIK5ieV5YjnBLH3Nysai9sxj9rpJj4ZisXOA==} dev: true /caseless/0.12.0: @@ -3486,8 +3490,8 @@ packages: resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=} dev: true - /electron-to-chromium/1.3.896: - resolution: {integrity: sha512-NcGkBVXePiuUrPLV8IxP43n1EOtdg+dudVjrfVEUd/bOqpQUFZ2diL5PPYzbgEhZFEltdXV3AcyKwGnEQ5lhMA==} + /electron-to-chromium/1.3.880: + resolution: {integrity: sha512-iwIP/6WoeSimzUKJIQtjtpVDsK8Ir8qQCMXsUBwg+rxJR2Uh3wTNSbxoYRfs+3UWx/9MAnPIxVZCyWkm8MT0uw==} dev: true /emittery/0.8.1: @@ -3948,7 +3952,7 @@ packages: resolution: {integrity: sha512-IsUTtGxF1hrH6lMWiSl1WbGaiP01eT6kzywdY1U+zLc0MP+nwEnUiS9UI8IaOTUhTeQJLlCEWIbXINBH4YJbBQ==} engines: {node: '>=10'} dependencies: - '@types/eslint': 7.29.0 + '@types/eslint': 7.28.2 ansi-escapes: 4.3.2 chalk: 4.1.2 eslint-rule-docs: 1.1.231 @@ -3965,8 +3969,8 @@ packages: eslint: '>=4.19.1' dependencies: escape-string-regexp: 1.0.5 - eslint: 7.32.0 - ignore: 5.1.9 + eslint: 8.3.0 + ignore: 5.1.8 dev: true /eslint-plugin-eslint-comments/3.2.0_eslint@8.5.0: @@ -4015,10 +4019,10 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 4.33.0_cc617358c89d3f38c52462f6d809db4c - '@typescript-eslint/experimental-utils': 5.4.0_eslint@7.32.0+typescript@4.4.4 - eslint: 7.32.0 - jest: 27.3.1_ts-node@10.4.0 + '@typescript-eslint/eslint-plugin': 5.4.0_8fbd82ef37e23da98dfca9805cf945cd + '@typescript-eslint/experimental-utils': 5.4.0_eslint@8.3.0+typescript@4.4.4 + eslint: 8.3.0 + jest: 27.4.5_ts-node@10.4.0 transitivePeerDependencies: - supports-color - typescript @@ -4037,14 +4041,31 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 4.33.0_cc617358c89d3f38c52462f6d809db4c - '@typescript-eslint/experimental-utils': 5.4.0_eslint@7.32.0+typescript@4.4.4 - eslint: 7.32.0 + '@typescript-eslint/eslint-plugin': 5.4.0_8fbd82ef37e23da98dfca9805cf945cd + '@typescript-eslint/experimental-utils': 5.4.0_eslint@8.3.0+typescript@4.4.4 + eslint: 8.3.0 transitivePeerDependencies: - supports-color - typescript dev: true + /eslint-plugin-prettier/4.0.0_6c1acfc8d9d3a8dba99beef4e8bcebae: + resolution: {integrity: sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==} + engines: {node: '>=6.0.0'} + peerDependencies: + eslint: '>=7.28.0' + eslint-config-prettier: '*' + prettier: '>=2.0.0' + peerDependenciesMeta: + eslint-config-prettier: + optional: true + dependencies: + eslint: 8.3.0 + eslint-config-prettier: 8.3.0_eslint@8.3.0 + prettier: 2.4.1 + prettier-linter-helpers: 1.0.0 + dev: true + /eslint-plugin-prettier/4.0.0_94e1b6d3ce6ea916847122712570e9ae: resolution: {integrity: sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==} engines: {node: '>=6.0.0'} @@ -4153,7 +4174,6 @@ packages: semver: 7.3.5 strip-ansi: 6.0.1 strip-json-comments: 3.1.1 - table: 6.7.3 text-table: 0.2.0 v8-compile-cache: 2.3.0 transitivePeerDependencies: @@ -4368,8 +4388,8 @@ packages: dev: true optional: true - /extsprintf/1.4.1: - resolution: {integrity: sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==} + /extsprintf/1.4.0: + resolution: {integrity: sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=} engines: {'0': node >=0.6.0} dev: true @@ -4472,7 +4492,7 @@ packages: resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.2.4 + flatted: 3.2.2 rimraf: 3.0.2 dev: true @@ -4480,12 +4500,12 @@ packages: resolution: {integrity: sha512-ZfmD5MnU7GglUEhiky9C7yEPaNq1/wh36RDohe+Xr3nJVdccwHbdTkFIYvetcdsoAckUKT51fuf44g7Ni5Doyg==} dev: true - /flatted/3.2.4: - resolution: {integrity: sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==} + /flatted/3.2.2: + resolution: {integrity: sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==} dev: true - /follow-redirects/1.14.5: - resolution: {integrity: sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA==} + /follow-redirects/1.14.4: + resolution: {integrity: sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -4494,8 +4514,8 @@ packages: optional: true dev: true - /follow-redirects/1.14.5_debug@4.3.2: - resolution: {integrity: sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA==} + /follow-redirects/1.14.4_debug@4.3.2: + resolution: {integrity: sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -4521,7 +4541,7 @@ packages: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 - mime-types: 2.1.34 + mime-types: 2.1.33 dev: true optional: true @@ -4531,7 +4551,7 @@ packages: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 - mime-types: 2.1.34 + mime-types: 2.1.33 dev: true /form-data/3.0.1: @@ -4540,7 +4560,7 @@ packages: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 - mime-types: 2.1.34 + mime-types: 2.1.33 dev: true /form-data/4.0.0: @@ -4549,7 +4569,7 @@ packages: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 - mime-types: 2.1.34 + mime-types: 2.1.33 dev: true /forwarded/0.2.0: @@ -4753,7 +4773,7 @@ packages: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.2.7 - ignore: 5.1.9 + ignore: 5.1.8 merge2: 1.4.1 slash: 3.0.0 @@ -4960,8 +4980,8 @@ packages: engines: {node: '>= 4'} dev: true - /ignore/5.1.9: - resolution: {integrity: sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==} + /ignore/5.1.8: + resolution: {integrity: sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==} engines: {node: '>= 4'} /import-fresh/3.3.0: @@ -5276,7 +5296,7 @@ packages: resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.16.0 + '@babel/core': 7.15.8 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.0 @@ -5284,12 +5304,12 @@ packages: - supports-color dev: true - /istanbul-lib-instrument/5.1.0: - resolution: {integrity: sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==} + /istanbul-lib-instrument/5.0.4: + resolution: {integrity: sha512-W6jJF9rLGEISGoCyXRqa/JCGQGmmxPO10TMu7izaUTynxvBvTjqzAIIGCK9USBmIbQAaSWD6XJPrM9Pv5INknw==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.16.0 - '@babel/parser': 7.16.3 + '@babel/core': 7.15.8 + '@babel/parser': 7.15.8 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.0 @@ -5338,10 +5358,10 @@ packages: resolution: {integrity: sha512-eTNWa9wsvBwPykhMMShheafbwyakcdHZaEYh5iRrQ0PFJxkDP/e3U/FvzGuKWu2WpwUA3C3hPlfpuzvOdTVqnw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@jest/environment': 27.3.1 - '@jest/test-result': 27.3.1 - '@jest/types': 27.2.5 - '@types/node': 12.20.37 + '@jest/environment': 27.4.4 + '@jest/test-result': 27.4.2 + '@jest/types': 27.4.2 + '@types/node': 16.11.13 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 @@ -5400,10 +5420,10 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.16.0 - '@jest/test-sequencer': 27.3.1 - '@jest/types': 27.2.5 - babel-jest: 27.3.1_@babel+core@7.16.0 + '@babel/core': 7.15.8 + '@jest/test-sequencer': 27.4.5 + '@jest/types': 27.4.2 + babel-jest: 27.4.5_@babel+core@7.15.8 chalk: 4.1.2 ci-info: 3.2.0 deepmerge: 4.2.2 @@ -5472,12 +5492,12 @@ packages: resolution: {integrity: sha512-cYR3ndNfHBqQgFvS1RL7dNqSvD//K56j/q1s2ygNHcfTCAp12zfIromO1w3COmXrxS8hWAh7+CmZmGCIoqGcGA==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@jest/environment': 27.3.1 - '@jest/fake-timers': 27.3.1 - '@jest/types': 27.2.5 - '@types/node': 12.20.37 - jest-mock: 27.3.0 - jest-util: 27.3.1 + '@jest/environment': 27.4.4 + '@jest/fake-timers': 27.4.2 + '@jest/types': 27.4.2 + '@types/node': 16.11.13 + jest-mock: 27.4.2 + jest-util: 27.4.2 jsdom: 16.7.0 transitivePeerDependencies: - bufferutil @@ -5490,12 +5510,12 @@ packages: resolution: {integrity: sha512-D+v3lbJ2GjQTQR23TK0kY3vFVmSeea05giInI41HHOaJnAwOnmUHTZgUaZL+VxUB43pIzoa7PMwWtCVlIUoVoA==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@jest/environment': 27.3.1 - '@jest/fake-timers': 27.3.1 - '@jest/types': 27.2.5 - '@types/node': 12.20.37 - jest-mock: 27.3.0 - jest-util: 27.3.1 + '@jest/environment': 27.4.4 + '@jest/fake-timers': 27.4.2 + '@jest/types': 27.4.2 + '@types/node': 16.11.13 + jest-mock: 27.4.2 + jest-util: 27.4.2 dev: true /jest-get-type/27.3.1: @@ -5514,7 +5534,7 @@ packages: dependencies: '@jest/types': 27.4.2 '@types/graceful-fs': 4.1.5 - '@types/node': 12.20.37 + '@types/node': 16.11.13 anymatch: 3.1.2 fb-watchman: 2.0.1 graceful-fs: 4.2.8 @@ -5532,12 +5552,12 @@ packages: resolution: {integrity: sha512-oUnvwhJDj2LhOiUB1kdnJjkx8C5PwgUZQb9urF77mELH9DGR4e2GqpWQKBOYXWs5+uTN9BGDqRz3Aeg5Wts7aw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@babel/traverse': 7.16.3 - '@jest/environment': 27.3.1 - '@jest/source-map': 27.0.6 - '@jest/test-result': 27.3.1 - '@jest/types': 27.2.5 - '@types/node': 12.20.37 + '@babel/traverse': 7.15.4 + '@jest/environment': 27.4.4 + '@jest/source-map': 27.4.0 + '@jest/test-result': 27.4.2 + '@jest/types': 27.4.2 + '@types/node': 16.11.13 chalk: 4.1.2 co: 4.6.0 expect: 27.4.2 @@ -5576,8 +5596,8 @@ packages: resolution: {integrity: sha512-OMRqRNd9E0DkBLZpFtZkAGYOXl6ZpoMtQJWTAREJKDOFa0M6ptB7L67tp+cszMBkvSgKOhNtQp2Vbcz3ZZKo/w==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@babel/code-frame': 7.16.0 - '@jest/types': 27.2.5 + '@babel/code-frame': 7.15.8 + '@jest/types': 27.4.2 '@types/stack-utils': 2.0.1 chalk: 4.1.2 graceful-fs: 4.2.8 @@ -5591,8 +5611,8 @@ packages: resolution: {integrity: sha512-PDDPuyhoukk20JrQKeofK12hqtSka7mWH0QQuxSNgrdiPsrnYYLS6wbzu/HDlxZRzji5ylLRULeuI/vmZZDrYA==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@jest/types': 27.2.5 - '@types/node': 12.20.37 + '@jest/types': 27.4.2 + '@types/node': 16.11.13 dev: true /jest-pnp-resolver/1.2.2_jest-resolve@27.4.5: @@ -5643,12 +5663,12 @@ packages: resolution: {integrity: sha512-/irauncTfmY1WkTaRQGRWcyQLzK1g98GYG/8QvIPviHgO1Fqz1JYeEIsSfF+9mc/UTA6S+IIHFgKyvUrtiBIZg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@jest/console': 27.3.1 - '@jest/environment': 27.3.1 - '@jest/test-result': 27.3.1 - '@jest/transform': 27.3.1 - '@jest/types': 27.2.5 - '@types/node': 12.20.37 + '@jest/console': 27.4.2 + '@jest/environment': 27.4.4 + '@jest/test-result': 27.4.2 + '@jest/transform': 27.4.5 + '@jest/types': 27.4.2 + '@types/node': 16.11.13 chalk: 4.1.2 emittery: 0.8.1 exit: 0.1.2 @@ -5710,7 +5730,7 @@ packages: resolution: {integrity: sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@types/node': 12.20.37 + '@types/node': 16.11.13 graceful-fs: 4.2.8 dev: true @@ -5718,17 +5738,17 @@ packages: resolution: {integrity: sha512-eCi/iM1YJFrJWiT9de4+RpWWWBqsHiYxFG9V9o/n0WXs6GpW4lUt4FAHAgFPTLPqCUVzrMQmSmTZSgQzwqR7IQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@babel/core': 7.16.0 - '@babel/generator': 7.16.0 - '@babel/parser': 7.16.3 - '@babel/plugin-syntax-typescript': 7.16.0_@babel+core@7.16.0 - '@babel/traverse': 7.16.3 - '@babel/types': 7.16.0 - '@jest/transform': 27.3.1 - '@jest/types': 27.2.5 + '@babel/core': 7.15.8 + '@babel/generator': 7.15.8 + '@babel/parser': 7.15.8 + '@babel/plugin-syntax-typescript': 7.14.5_@babel+core@7.15.8 + '@babel/traverse': 7.15.4 + '@babel/types': 7.15.6 + '@jest/transform': 27.4.5 + '@jest/types': 27.4.2 '@types/babel__traverse': 7.14.2 - '@types/prettier': 2.4.2 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.16.0 + '@types/prettier': 2.4.1 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.15.8 chalk: 4.1.2 expect: 27.4.2 graceful-fs: 4.2.8 @@ -5750,8 +5770,8 @@ packages: resolution: {integrity: sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@jest/types': 27.2.5 - '@types/node': 12.20.37 + '@jest/types': 27.4.2 + '@types/node': 16.11.13 chalk: 4.1.2 ci-info: 3.2.0 graceful-fs: 4.2.8 @@ -5762,8 +5782,8 @@ packages: resolution: {integrity: sha512-hWYsSUej+Fs8ZhOm5vhWzwSLmVaPAxRy+Mr+z5MzeaHm9AxUpXdoVMEW4R86y5gOobVfBsMFLk4Rb+QkiEpx1A==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@jest/types': 27.2.5 - camelcase: 6.2.1 + '@jest/types': 27.4.2 + camelcase: 6.2.0 chalk: 4.1.2 jest-get-type: 27.4.0 leven: 3.1.0 @@ -5774,9 +5794,9 @@ packages: resolution: {integrity: sha512-NJvMVyyBeXfDezhWzUOCOYZrUmkSCiatpjpm+nFUid74OZEHk6aMLrZAukIiFDwdbqp6mTM6Ui1w4oc+8EobQg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@jest/test-result': 27.3.1 - '@jest/types': 27.2.5 - '@types/node': 12.20.37 + '@jest/test-result': 27.4.2 + '@jest/types': 27.4.2 + '@types/node': 16.11.13 ansi-escapes: 4.3.2 chalk: 4.1.2 jest-util: 27.4.2 @@ -5787,7 +5807,7 @@ packages: resolution: {integrity: sha512-f2s8kEdy15cv9r7q4KkzGXvlY0JTcmCbMHZBfSQDwW77REr45IDWwd0lksDFeVHH2jJ5pqb90T77XscrjeGzzg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 12.20.37 + '@types/node': 16.11.13 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -6076,7 +6096,7 @@ packages: cosmiconfig: 7.0.1 debug: 4.3.2_supports-color@9.0.2 execa: 5.1.1 - listr2: 3.13.3_enquirer@2.3.6 + listr2: 3.13.3 micromatch: 4.0.4 normalize-path: 3.0.0 object-inspect: 1.11.0 @@ -6124,8 +6144,8 @@ packages: wrap-ansi: 7.0.0 dev: true - /listr2/3.13.3_enquirer@2.3.6: - resolution: {integrity: sha512-VqAgN+XVfyaEjSaFewGPcDs5/3hBbWVaX1VgWv2f52MF7US45JuARlArULctiB44IIcEk3JF7GtoFCLqEdeuPA==} + /listr2/3.13.5: + resolution: {integrity: sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA==} engines: {node: '>=10.0.0'} peerDependencies: enquirer: '>= 2.3.0 < 3' @@ -6135,7 +6155,6 @@ packages: dependencies: cli-truncate: 2.1.0 colorette: 2.0.16 - enquirer: 2.3.6 log-update: 4.0.0 p-map: 4.0.0 rfdc: 1.3.0 @@ -6305,7 +6324,7 @@ packages: denque: 1.5.1 iconv-lite: 0.6.3 long: 4.0.0 - moment-timezone: 0.5.34 + moment-timezone: 0.5.33 please-upgrade-node: 3.2.0 dev: true @@ -6355,16 +6374,16 @@ packages: braces: 3.0.2 picomatch: 2.3.0 - /mime-db/1.51.0: - resolution: {integrity: sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==} + /mime-db/1.50.0: + resolution: {integrity: sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==} engines: {node: '>= 0.6'} dev: true - /mime-types/2.1.34: - resolution: {integrity: sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==} + /mime-types/2.1.33: + resolution: {integrity: sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==} engines: {node: '>= 0.6'} dependencies: - mime-db: 1.51.0 + mime-db: 1.50.0 dev: true /mime/1.6.0: @@ -6454,8 +6473,8 @@ packages: resolution: {integrity: sha512-tukRdb9Beu27t6dN+XztSRHq9J0B/CoAOySGzHfn8UTfmqipA5yNT/sDUEyYdAV3Hpka6Wx6kOMxuObdOex60Q==} dev: true - /moment-timezone/0.5.34: - resolution: {integrity: sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==} + /moment-timezone/0.5.33: + resolution: {integrity: sha512-PTc2vcT8K9J5/9rDEPe5czSIKgLoGsH8UNpA4qZTVw0Vd/Uz19geE9abbIOQKaAQFcnQ3v5YEXrbSc5BpshH+w==} dependencies: moment: 2.29.1 dev: true @@ -6478,8 +6497,8 @@ packages: /ms/2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - /msal/1.4.15: - resolution: {integrity: sha512-H/CxkeZJ4laEK6GZ/cDKQoYjBTvDNFK3hDC8mfU8IkuZvKFfFdo9KM89r8spXY7xnBK9SQBAjIuQgwUogeUw7g==} + /msal/1.4.14: + resolution: {integrity: sha512-k8M5+/jbfSQoCf7CyQzBP5HE5mY8TkBujykLGTEp2x0MvOK/FQsfUTNis28zlvvPVzhgrhb5GQiGM8rRpXyHdA==} engines: {node: '>=0.8.0'} dependencies: tslib: 1.14.1 @@ -6551,6 +6570,13 @@ packages: resolution: {integrity: sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==} engines: {node: 4.x || >=6.0.0} + /node-fetch/2.6.5: + resolution: {integrity: sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==} + engines: {node: 4.x || >=6.0.0} + dependencies: + whatwg-url: 5.0.0 + dev: true + /node-fetch/2.6.6: resolution: {integrity: sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==} engines: {node: 4.x || >=6.0.0} @@ -6866,7 +6892,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.16.0 + '@babel/code-frame': 7.15.8 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.1.6 @@ -7344,7 +7370,7 @@ packages: is-typedarray: 1.0.0 isstream: 0.1.2 json-stringify-safe: 5.0.1 - mime-types: 2.1.34 + mime-types: 2.1.33 oauth-sign: 0.9.0 performance-now: 2.1.0 qs: 6.5.2 @@ -7638,7 +7664,7 @@ packages: resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.11 + spdx-license-ids: 3.0.10 /spdx-exceptions/2.3.0: resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} @@ -7647,14 +7673,10 @@ packages: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.11 + spdx-license-ids: 3.0.10 /spdx-license-ids/3.0.10: resolution: {integrity: sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==} - dev: true - - /spdx-license-ids/3.0.11: - resolution: {integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==} /spdx-license-ids/3.0.11: resolution: {integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==} @@ -7703,7 +7725,7 @@ packages: engines: {node: '>=0.10.0'} hasBin: true dependencies: - asn1: 0.2.6 + asn1: 0.2.4 assert-plus: 1.0.0 bcrypt-pbkdf: 1.0.2 dashdash: 1.14.1 @@ -7898,17 +7920,6 @@ packages: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} dev: true - /table/6.7.3: - resolution: {integrity: sha512-5DkIxeA7XERBqMwJq0aHZOdMadBx4e6eDoFRuyT5VR82J0Ycg2DwM6GfA/EQAhJ+toRTaS1lIdSQCqgrmhPnlw==} - engines: {node: '>=10.0.0'} - dependencies: - ajv: 8.8.0 - lodash.truncate: 4.4.2 - slice-ansi: 4.0.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: true - /tar-fs/2.1.1: resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} dependencies: @@ -8382,7 +8393,7 @@ packages: engines: {node: '>= 0.6'} dependencies: media-typer: 0.3.0 - mime-types: 2.1.34 + mime-types: 2.1.33 dev: true /typedarray-to-buffer/3.1.5: @@ -8516,7 +8527,7 @@ packages: dependencies: assert-plus: 1.0.0 core-util-is: 1.0.2 - extsprintf: 1.3.0 + extsprintf: 1.4.0 dev: true optional: true @@ -8526,7 +8537,7 @@ packages: dependencies: assert-plus: 1.0.0 core-util-is: 1.0.2 - extsprintf: 1.4.1 + extsprintf: 1.4.0 dev: true /w3c-hr-time/1.0.2: From 92a33348260adef16e767ccc62c052f015467b1d Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Mills Date: Wed, 22 Dec 2021 13:51:58 +0100 Subject: [PATCH 17/25] fix(client): bundle wasm --- packages/client/helpers/build.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/client/helpers/build.ts b/packages/client/helpers/build.ts index 42d83be90f49..08e8d3299f8a 100644 --- a/packages/client/helpers/build.ts +++ b/packages/client/helpers/build.ts @@ -12,16 +12,16 @@ const inlineUndiciWasm = replaceWithPlugin([ /(await WebAssembly\.compile\().*?'(.*?)'\)\)\)/g, async (regex, contents) => { for (const match of contents.matchAll(regex)) { - const engineCoreDir = resolve.sync('@prisma/engine-core') - const undiciPackage = resolve.sync('undici/package.json', { basedir: engineCoreDir }) - const lhttpWasmPath = path.join(path.dirname(undiciPackage), 'lib', match[2]) - const wasmContents = (await fs.promises.readFile(lhttpWasmPath)).toString('base64') - const inlineWasm = `${match[1]}(Buffer.from("${wasmContents}", "base64")))` + if (match[2].includes('simd') === false) { + // we only bundle the wasm files that are not simd compiled + const engineCoreDir = resolve.sync('@prisma/engine-core') + const undiciPackage = resolve.sync('undici/package.json', { basedir: engineCoreDir }) + const lhttpWasmPath = path.join(path.dirname(undiciPackage), 'lib', match[2]) + const wasmContents = (await fs.promises.readFile(lhttpWasmPath)).toString('base64') + const inlineWasm = `${match[1]}(Buffer.from("${wasmContents}", "base64")))` - const test = await WebAssembly.compile(await fs.promises.readFile(lhttpWasmPath)) - - - // contents = contents.replace(match[0], inlineWasm) + contents = contents.replace(match[0], inlineWasm) + } } return contents From 42aa8305f38162a84147cfa8b1fad8f1f5655fcd Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Mills Date: Wed, 22 Dec 2021 13:56:44 +0100 Subject: [PATCH 18/25] fix(cli): remove wasm copy --- packages/cli/helpers/build.ts | 6 ------ 1 file changed, 6 deletions(-) diff --git a/packages/cli/helpers/build.ts b/packages/cli/helpers/build.ts index 9de2752a9af3..e3df243d487a 100644 --- a/packages/cli/helpers/build.ts +++ b/packages/cli/helpers/build.ts @@ -52,12 +52,6 @@ const cliLifecyclePlugin: esbuild.Plugin = { overwrite: true, }) - // we copy the lhttp runtime from prisma-client to build - await copy(path.join(__dirname, '../prisma-client/runtime/llhttp'), './build/llhttp', { - recursive: true, - overwrite: true, - }) - // we copy the contents from checkpoint-client to build await copyFile( path.join(require.resolve('checkpoint-client/package.json'), '../dist/child.js'), From 4dd5fb0f6d9765e97d61c5576fe1ac0de5c14636 Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Mills Date: Wed, 22 Dec 2021 15:55:07 +0100 Subject: [PATCH 19/25] chore(engine-core): bump undici --- packages/engine-core/package.json | 2 +- pnpm-lock.yaml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/engine-core/package.json b/packages/engine-core/package.json index a5a29c775934..6892f755d091 100644 --- a/packages/engine-core/package.json +++ b/packages/engine-core/package.json @@ -59,7 +59,7 @@ "new-github-issue-url": "0.2.1", "p-retry": "4.6.1", "terminal-link": "2.1.1", - "undici": "4.10.0" + "undici": "4.12.1" }, "files": [ "README.md", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5ee538ec8444..c220a3bfad52 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -404,7 +404,7 @@ importers: terminal-link: 2.1.1 ts-jest: 27.1.2 typescript: 4.4.4 - undici: 4.10.0 + undici: 4.12.1 dependencies: '@prisma/debug': link:../debug '@prisma/engines': 3.8.0-5.4f46a9eae52ebe9bc7c675c3e6ba65a4b614eeab @@ -417,7 +417,7 @@ importers: new-github-issue-url: 0.2.1 p-retry: 4.6.1 terminal-link: 2.1.1 - undici: 4.10.0 + undici: 4.12.1 devDependencies: '@types/jest': 27.0.3 '@types/node': 16.6.2 @@ -8427,8 +8427,8 @@ packages: resolution: {integrity: sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==} dev: true - /undici/4.10.0: - resolution: {integrity: sha512-W7NwyQzfiSYIZ+maOvz/u9tPFyAYhstF9XhtohK7txvD1jg41oatcHVq6Zls81LhzGvh4BN5WpQGuMiT4IipoA==} + /undici/4.12.1: + resolution: {integrity: sha512-MSfap7YiQJqTPP12C11PFRs9raZuVicDbwsZHTjB0a8+SsCqt7KdUis54f373yf7ZFhJzAkGJLaKm0202OIxHg==} engines: {node: '>=12.18'} dev: false From a811b018bfab20e4cc6c50406d1ef97acab13d70 Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Mills Date: Wed, 22 Dec 2021 16:11:07 +0100 Subject: [PATCH 20/25] chore: cleanup --- helpers/compile/depcheck.ts | 10 +++------- helpers/compile/plugins/replaceWithPlugin.ts | 7 +++---- packages/client/helpers/build.ts | 2 +- packages/client/package.json | 1 - pnpm-lock.yaml | 2 -- 5 files changed, 7 insertions(+), 15 deletions(-) diff --git a/helpers/compile/depcheck.ts b/helpers/compile/depcheck.ts index 8d4f60364dc8..904907f59db7 100644 --- a/helpers/compile/depcheck.ts +++ b/helpers/compile/depcheck.ts @@ -1,4 +1,5 @@ import * as esbuild from 'esbuild' +import { builtinModules } from 'module' import glob from 'globby' import path from 'path' @@ -37,11 +38,6 @@ const unusedIgnore = [ // packages that aren't missing but are detected const missingIgnore = ['.prisma', '@prisma/client'] -// native nodejs imports so that we can filter out -const nativeDependencies = new Set( - Object.keys((process as any).binding('natives')), -) - /** * Checks for unused and missing dependencies */ @@ -79,12 +75,12 @@ const unusedPlugin: esbuild.Plugin = { build.onEnd(() => { // we take all the dependencies that aren't collected and are native const unusedDependencies = [...dependencies].filter((dep) => { - return !collectedDependencies.has(dep) || nativeDependencies.has(dep) + return !collectedDependencies.has(dep) || builtinModules.includes(dep) }) // we take all the collected deps that aren't deps and aren't native const missingDependencies = [...collectedDependencies].filter((dep) => { - return !dependencies.has(dep) && !nativeDependencies.has(dep) + return !dependencies.has(dep) && !builtinModules.includes(dep) }) // we exclude the deps that match our unusedIgnore patterns diff --git a/helpers/compile/plugins/replaceWithPlugin.ts b/helpers/compile/plugins/replaceWithPlugin.ts index b54e18cd3184..13f4937ad729 100644 --- a/helpers/compile/plugins/replaceWithPlugin.ts +++ b/helpers/compile/plugins/replaceWithPlugin.ts @@ -1,3 +1,4 @@ +import { builtinModules } from 'module' import type * as esbuild from 'esbuild' import fs from 'fs' @@ -15,9 +16,6 @@ async function applyReplacements(contents: string, replacements: Replacement[]) return contents } -// native nodejs imports so that we can filter out -const nativeDependencies = new Set(Object.keys((process as any).binding('natives'))) - /** * Replace the contents of a file with the given replacements. * @param replacements @@ -28,7 +26,8 @@ export const replaceWithPlugin = (replacements: Replacement[]): esbuild.Plugin = name: 'replaceWithPlugin', setup(build) { build.onLoad({ filter: /.*/ }, async (args) => { - if (nativeDependencies.has(args.path)) return {} + // we skip, don't attempt to edit files that aren't js + if (builtinModules.includes(args.path)) return {} if (!/.*?(.js|.mjs)$/.exec(args.path)) return {} const contents = await fs.promises.readFile(args.path, 'utf8') diff --git a/packages/client/helpers/build.ts b/packages/client/helpers/build.ts index 08e8d3299f8a..44c0afa53cf1 100644 --- a/packages/client/helpers/build.ts +++ b/packages/client/helpers/build.ts @@ -13,7 +13,7 @@ const inlineUndiciWasm = replaceWithPlugin([ async (regex, contents) => { for (const match of contents.matchAll(regex)) { if (match[2].includes('simd') === false) { - // we only bundle the wasm files that are not simd compiled + // we only bundle lhttp wasm files that are not simd compiled const engineCoreDir = resolve.sync('@prisma/engine-core') const undiciPackage = resolve.sync('undici/package.json', { basedir: engineCoreDir }) const lhttpWasmPath = path.join(path.dirname(undiciPackage), 'lib', match[2]) diff --git a/packages/client/package.json b/packages/client/package.json index 1b2a0a881e11..509780043bdf 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -94,7 +94,6 @@ "eslint-plugin-prettier": "4.0.0", "execa": "5.1.1", "flat-map-polyfill": "0.3.8", - "fs-extra": "10.0.0", "fs-monkey": "1.0.3", "get-own-enumerable-property-symbols": "3.0.2", "indent-string": "4.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c220a3bfad52..279b9aea6e3c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -240,7 +240,6 @@ importers: eslint-plugin-prettier: 4.0.0 execa: 5.1.1 flat-map-polyfill: 0.3.8 - fs-extra: 10.0.0 fs-monkey: 1.0.3 get-own-enumerable-property-symbols: 3.0.2 indent-string: 4.0.0 @@ -303,7 +302,6 @@ importers: eslint-plugin-prettier: 4.0.0_6c1acfc8d9d3a8dba99beef4e8bcebae execa: 5.1.1 flat-map-polyfill: 0.3.8 - fs-extra: 10.0.0 fs-monkey: 1.0.3 get-own-enumerable-property-symbols: 3.0.2 indent-string: 4.0.0 From c2a8ed8d73ec33bdd7cb30e49984bab64f0d43f5 Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Mills Date: Wed, 23 Mar 2022 11:11:44 +0100 Subject: [PATCH 21/25] fix(client): unlazify undici --- packages/client/helpers/build.ts | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/packages/client/helpers/build.ts b/packages/client/helpers/build.ts index 198bbd82b550..57ebadb2693a 100644 --- a/packages/client/helpers/build.ts +++ b/packages/client/helpers/build.ts @@ -30,6 +30,29 @@ const inlineUndiciWasm = replaceWithPlugin([ ], ]) +const unlazifyUndici = replaceWithPlugin([ + [ + /(let llhttpPromise = )(lazyllhttp\(\))/g, + (regex, contents) => { + for (const match of contents.matchAll(regex)) { + contents = contents.replace(match[0], `${match[1]}() => ${match[2]}`) + } + + return contents + }, + ], + [ + /(llhttpInstance = )(await llhttpPromise)/g, + (regex, contents) => { + for (const match of contents.matchAll(regex)) { + contents = contents.replace(match[0], `${match[1]}${match[2]}()`) + } + + return contents + }, + ], +]) + // we define the config for runtime const runtimeBuildConfig: BuildOptions = { entryPoints: ['src/runtime/index.ts'], @@ -40,7 +63,7 @@ const runtimeBuildConfig: BuildOptions = { // that fixes an issue with lz-string umd builds 'define.amd': 'false', }, - plugins: [], + plugins: [unlazifyUndici], } // we define the config for browser From 347dd06bd28f3d8bb95d0245bc870f30c463fc28 Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Mills Date: Wed, 23 Mar 2022 11:48:33 +0100 Subject: [PATCH 22/25] fix(client): defer undici loading --- .../engine-core/src/binary/BinaryEngine.ts | 16 +++++----- packages/engine-core/src/binary/Connection.ts | 29 +++++++++++-------- 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/packages/engine-core/src/binary/BinaryEngine.ts b/packages/engine-core/src/binary/BinaryEngine.ts index b0537240d03b..3ff1d6f72444 100644 --- a/packages/engine-core/src/binary/BinaryEngine.ts +++ b/packages/engine-core/src/binary/BinaryEngine.ts @@ -618,14 +618,14 @@ ${chalk.dim("In case we're mistaken, please report this to us 🙏.")}`) } }) - this.child.on('exit', (code): void => { + this.child.on('exit', async (code) => { logger('removing startPromise') this.startPromise = undefined if (this.engineStopDeferred) { this.engineStopDeferred.resolve(code) return } - this.connection.close() + await this.connection.close() // don't error in restarts if (code !== 0 && this.engineStartDeferred && this.startCount === 1) { @@ -681,8 +681,8 @@ You very likely have the wrong "binaryTarget" defined in the schema.prisma file. reject(err) }) - this.child.on('close', (code, signal): void => { - this.connection.close() + this.child.on('close', async (code, signal) => { + await this.connection.close() if (code === null && signal === 'SIGABRT' && this.child) { const error = new PrismaClientRustPanicError( this.getErrorMessageWithLink('Panic in Query Engine with SIGABRT signal'), @@ -780,7 +780,7 @@ You very likely have the wrong "binaryTarget" defined in the schema.prisma file. stopChildPromise = new Promise((resolve, reject) => { this.engineStopDeferred = { resolve, reject } }) - this.connection.close() + await this.connection.close() this.child?.kill() this.child = undefined } @@ -792,11 +792,11 @@ You very likely have the wrong "binaryTarget" defined in the schema.prisma file. this.engineStopDeferred = undefined } - kill(signal: string): void { + async kill(signal: string) { this.getConfigPromise = undefined this.globalKillSignalReceived = signal this.child?.kill() - this.connection.close() + await this.connection.close() } /** @@ -1100,7 +1100,7 @@ function hookProcess(handler: string, exit = false) { process.once(handler as any, async () => { for (const engine of engines) { await engine.emitExit() - engine.kill(handler) + await engine.kill(handler) } engines.splice(0, engines.length) diff --git a/packages/engine-core/src/binary/Connection.ts b/packages/engine-core/src/binary/Connection.ts index aba9f06edbfa..4ff2819ec3b9 100644 --- a/packages/engine-core/src/binary/Connection.ts +++ b/packages/engine-core/src/binary/Connection.ts @@ -1,6 +1,5 @@ import getStream from 'get-stream' -import type { Dispatcher } from 'undici' -import { Pool } from 'undici' +import type { Dispatcher, Pool } from 'undici' import type { URL } from 'url' export type Result = { @@ -9,6 +8,8 @@ export type Result = { data: R } +const undici = () => import('undici') + /** * Assertion function to make sure that we have a pool * @param pool @@ -23,7 +24,7 @@ function assertHasPool(pool: A): asserts pool is NonNullable { * Open an HTTP connection pool */ export class Connection { - private _pool: Pool | undefined + private _pool: Promise | undefined constructor() {} @@ -53,12 +54,14 @@ export class Connection { open(url: string | URL, options?: Pool.Options) { if (this._pool) return - this._pool = new Pool(url, { - connections: 1000, - keepAliveMaxTimeout: 600e3, - headersTimeout: 0, - bodyTimeout: 0, - ...options, + this._pool = undici().then((undici) => { + return new undici.Pool(url, { + connections: 1000, + keepAliveMaxTimeout: 600e3, + headersTimeout: 0, + bodyTimeout: 0, + ...options, + }) }) } @@ -78,7 +81,8 @@ export class Connection { ) { assertHasPool(this._pool) - const response = await this._pool.request({ + const pool = await this._pool + const response = await pool.request({ path: endpoint, method: method, headers: { @@ -126,9 +130,10 @@ export class Connection { /** * Close the connections */ - close() { + async close() { if (this._pool) { - this._pool.close(() => { + const pool = await this._pool + pool.close(() => { // ignore close errors }) } From fcc6f067ad90a92ee3b2f2adf0c795bfcc29386c Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Mills Date: Wed, 23 Mar 2022 11:59:55 +0100 Subject: [PATCH 23/25] fix(client): load unidici with require --- .../engine-core/src/binary/BinaryEngine.ts | 16 ++++++------ packages/engine-core/src/binary/Connection.ts | 26 ++++++++----------- 2 files changed, 19 insertions(+), 23 deletions(-) diff --git a/packages/engine-core/src/binary/BinaryEngine.ts b/packages/engine-core/src/binary/BinaryEngine.ts index 3ff1d6f72444..b0537240d03b 100644 --- a/packages/engine-core/src/binary/BinaryEngine.ts +++ b/packages/engine-core/src/binary/BinaryEngine.ts @@ -618,14 +618,14 @@ ${chalk.dim("In case we're mistaken, please report this to us 🙏.")}`) } }) - this.child.on('exit', async (code) => { + this.child.on('exit', (code): void => { logger('removing startPromise') this.startPromise = undefined if (this.engineStopDeferred) { this.engineStopDeferred.resolve(code) return } - await this.connection.close() + this.connection.close() // don't error in restarts if (code !== 0 && this.engineStartDeferred && this.startCount === 1) { @@ -681,8 +681,8 @@ You very likely have the wrong "binaryTarget" defined in the schema.prisma file. reject(err) }) - this.child.on('close', async (code, signal) => { - await this.connection.close() + this.child.on('close', (code, signal): void => { + this.connection.close() if (code === null && signal === 'SIGABRT' && this.child) { const error = new PrismaClientRustPanicError( this.getErrorMessageWithLink('Panic in Query Engine with SIGABRT signal'), @@ -780,7 +780,7 @@ You very likely have the wrong "binaryTarget" defined in the schema.prisma file. stopChildPromise = new Promise((resolve, reject) => { this.engineStopDeferred = { resolve, reject } }) - await this.connection.close() + this.connection.close() this.child?.kill() this.child = undefined } @@ -792,11 +792,11 @@ You very likely have the wrong "binaryTarget" defined in the schema.prisma file. this.engineStopDeferred = undefined } - async kill(signal: string) { + kill(signal: string): void { this.getConfigPromise = undefined this.globalKillSignalReceived = signal this.child?.kill() - await this.connection.close() + this.connection.close() } /** @@ -1100,7 +1100,7 @@ function hookProcess(handler: string, exit = false) { process.once(handler as any, async () => { for (const engine of engines) { await engine.emitExit() - await engine.kill(handler) + engine.kill(handler) } engines.splice(0, engines.length) diff --git a/packages/engine-core/src/binary/Connection.ts b/packages/engine-core/src/binary/Connection.ts index 4ff2819ec3b9..40784e062d40 100644 --- a/packages/engine-core/src/binary/Connection.ts +++ b/packages/engine-core/src/binary/Connection.ts @@ -8,7 +8,7 @@ export type Result = { data: R } -const undici = () => import('undici') +const undici = () => require('undici') /** * Assertion function to make sure that we have a pool @@ -24,7 +24,7 @@ function assertHasPool(pool: A): asserts pool is NonNullable { * Open an HTTP connection pool */ export class Connection { - private _pool: Promise | undefined + private _pool: Pool | undefined constructor() {} @@ -54,14 +54,12 @@ export class Connection { open(url: string | URL, options?: Pool.Options) { if (this._pool) return - this._pool = undici().then((undici) => { - return new undici.Pool(url, { - connections: 1000, - keepAliveMaxTimeout: 600e3, - headersTimeout: 0, - bodyTimeout: 0, - ...options, - }) + this._pool = new (undici().Pool)(url, { + connections: 1000, + keepAliveMaxTimeout: 600e3, + headersTimeout: 0, + bodyTimeout: 0, + ...options, }) } @@ -81,8 +79,7 @@ export class Connection { ) { assertHasPool(this._pool) - const pool = await this._pool - const response = await pool.request({ + const response = await this._pool.request({ path: endpoint, method: method, headers: { @@ -130,10 +127,9 @@ export class Connection { /** * Close the connections */ - async close() { + close() { if (this._pool) { - const pool = await this._pool - pool.close(() => { + this._pool.close(() => { // ignore close errors }) } From 6b860b381af845e916adbc9fc4cd4b008553219c Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Mills Date: Wed, 23 Mar 2022 12:28:31 +0100 Subject: [PATCH 24/25] chore(client): cleanup --- helpers/compile/plugins/replaceWithPlugin.ts | 25 ++++++++++ packages/client/helpers/build.ts | 49 -------------------- 2 files changed, 25 insertions(+), 49 deletions(-) diff --git a/helpers/compile/plugins/replaceWithPlugin.ts b/helpers/compile/plugins/replaceWithPlugin.ts index 2904f78feb35..1f49cfcee4aa 100644 --- a/helpers/compile/plugins/replaceWithPlugin.ts +++ b/helpers/compile/plugins/replaceWithPlugin.ts @@ -37,3 +37,28 @@ export const replaceWithPlugin = (replacements: Replacement[]): esbuild.Plugin = }, } } + +/** + * Example + */ +// const inlineUndiciWasm = replaceWithPlugin([ +// [ +// /(await WebAssembly\.compile\().*?'(.*?)'\)\)\)/g, +// async (regex, contents) => { +// for (const match of contents.matchAll(regex)) { +// if (match[2].includes('simd') === false) { +// // we only bundle lhttp wasm files that are not simd compiled +// const engineCoreDir = resolve.sync('@prisma/engine-core') +// const undiciPackage = resolve.sync('undici/package.json', { basedir: engineCoreDir }) +// const lhttpWasmPath = path.join(path.dirname(undiciPackage), 'lib', match[2]) +// const wasmContents = (await fs.promises.readFile(lhttpWasmPath)).toString('base64') +// const inlineWasm = `${match[1]}(Buffer.from("${wasmContents}", "base64")))` + +// contents = contents.replace(match[0], inlineWasm) +// } +// } + +// return contents +// }, +// ], +// ]) diff --git a/packages/client/helpers/build.ts b/packages/client/helpers/build.ts index 57ebadb2693a..347ea0d30a68 100644 --- a/packages/client/helpers/build.ts +++ b/packages/client/helpers/build.ts @@ -1,57 +1,9 @@ import { Extractor, ExtractorConfig } from '@microsoft/api-extractor' -import fs from 'fs' import path from 'path' -import resolve from 'resolve' import type { BuildOptions } from '../../../helpers/compile/build' import { build } from '../../../helpers/compile/build' import { fillPlugin } from '../../../helpers/compile/plugins/fill-plugin/fillPlugin' -import { replaceWithPlugin } from '../../../helpers/compile/plugins/replaceWithPlugin' - -const inlineUndiciWasm = replaceWithPlugin([ - [ - /(await WebAssembly\.compile\().*?'(.*?)'\)\)\)/g, - async (regex, contents) => { - for (const match of contents.matchAll(regex)) { - if (match[2].includes('simd') === false) { - // we only bundle lhttp wasm files that are not simd compiled - const engineCoreDir = resolve.sync('@prisma/engine-core') - const undiciPackage = resolve.sync('undici/package.json', { basedir: engineCoreDir }) - const lhttpWasmPath = path.join(path.dirname(undiciPackage), 'lib', match[2]) - const wasmContents = (await fs.promises.readFile(lhttpWasmPath)).toString('base64') - const inlineWasm = `${match[1]}(Buffer.from("${wasmContents}", "base64")))` - - contents = contents.replace(match[0], inlineWasm) - } - } - - return contents - }, - ], -]) - -const unlazifyUndici = replaceWithPlugin([ - [ - /(let llhttpPromise = )(lazyllhttp\(\))/g, - (regex, contents) => { - for (const match of contents.matchAll(regex)) { - contents = contents.replace(match[0], `${match[1]}() => ${match[2]}`) - } - - return contents - }, - ], - [ - /(llhttpInstance = )(await llhttpPromise)/g, - (regex, contents) => { - for (const match of contents.matchAll(regex)) { - contents = contents.replace(match[0], `${match[1]}${match[2]}()`) - } - - return contents - }, - ], -]) // we define the config for runtime const runtimeBuildConfig: BuildOptions = { @@ -63,7 +15,6 @@ const runtimeBuildConfig: BuildOptions = { // that fixes an issue with lz-string umd builds 'define.amd': 'false', }, - plugins: [unlazifyUndici], } // we define the config for browser From 6c82dc03d6e86441e55098e0702f24117191924b Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Mills Date: Wed, 23 Mar 2022 12:32:20 +0100 Subject: [PATCH 25/25] docs(client): add comment --- packages/engine-core/src/binary/Connection.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/engine-core/src/binary/Connection.ts b/packages/engine-core/src/binary/Connection.ts index 40784e062d40..5ca40acc586b 100644 --- a/packages/engine-core/src/binary/Connection.ts +++ b/packages/engine-core/src/binary/Connection.ts @@ -8,6 +8,8 @@ export type Result = { data: R } +// because undici lazily loads llhttp wasm which bloats the memory +// TODO: hopefully replace with `import` but that causes segfaults const undici = () => require('undici') /**