From 65f49145c5161b1d69527171167c95b3877f48d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joe=CC=88l?= Date: Mon, 16 Aug 2021 11:54:10 +0200 Subject: [PATCH 01/14] chore(cli): add deprecation message for introspect command Renamed to `prisma db pull` --- CONTRIBUTING.md | 6 ------ packages/cli/src/CLI.ts | 10 ++++++++++ packages/cli/src/bin.ts | 3 +++ packages/migrate/src/commands/DbCommand.ts | 1 - 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9d9882a36415..093983eab470 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -226,12 +226,6 @@ Changes to `query.ts` will then be reflected when running `fixtures/blog/main.ts 1. `cd packages/migrate/fixtures/blog` 1. `ts-node ../../src/bin.ts dev` -### Developing `prisma init` Command - -1. `cd packages/introspection` -1. `mkdir test && cd test` -1. `ts-node ../src/bin.ts` - ### Developing `prisma` CLI 1. `cd packages/cli` diff --git a/packages/cli/src/CLI.ts b/packages/cli/src/CLI.ts index 1c8070728de0..bb4d2ed3ddab 100644 --- a/packages/cli/src/CLI.ts +++ b/packages/cli/src/CLI.ts @@ -7,6 +7,7 @@ import { format, HelpError, unknownCommand, + logger, } from '@prisma/sdk' import { Version } from './Version' import { link } from '@prisma/sdk' @@ -59,7 +60,16 @@ export class CLI implements Command { 'prisma migrate', )}`, ) + } else if (cmdName === 'introspect') { + logger.warn( + `${chalk.underline( + 'prisma introspect', + )} command is deprecated. It has been renamed to ${chalk.green( + 'prisma db pull', + )}`, + ) } + const cmd = this.cmds[cmdName] if (cmd) { // if we have that subcommand, let's ensure that the binary is there in case the command needs it diff --git a/packages/cli/src/bin.ts b/packages/cli/src/bin.ts index 1b0a924451e1..0e8323864f6d 100755 --- a/packages/cli/src/bin.ts +++ b/packages/cli/src/bin.ts @@ -143,6 +143,9 @@ async function main(): Promise { // drop: DbDrop.new(), seed: DbSeed.new(), }), + /** + * @deprecated since version 2.30.0, use `db pull` instead (renamed) + */ introspect: DbPull.new(), dev: Dev.new(), studio: Studio.new(), diff --git a/packages/migrate/src/commands/DbCommand.ts b/packages/migrate/src/commands/DbCommand.ts index 530a63d9e6d7..a26817596e04 100644 --- a/packages/migrate/src/commands/DbCommand.ts +++ b/packages/migrate/src/commands/DbCommand.ts @@ -6,7 +6,6 @@ import { HelpError, isError, unknownCommand, - link, } from '@prisma/sdk' import chalk from 'chalk' From f74b4c04adb574a2e1483d7fd0afc518258a505d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joe=CC=88l?= Date: Mon, 16 Aug 2021 15:45:35 +0200 Subject: [PATCH 02/14] chore(cli): move commands into their own directory --- packages/cli/.gitignore | 2 +- .../Doctor.test.ts} | 4 +- .../Format.test.ts} | 4 +- .../Generate.test.ts} | 2 +- .../{init.test.ts => commands/Init.test.ts} | 8 +- .../Studio.test.ts} | 10 +- .../Version.test.ts} | 2 +- .../__snapshots__/Doctor.test.ts.snap} | 0 .../__snapshots__/Format.test.ts.snap} | 0 .../__snapshots__/Generate.test.ts.snap} | 0 .../__snapshots__/Init.test.ts.snap} | 0 .../__snapshots__/Studio.test.ts.snap} | 0 .../__snapshots__/Version.test.ts.snap} | 0 packages/cli/src/bin.ts | 8 +- packages/cli/src/{ => commands}/CLI.ts | 17 +- packages/cli/src/{ => commands}/Dev.ts | 0 packages/cli/src/{ => commands}/Doctor.ts | 0 packages/cli/src/{ => commands}/Format.ts | 2 +- packages/cli/src/{ => commands}/Generate.ts | 0 packages/cli/src/{ => commands}/Init.ts | 2 +- packages/cli/src/{ => commands}/Studio.ts | 6 +- packages/cli/src/{ => commands}/Telemetry.ts | 0 packages/cli/src/{ => commands}/Validate.ts | 0 packages/cli/src/{ => commands}/Version.ts | 0 packages/cli/src/{ => utils}/detectPrisma1.ts | 0 .../{ => utils}/prompt/utils/deepExtend.ts | 0 .../src/{ => utils}/prompt/utils/helpers.ts | 0 .../{ => utils}/prompt/utils/isDirEmpty.ts | 0 .../cli/src/{ => utils}/prompt/utils/print.ts | 0 .../__snapshots__/sortModels.test.ts.snap | 0 .../templates/__tests__/sortModels.test.ts | 0 .../prompt/utils/templates/sortModels.ts | 0 packages/engine-core/pnpm-lock.yaml | 3747 ----------------- pnpm-lock.yaml | 93 +- 34 files changed, 62 insertions(+), 3845 deletions(-) rename packages/cli/src/__tests__/{doctor.test.ts => commands/Doctor.test.ts} (94%) rename packages/cli/src/__tests__/{format.test.ts => commands/Format.test.ts} (87%) rename packages/cli/src/__tests__/{generate.test.ts => commands/Generate.test.ts} (93%) rename packages/cli/src/__tests__/{init.test.ts => commands/Init.test.ts} (98%) rename packages/cli/src/__tests__/{studio.test.ts => commands/Studio.test.ts} (93%) rename packages/cli/src/__tests__/{version.test.ts => commands/Version.test.ts} (98%) rename packages/cli/src/__tests__/{__snapshots__/doctor.test.ts.snap => commands/__snapshots__/Doctor.test.ts.snap} (100%) rename packages/cli/src/__tests__/{__snapshots__/format.test.ts.snap => commands/__snapshots__/Format.test.ts.snap} (100%) rename packages/cli/src/__tests__/{__snapshots__/generate.test.ts.snap => commands/__snapshots__/Generate.test.ts.snap} (100%) rename packages/cli/src/__tests__/{__snapshots__/init.test.ts.snap => commands/__snapshots__/Init.test.ts.snap} (100%) rename packages/cli/src/__tests__/{__snapshots__/studio.test.ts.snap => commands/__snapshots__/Studio.test.ts.snap} (100%) rename packages/cli/src/__tests__/{__snapshots__/version.test.ts.snap => commands/__snapshots__/Version.test.ts.snap} (100%) rename packages/cli/src/{ => commands}/CLI.ts (92%) rename packages/cli/src/{ => commands}/Dev.ts (100%) rename packages/cli/src/{ => commands}/Doctor.ts (100%) rename packages/cli/src/{ => commands}/Format.ts (98%) rename packages/cli/src/{ => commands}/Generate.ts (100%) rename packages/cli/src/{ => commands}/Init.ts (99%) rename packages/cli/src/{ => commands}/Studio.ts (94%) rename packages/cli/src/{ => commands}/Telemetry.ts (100%) rename packages/cli/src/{ => commands}/Validate.ts (100%) rename packages/cli/src/{ => commands}/Version.ts (100%) rename packages/cli/src/{ => utils}/detectPrisma1.ts (100%) rename packages/cli/src/{ => utils}/prompt/utils/deepExtend.ts (100%) rename packages/cli/src/{ => utils}/prompt/utils/helpers.ts (100%) rename packages/cli/src/{ => utils}/prompt/utils/isDirEmpty.ts (100%) rename packages/cli/src/{ => utils}/prompt/utils/print.ts (100%) rename packages/cli/src/{ => utils}/prompt/utils/templates/__tests__/__snapshots__/sortModels.test.ts.snap (100%) rename packages/cli/src/{ => utils}/prompt/utils/templates/__tests__/sortModels.test.ts (100%) rename packages/cli/src/{ => utils}/prompt/utils/templates/sortModels.ts (100%) delete mode 100644 packages/engine-core/pnpm-lock.yaml diff --git a/packages/cli/.gitignore b/packages/cli/.gitignore index 227b45b57fd1..a6efe083ca99 100644 --- a/packages/cli/.gitignore +++ b/packages/cli/.gitignore @@ -26,4 +26,4 @@ write-test prisma-cli*.tgz pnpm-lock.yaml -/src/__tests__/version-test-engines +version-test-engines diff --git a/packages/cli/src/__tests__/doctor.test.ts b/packages/cli/src/__tests__/commands/Doctor.test.ts similarity index 94% rename from packages/cli/src/__tests__/doctor.test.ts rename to packages/cli/src/__tests__/commands/Doctor.test.ts index ebcc1290b949..5fd9daa15525 100644 --- a/packages/cli/src/__tests__/doctor.test.ts +++ b/packages/cli/src/__tests__/commands/Doctor.test.ts @@ -1,5 +1,5 @@ -import { Doctor } from '../Doctor' -import { consoleContext, Context } from './__helpers__/context' +import { Doctor } from '../../commands/Doctor' +import { consoleContext, Context } from '../__helpers__/context' const ctx = Context.new().add(consoleContext()).assemble() diff --git a/packages/cli/src/__tests__/format.test.ts b/packages/cli/src/__tests__/commands/Format.test.ts similarity index 87% rename from packages/cli/src/__tests__/format.test.ts rename to packages/cli/src/__tests__/commands/Format.test.ts index fe1b07232b1c..71cbe0180de1 100644 --- a/packages/cli/src/__tests__/format.test.ts +++ b/packages/cli/src/__tests__/commands/Format.test.ts @@ -1,6 +1,6 @@ import fs from 'fs-jetpack' -import { Format } from '../Format' -import { Context } from './__helpers__/context' +import { Format } from '../../commands/Format' +import { Context } from '../__helpers__/context' const ctx = Context.new().assemble() diff --git a/packages/cli/src/__tests__/generate.test.ts b/packages/cli/src/__tests__/commands/Generate.test.ts similarity index 93% rename from packages/cli/src/__tests__/generate.test.ts rename to packages/cli/src/__tests__/commands/Generate.test.ts index 513b94841594..4897534f3a6e 100644 --- a/packages/cli/src/__tests__/generate.test.ts +++ b/packages/cli/src/__tests__/commands/Generate.test.ts @@ -1,5 +1,5 @@ import 'ts-node/register' -import { consoleContext, Context } from './__helpers__/context' +import { consoleContext, Context } from '../__helpers__/context' const ctx = Context.new().add(consoleContext()).assemble() diff --git a/packages/cli/src/__tests__/init.test.ts b/packages/cli/src/__tests__/commands/Init.test.ts similarity index 98% rename from packages/cli/src/__tests__/init.test.ts rename to packages/cli/src/__tests__/commands/Init.test.ts index e54f218c2f8b..243a2476e1ce 100644 --- a/packages/cli/src/__tests__/init.test.ts +++ b/packages/cli/src/__tests__/commands/Init.test.ts @@ -1,8 +1,12 @@ import fs from 'fs' import { join } from 'path' import stripAnsi from 'strip-ansi' -import { defaultEnv, defaultGitIgnore, defaultSchema } from '../Init' -import { consoleContext, Context } from './__helpers__/context' +import { + defaultEnv, + defaultGitIgnore, + defaultSchema, +} from '../../commands/Init' +import { consoleContext, Context } from '../__helpers__/context' const ctx = Context.new().add(consoleContext()).assemble() diff --git a/packages/cli/src/__tests__/studio.test.ts b/packages/cli/src/__tests__/commands/Studio.test.ts similarity index 93% rename from packages/cli/src/__tests__/studio.test.ts rename to packages/cli/src/__tests__/commands/Studio.test.ts index 0f2adac784b7..b7012a50cebf 100644 --- a/packages/cli/src/__tests__/studio.test.ts +++ b/packages/cli/src/__tests__/commands/Studio.test.ts @@ -2,7 +2,7 @@ import fs from 'fs' import fetch from 'node-fetch' import path from 'path' import rimraf from 'rimraf' -import { Studio } from '../Studio' +import { Studio } from '../../commands/Studio' const STUDIO_TEST_PORT = 5678 const schemaHash = 'e1b6a1a8d633d83d0cb7db993af86f17' @@ -26,11 +26,11 @@ describe('studio', () => { // Before every test, we'd like to reset the DB. // We do this by duplicating the original SQLite DB file, and using the duplicate as the datasource in our schema rimraf.sync( - path.join(__dirname, './fixtures/studio-test-project/dev_tmp.db'), + path.join(__dirname, '../fixtures/studio-test-project/dev_tmp.db'), ) fs.copyFileSync( - path.join(__dirname, './fixtures/studio-test-project/dev.db'), - path.join(__dirname, './fixtures/studio-test-project/dev_tmp.db'), + path.join(__dirname, '../fixtures/studio-test-project/dev.db'), + path.join(__dirname, '../fixtures/studio-test-project/dev_tmp.db'), ) // Clean up Client generation directory @@ -39,7 +39,7 @@ describe('studio', () => { await studio.parse([ '--schema', - path.join(__dirname, './fixtures/studio-test-project/schema.prisma'), + path.join(__dirname, '../fixtures/studio-test-project/schema.prisma'), '--port', `${STUDIO_TEST_PORT}`, '--browser', diff --git a/packages/cli/src/__tests__/version.test.ts b/packages/cli/src/__tests__/commands/Version.test.ts similarity index 98% rename from packages/cli/src/__tests__/version.test.ts rename to packages/cli/src/__tests__/commands/Version.test.ts index ce639f528b10..b64ea1a856d5 100644 --- a/packages/cli/src/__tests__/version.test.ts +++ b/packages/cli/src/__tests__/commands/Version.test.ts @@ -4,7 +4,7 @@ import { getPlatform } from '@prisma/get-platform' import { engineEnvVarMap } from '@prisma/sdk' import makeDir from 'make-dir' import path from 'path' -import { consoleContext, Context } from './__helpers__/context' +import { consoleContext, Context } from '../__helpers__/context' const ctx = Context.new().add(consoleContext()).assemble() const testIf = (condition: boolean) => (condition ? test : test.skip) diff --git a/packages/cli/src/__tests__/__snapshots__/doctor.test.ts.snap b/packages/cli/src/__tests__/commands/__snapshots__/Doctor.test.ts.snap similarity index 100% rename from packages/cli/src/__tests__/__snapshots__/doctor.test.ts.snap rename to packages/cli/src/__tests__/commands/__snapshots__/Doctor.test.ts.snap diff --git a/packages/cli/src/__tests__/__snapshots__/format.test.ts.snap b/packages/cli/src/__tests__/commands/__snapshots__/Format.test.ts.snap similarity index 100% rename from packages/cli/src/__tests__/__snapshots__/format.test.ts.snap rename to packages/cli/src/__tests__/commands/__snapshots__/Format.test.ts.snap diff --git a/packages/cli/src/__tests__/__snapshots__/generate.test.ts.snap b/packages/cli/src/__tests__/commands/__snapshots__/Generate.test.ts.snap similarity index 100% rename from packages/cli/src/__tests__/__snapshots__/generate.test.ts.snap rename to packages/cli/src/__tests__/commands/__snapshots__/Generate.test.ts.snap diff --git a/packages/cli/src/__tests__/__snapshots__/init.test.ts.snap b/packages/cli/src/__tests__/commands/__snapshots__/Init.test.ts.snap similarity index 100% rename from packages/cli/src/__tests__/__snapshots__/init.test.ts.snap rename to packages/cli/src/__tests__/commands/__snapshots__/Init.test.ts.snap diff --git a/packages/cli/src/__tests__/__snapshots__/studio.test.ts.snap b/packages/cli/src/__tests__/commands/__snapshots__/Studio.test.ts.snap similarity index 100% rename from packages/cli/src/__tests__/__snapshots__/studio.test.ts.snap rename to packages/cli/src/__tests__/commands/__snapshots__/Studio.test.ts.snap diff --git a/packages/cli/src/__tests__/__snapshots__/version.test.ts.snap b/packages/cli/src/__tests__/commands/__snapshots__/Version.test.ts.snap similarity index 100% rename from packages/cli/src/__tests__/__snapshots__/version.test.ts.snap rename to packages/cli/src/__tests__/commands/__snapshots__/Version.test.ts.snap diff --git a/packages/cli/src/bin.ts b/packages/cli/src/bin.ts index 0e8323864f6d..03458ed50780 100755 --- a/packages/cli/src/bin.ts +++ b/packages/cli/src/bin.ts @@ -89,15 +89,15 @@ import { handlePanic, } from '@prisma/migrate' -import { CLI } from './CLI' +import { CLI } from './commands/CLI' import { Init } from './Init' -import { Dev } from './Dev' +import { Dev } from './commands/Dev' import { Version } from './Version' import { Generate } from './Generate' import { isCurrentBinInstalledGlobally } from '@prisma/sdk' import { Validate } from './Validate' import { Format } from './Format' -import { Doctor } from './Doctor' +import { Doctor } from './commands/Doctor' import { Studio } from './Studio' import { Telemetry } from './Telemetry' import { @@ -106,7 +106,7 @@ import { } from './utils/printUpdateMessage' import { enginesVersion } from '@prisma/engines' import path from 'path' -import { detectPrisma1 } from './detectPrisma1' +import { detectPrisma1 } from './utils/detectPrisma1' // because chalk ... if (process.env.NO_COLOR) { diff --git a/packages/cli/src/CLI.ts b/packages/cli/src/commands/CLI.ts similarity index 92% rename from packages/cli/src/CLI.ts rename to packages/cli/src/commands/CLI.ts index bb4d2ed3ddab..413ee22eb582 100644 --- a/packages/cli/src/CLI.ts +++ b/packages/cli/src/commands/CLI.ts @@ -54,20 +54,27 @@ export class CLI implements Command { // check if we have that subcommand const cmdName = args._[0] + // Throw if "lift" if (cmdName === 'lift') { throw new Error( `${chalk.red('prisma lift')} has been renamed to ${chalk.green( 'prisma migrate', )}`, ) - } else if (cmdName === 'introspect') { + } + // warn if "introspect" + else if (cmdName === 'introspect') { + logger.warn('') logger.warn( - `${chalk.underline( - 'prisma introspect', - )} command is deprecated. It has been renamed to ${chalk.green( - 'prisma db pull', + `${chalk.bold( + `${chalk.underline( + 'prisma introspect', + )} command is deprecated. It has been renamed to ${chalk.green( + 'prisma db pull', + )}`, )}`, ) + logger.warn('') } const cmd = this.cmds[cmdName] diff --git a/packages/cli/src/Dev.ts b/packages/cli/src/commands/Dev.ts similarity index 100% rename from packages/cli/src/Dev.ts rename to packages/cli/src/commands/Dev.ts diff --git a/packages/cli/src/Doctor.ts b/packages/cli/src/commands/Doctor.ts similarity index 100% rename from packages/cli/src/Doctor.ts rename to packages/cli/src/commands/Doctor.ts diff --git a/packages/cli/src/Format.ts b/packages/cli/src/commands/Format.ts similarity index 98% rename from packages/cli/src/Format.ts rename to packages/cli/src/commands/Format.ts index 0c4a148aa2e5..d8e1ae5b9793 100644 --- a/packages/cli/src/Format.ts +++ b/packages/cli/src/commands/Format.ts @@ -11,7 +11,7 @@ import chalk from 'chalk' import fs from 'fs' import os from 'os' import path from 'path' -import { formatms } from './utils/formatms' +import { formatms } from '../utils/formatms' /** * $ prisma format diff --git a/packages/cli/src/Generate.ts b/packages/cli/src/commands/Generate.ts similarity index 100% rename from packages/cli/src/Generate.ts rename to packages/cli/src/commands/Generate.ts diff --git a/packages/cli/src/Init.ts b/packages/cli/src/commands/Init.ts similarity index 99% rename from packages/cli/src/Init.ts rename to packages/cli/src/commands/Init.ts index 69ffa207f676..30a297f5860a 100644 --- a/packages/cli/src/Init.ts +++ b/packages/cli/src/commands/Init.ts @@ -15,7 +15,7 @@ import dotenv from 'dotenv' import fs from 'fs' import path from 'path' import { isError } from 'util' -import { printError } from './prompt/utils/print' +import { printError } from '../utils/prompt/utils/print' export const defaultSchema = (provider: ConnectorType = 'postgresql') => { if (provider === 'sqlserver' || provider === 'mongodb') { diff --git a/packages/cli/src/Studio.ts b/packages/cli/src/commands/Studio.ts similarity index 94% rename from packages/cli/src/Studio.ts rename to packages/cli/src/commands/Studio.ts index 7dbf6b267289..a24207e73164 100644 --- a/packages/cli/src/Studio.ts +++ b/packages/cli/src/commands/Studio.ts @@ -13,7 +13,7 @@ import getPort from 'get-port' import open from 'open' import path from 'path' -const packageJson = require('../package.json') // eslint-disable-line @typescript-eslint/no-var-requires +const packageJson = require('../../package.json') // eslint-disable-line @typescript-eslint/no-var-requires export class Studio implements Command { public instance?: StudioServer @@ -109,7 +109,7 @@ ${chalk.bold('Examples')} args['--port'] || (await getPort({ port: getPort.makeRange(5555, 5600) })) const browser = args['--browser'] || process.env.BROWSER - const staticAssetDir = path.resolve(__dirname, '../build/public') + const staticAssetDir = path.resolve(__dirname, '../../build/public') const studio = new StudioServer({ schemaPath, @@ -120,7 +120,7 @@ ${chalk.bold('Examples')} resolve: { '@prisma/client': path.resolve( __dirname, - '../prisma-client/index.js', + '../../prisma-client/index.js', ), '@prisma/engines': require.resolve('@prisma/engines'), }, diff --git a/packages/cli/src/Telemetry.ts b/packages/cli/src/commands/Telemetry.ts similarity index 100% rename from packages/cli/src/Telemetry.ts rename to packages/cli/src/commands/Telemetry.ts diff --git a/packages/cli/src/Validate.ts b/packages/cli/src/commands/Validate.ts similarity index 100% rename from packages/cli/src/Validate.ts rename to packages/cli/src/commands/Validate.ts diff --git a/packages/cli/src/Version.ts b/packages/cli/src/commands/Version.ts similarity index 100% rename from packages/cli/src/Version.ts rename to packages/cli/src/commands/Version.ts diff --git a/packages/cli/src/detectPrisma1.ts b/packages/cli/src/utils/detectPrisma1.ts similarity index 100% rename from packages/cli/src/detectPrisma1.ts rename to packages/cli/src/utils/detectPrisma1.ts diff --git a/packages/cli/src/prompt/utils/deepExtend.ts b/packages/cli/src/utils/prompt/utils/deepExtend.ts similarity index 100% rename from packages/cli/src/prompt/utils/deepExtend.ts rename to packages/cli/src/utils/prompt/utils/deepExtend.ts diff --git a/packages/cli/src/prompt/utils/helpers.ts b/packages/cli/src/utils/prompt/utils/helpers.ts similarity index 100% rename from packages/cli/src/prompt/utils/helpers.ts rename to packages/cli/src/utils/prompt/utils/helpers.ts diff --git a/packages/cli/src/prompt/utils/isDirEmpty.ts b/packages/cli/src/utils/prompt/utils/isDirEmpty.ts similarity index 100% rename from packages/cli/src/prompt/utils/isDirEmpty.ts rename to packages/cli/src/utils/prompt/utils/isDirEmpty.ts diff --git a/packages/cli/src/prompt/utils/print.ts b/packages/cli/src/utils/prompt/utils/print.ts similarity index 100% rename from packages/cli/src/prompt/utils/print.ts rename to packages/cli/src/utils/prompt/utils/print.ts diff --git a/packages/cli/src/prompt/utils/templates/__tests__/__snapshots__/sortModels.test.ts.snap b/packages/cli/src/utils/prompt/utils/templates/__tests__/__snapshots__/sortModels.test.ts.snap similarity index 100% rename from packages/cli/src/prompt/utils/templates/__tests__/__snapshots__/sortModels.test.ts.snap rename to packages/cli/src/utils/prompt/utils/templates/__tests__/__snapshots__/sortModels.test.ts.snap diff --git a/packages/cli/src/prompt/utils/templates/__tests__/sortModels.test.ts b/packages/cli/src/utils/prompt/utils/templates/__tests__/sortModels.test.ts similarity index 100% rename from packages/cli/src/prompt/utils/templates/__tests__/sortModels.test.ts rename to packages/cli/src/utils/prompt/utils/templates/__tests__/sortModels.test.ts diff --git a/packages/cli/src/prompt/utils/templates/sortModels.ts b/packages/cli/src/utils/prompt/utils/templates/sortModels.ts similarity index 100% rename from packages/cli/src/prompt/utils/templates/sortModels.ts rename to packages/cli/src/utils/prompt/utils/templates/sortModels.ts diff --git a/packages/engine-core/pnpm-lock.yaml b/packages/engine-core/pnpm-lock.yaml deleted file mode 100644 index 5e4b9c1e5160..000000000000 --- a/packages/engine-core/pnpm-lock.yaml +++ /dev/null @@ -1,3747 +0,0 @@ -lockfileVersion: 5.3 - -specifiers: - '@prisma/debug': workspace:* - '@prisma/engines': 2.29.0-1.query-engine-lrts-37fb47056c32c040fec460847488dbafbfe2fa00 - '@prisma/generator-helper': workspace:* - '@prisma/get-platform': 2.28.0-15.d616ac2e761de0623c4f0494620b4199161d9019 - '@types/jest': 26.0.24 - '@types/node': 12.20.16 - '@typescript-eslint/eslint-plugin': 4.28.4 - '@typescript-eslint/parser': 4.28.4 - chalk: ^4.0.0 - eslint: 7.31.0 - eslint-config-prettier: 8.3.0 - eslint-plugin-eslint-comments: 3.2.0 - eslint-plugin-jest: 24.4.0 - eslint-plugin-prettier: 3.4.0 - execa: ^5.0.0 - get-stream: ^6.0.0 - indent-string: ^4.0.0 - jest: 27.0.6 - lint-staged: 11.1.0 - new-github-issue-url: ^0.2.1 - p-retry: ^4.2.0 - prettier: 2.3.2 - strip-ansi: 6.0.0 - terminal-link: ^2.1.1 - ts-jest: 27.0.3 - typescript: 4.3.5 - undici: 3.3.6 - -dependencies: - '@prisma/debug': link:../debug - '@prisma/engines': 2.29.0-1.query-engine-lrts-37fb47056c32c040fec460847488dbafbfe2fa00 - '@prisma/generator-helper': link:../generator-helper - '@prisma/get-platform': 2.28.0-15.d616ac2e761de0623c4f0494620b4199161d9019 - chalk: 4.1.1 - execa: 5.0.0 - get-stream: 6.0.1 - indent-string: 4.0.0 - new-github-issue-url: 0.2.1 - p-retry: 4.5.0 - terminal-link: 2.1.1 - undici: 3.3.6 - -devDependencies: - '@types/jest': 26.0.24 - '@types/node': 12.20.16 - '@typescript-eslint/eslint-plugin': 4.28.4_b1648df9f9ba40bdeef3710a5a5af353 - '@typescript-eslint/parser': 4.28.4_eslint@7.31.0+typescript@4.3.5 - eslint: 7.31.0 - eslint-config-prettier: 8.3.0_eslint@7.31.0 - eslint-plugin-eslint-comments: 3.2.0_eslint@7.31.0 - eslint-plugin-jest: 24.4.0_fc5326c9e782cff3be563ae5197052dc - eslint-plugin-prettier: 3.4.0_19f511d6aa08b367b6cb59e8f50291ca - jest: 27.0.6 - lint-staged: 11.1.0 - prettier: 2.3.2 - strip-ansi: 6.0.0 - ts-jest: 27.0.3_jest@27.0.6+typescript@4.3.5 - typescript: 4.3.5 - -packages: - - /@babel/code-frame/7.12.11: - resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} - dependencies: - '@babel/highlight': 7.14.5 - dev: true - - /@babel/code-frame/7.14.5: - resolution: {integrity: sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.14.5 - dev: true - - /@babel/compat-data/7.14.7: - resolution: {integrity: sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/core/7.14.8: - resolution: {integrity: sha512-/AtaeEhT6ErpDhInbXmjHcUQXH0L0TEgscfcxk1qbOvLuKCa5aZT0SOOtDKFY96/CLROwbLSKyFor6idgNaU4Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.14.5 - '@babel/generator': 7.14.8 - '@babel/helper-compilation-targets': 7.14.5_@babel+core@7.14.8 - '@babel/helper-module-transforms': 7.14.8 - '@babel/helpers': 7.14.8 - '@babel/parser': 7.14.8 - '@babel/template': 7.14.5 - '@babel/traverse': 7.14.8 - '@babel/types': 7.14.8 - convert-source-map: 1.8.0 - debug: 4.3.2 - gensync: 1.0.0-beta.2 - json5: 2.2.0 - semver: 6.3.0 - source-map: 0.5.7 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/generator/7.14.8: - resolution: {integrity: sha512-cYDUpvIzhBVnMzRoY1fkSEhK/HmwEVwlyULYgn/tMQYd6Obag3ylCjONle3gdErfXBW61SVTlR9QR7uWlgeIkg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.14.8 - jsesc: 2.5.2 - source-map: 0.5.7 - dev: true - - /@babel/helper-compilation-targets/7.14.5_@babel+core@7.14.8: - resolution: {integrity: sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/compat-data': 7.14.7 - '@babel/core': 7.14.8 - '@babel/helper-validator-option': 7.14.5 - browserslist: 4.16.6 - semver: 6.3.0 - dev: true - - /@babel/helper-function-name/7.14.5: - resolution: {integrity: sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-get-function-arity': 7.14.5 - '@babel/template': 7.14.5 - '@babel/types': 7.14.8 - dev: true - - /@babel/helper-get-function-arity/7.14.5: - resolution: {integrity: sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.14.8 - dev: true - - /@babel/helper-hoist-variables/7.14.5: - resolution: {integrity: sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.14.8 - dev: true - - /@babel/helper-member-expression-to-functions/7.14.7: - resolution: {integrity: sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.14.8 - dev: true - - /@babel/helper-module-imports/7.14.5: - resolution: {integrity: sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.14.8 - dev: true - - /@babel/helper-module-transforms/7.14.8: - resolution: {integrity: sha512-RyE+NFOjXn5A9YU1dkpeBaduagTlZ0+fccnIcAGbv1KGUlReBj7utF7oEth8IdIBQPcux0DDgW5MFBH2xu9KcA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-module-imports': 7.14.5 - '@babel/helper-replace-supers': 7.14.5 - '@babel/helper-simple-access': 7.14.8 - '@babel/helper-split-export-declaration': 7.14.5 - '@babel/helper-validator-identifier': 7.14.8 - '@babel/template': 7.14.5 - '@babel/traverse': 7.14.8 - '@babel/types': 7.14.8 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/helper-optimise-call-expression/7.14.5: - resolution: {integrity: sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.14.8 - dev: true - - /@babel/helper-plugin-utils/7.14.5: - resolution: {integrity: sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-replace-supers/7.14.5: - resolution: {integrity: sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-member-expression-to-functions': 7.14.7 - '@babel/helper-optimise-call-expression': 7.14.5 - '@babel/traverse': 7.14.8 - '@babel/types': 7.14.8 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/helper-simple-access/7.14.8: - resolution: {integrity: sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.14.8 - dev: true - - /@babel/helper-split-export-declaration/7.14.5: - resolution: {integrity: sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.14.8 - dev: true - - /@babel/helper-validator-identifier/7.14.8: - resolution: {integrity: sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-validator-option/7.14.5: - resolution: {integrity: sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helpers/7.14.8: - resolution: {integrity: sha512-ZRDmI56pnV+p1dH6d+UN6GINGz7Krps3+270qqI9UJ4wxYThfAIcI5i7j5vXC4FJ3Wap+S9qcebxeYiqn87DZw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.14.5 - '@babel/traverse': 7.14.8 - '@babel/types': 7.14.8 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/highlight/7.14.5: - resolution: {integrity: sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.14.8 - chalk: 2.4.2 - js-tokens: 4.0.0 - dev: true - - /@babel/parser/7.14.8: - resolution: {integrity: sha512-syoCQFOoo/fzkWDeM0dLEZi5xqurb5vuyzwIMNZRNun+N/9A4cUZeQaE7dTrB8jGaKuJRBtEOajtnmw0I5hvvA==} - engines: {node: '>=6.0.0'} - hasBin: true - dev: true - - /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.14.8: - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.14.8 - '@babel/helper-plugin-utils': 7.14.5 - dev: true - - /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.14.8: - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.14.8 - '@babel/helper-plugin-utils': 7.14.5 - dev: true - - /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.14.8: - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.14.8 - '@babel/helper-plugin-utils': 7.14.5 - dev: true - - /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.14.8: - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.14.8 - '@babel/helper-plugin-utils': 7.14.5 - dev: true - - /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.14.8: - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.14.8 - '@babel/helper-plugin-utils': 7.14.5 - dev: true - - /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.14.8: - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.14.8 - '@babel/helper-plugin-utils': 7.14.5 - dev: true - - /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.14.8: - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.14.8 - '@babel/helper-plugin-utils': 7.14.5 - dev: true - - /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.14.8: - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.14.8 - '@babel/helper-plugin-utils': 7.14.5 - dev: true - - /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.14.8: - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.14.8 - '@babel/helper-plugin-utils': 7.14.5 - dev: true - - /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.14.8: - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.14.8 - '@babel/helper-plugin-utils': 7.14.5 - dev: true - - /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.14.8: - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.14.8 - '@babel/helper-plugin-utils': 7.14.5 - dev: true - - /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.14.8: - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.14.8 - '@babel/helper-plugin-utils': 7.14.5 - dev: true - - /@babel/plugin-syntax-typescript/7.14.5_@babel+core@7.14.8: - resolution: {integrity: sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.14.8 - '@babel/helper-plugin-utils': 7.14.5 - dev: true - - /@babel/template/7.14.5: - resolution: {integrity: sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.14.5 - '@babel/parser': 7.14.8 - '@babel/types': 7.14.8 - dev: true - - /@babel/traverse/7.14.8: - resolution: {integrity: sha512-kexHhzCljJcFNn1KYAQ6A5wxMRzq9ebYpEDV4+WdNyr3i7O44tanbDOR/xjiG2F3sllan+LgwK+7OMk0EmydHg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.14.5 - '@babel/generator': 7.14.8 - '@babel/helper-function-name': 7.14.5 - '@babel/helper-hoist-variables': 7.14.5 - '@babel/helper-split-export-declaration': 7.14.5 - '@babel/parser': 7.14.8 - '@babel/types': 7.14.8 - debug: 4.3.2 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/types/7.14.8: - resolution: {integrity: sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.14.8 - to-fast-properties: 2.0.0 - dev: true - - /@bcoe/v8-coverage/0.2.3: - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - dev: true - - /@eslint/eslintrc/0.4.3: - resolution: {integrity: sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.2 - espree: 7.3.1 - globals: 13.10.0 - ignore: 4.0.6 - import-fresh: 3.3.0 - js-yaml: 3.14.1 - minimatch: 3.0.4 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@humanwhocodes/config-array/0.5.0: - resolution: {integrity: sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==} - engines: {node: '>=10.10.0'} - dependencies: - '@humanwhocodes/object-schema': 1.2.0 - debug: 4.3.2 - minimatch: 3.0.4 - transitivePeerDependencies: - - supports-color - dev: true - - /@humanwhocodes/object-schema/1.2.0: - resolution: {integrity: sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==} - dev: true - - /@istanbuljs/load-nyc-config/1.1.0: - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} - dependencies: - camelcase: 5.3.1 - find-up: 4.1.0 - get-package-type: 0.1.0 - js-yaml: 3.14.1 - resolve-from: 5.0.0 - dev: true - - /@istanbuljs/schema/0.1.3: - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} - dev: true - - /@jest/console/27.0.6: - resolution: {integrity: sha512-fMlIBocSHPZ3JxgWiDNW/KPj6s+YRd0hicb33IrmelCcjXo/pXPwvuiKFmZz+XuqI/1u7nbUK10zSsWL/1aegg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.0.6 - '@types/node': 12.20.16 - chalk: 4.1.1 - jest-message-util: 27.0.6 - jest-util: 27.0.6 - slash: 3.0.0 - dev: true - - /@jest/core/27.0.6: - resolution: {integrity: sha512-SsYBm3yhqOn5ZLJCtccaBcvD/ccTLCeuDv8U41WJH/V1MW5eKUkeMHT9U+Pw/v1m1AIWlnIW/eM2XzQr0rEmow==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/console': 27.0.6 - '@jest/reporters': 27.0.6 - '@jest/test-result': 27.0.6 - '@jest/transform': 27.0.6 - '@jest/types': 27.0.6 - '@types/node': 12.20.16 - ansi-escapes: 4.3.2 - chalk: 4.1.1 - emittery: 0.8.1 - exit: 0.1.2 - graceful-fs: 4.2.6 - jest-changed-files: 27.0.6 - jest-config: 27.0.6 - jest-haste-map: 27.0.6 - jest-message-util: 27.0.6 - jest-regex-util: 27.0.6 - jest-resolve: 27.0.6 - jest-resolve-dependencies: 27.0.6 - jest-runner: 27.0.6 - jest-runtime: 27.0.6 - jest-snapshot: 27.0.6 - jest-util: 27.0.6 - jest-validate: 27.0.6 - jest-watcher: 27.0.6 - micromatch: 4.0.4 - p-each-series: 2.2.0 - rimraf: 3.0.2 - slash: 3.0.0 - strip-ansi: 6.0.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - - /@jest/environment/27.0.6: - resolution: {integrity: sha512-4XywtdhwZwCpPJ/qfAkqExRsERW+UaoSRStSHCCiQTUpoYdLukj+YJbQSFrZjhlUDRZeNiU9SFH0u7iNimdiIg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/fake-timers': 27.0.6 - '@jest/types': 27.0.6 - '@types/node': 12.20.16 - jest-mock: 27.0.6 - dev: true - - /@jest/fake-timers/27.0.6: - resolution: {integrity: sha512-sqd+xTWtZ94l3yWDKnRTdvTeZ+A/V7SSKrxsrOKSqdyddb9CeNRF8fbhAU0D7ZJBpTTW2nbp6MftmKJDZfW2LQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.0.6 - '@sinonjs/fake-timers': 7.1.2 - '@types/node': 12.20.16 - jest-message-util: 27.0.6 - jest-mock: 27.0.6 - jest-util: 27.0.6 - dev: true - - /@jest/globals/27.0.6: - resolution: {integrity: sha512-DdTGCP606rh9bjkdQ7VvChV18iS7q0IMJVP1piwTWyWskol4iqcVwthZmoJEf7obE1nc34OpIyoVGPeqLC+ryw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.0.6 - '@jest/types': 27.0.6 - expect: 27.0.6 - dev: true - - /@jest/reporters/27.0.6: - resolution: {integrity: sha512-TIkBt09Cb2gptji3yJXb3EE+eVltW6BjO7frO7NEfjI9vSIYoISi5R3aI3KpEDXlB1xwB+97NXIqz84qYeYsfA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 27.0.6 - '@jest/test-result': 27.0.6 - '@jest/transform': 27.0.6 - '@jest/types': 27.0.6 - chalk: 4.1.1 - collect-v8-coverage: 1.0.1 - exit: 0.1.2 - glob: 7.1.7 - graceful-fs: 4.2.6 - istanbul-lib-coverage: 3.0.0 - istanbul-lib-instrument: 4.0.3 - istanbul-lib-report: 3.0.0 - istanbul-lib-source-maps: 4.0.0 - istanbul-reports: 3.0.2 - jest-haste-map: 27.0.6 - jest-resolve: 27.0.6 - jest-util: 27.0.6 - jest-worker: 27.0.6 - slash: 3.0.0 - source-map: 0.6.1 - string-length: 4.0.2 - terminal-link: 2.1.1 - v8-to-istanbul: 8.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@jest/source-map/27.0.6: - resolution: {integrity: sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - callsites: 3.1.0 - graceful-fs: 4.2.6 - source-map: 0.6.1 - dev: true - - /@jest/test-result/27.0.6: - resolution: {integrity: sha512-ja/pBOMTufjX4JLEauLxE3LQBPaI2YjGFtXexRAjt1I/MbfNlMx0sytSX3tn5hSLzQsR3Qy2rd0hc1BWojtj9w==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/console': 27.0.6 - '@jest/types': 27.0.6 - '@types/istanbul-lib-coverage': 2.0.3 - collect-v8-coverage: 1.0.1 - dev: true - - /@jest/test-sequencer/27.0.6: - resolution: {integrity: sha512-bISzNIApazYOlTHDum9PwW22NOyDa6VI31n6JucpjTVM0jD6JDgqEZ9+yn575nDdPF0+4csYDxNNW13NvFQGZA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/test-result': 27.0.6 - graceful-fs: 4.2.6 - jest-haste-map: 27.0.6 - jest-runtime: 27.0.6 - transitivePeerDependencies: - - supports-color - dev: true - - /@jest/transform/27.0.6: - resolution: {integrity: sha512-rj5Dw+mtIcntAUnMlW/Vju5mr73u8yg+irnHwzgtgoeI6cCPOvUwQ0D1uQtc/APmWgvRweEb1g05pkUpxH3iCA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/core': 7.14.8 - '@jest/types': 27.0.6 - babel-plugin-istanbul: 6.0.0 - chalk: 4.1.1 - convert-source-map: 1.8.0 - fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.6 - jest-haste-map: 27.0.6 - jest-regex-util: 27.0.6 - jest-util: 27.0.6 - micromatch: 4.0.4 - pirates: 4.0.1 - slash: 3.0.0 - source-map: 0.6.1 - write-file-atomic: 3.0.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@jest/types/26.6.2: - resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==} - engines: {node: '>= 10.14.2'} - dependencies: - '@types/istanbul-lib-coverage': 2.0.3 - '@types/istanbul-reports': 3.0.1 - '@types/node': 12.20.16 - '@types/yargs': 15.0.14 - chalk: 4.1.1 - dev: true - - /@jest/types/27.0.6: - resolution: {integrity: sha512-aSquT1qa9Pik26JK5/3rvnYb4bGtm1VFNesHKmNTwmPIgOrixvhL2ghIvFRNEpzy3gU+rUgjIF/KodbkFAl++g==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@types/istanbul-lib-coverage': 2.0.3 - '@types/istanbul-reports': 3.0.1 - '@types/node': 12.20.16 - '@types/yargs': 16.0.4 - chalk: 4.1.1 - dev: true - - /@nodelib/fs.scandir/2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - dev: true - - /@nodelib/fs.stat/2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - dev: true - - /@nodelib/fs.walk/1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.11.1 - dev: true - - /@prisma/debug/2.27.0: - resolution: {integrity: sha512-Et01S4RoLnQP9u547dCp74aSnLWTu0akfBCzF4zQZsbEdw7wXLttrcvbcYKr+KhpfF5Xu291UP/Kaxg0aj8o4w==} - dependencies: - debug: 4.3.2 - ms: 2.1.3 - transitivePeerDependencies: - - supports-color - dev: false - - /@prisma/engines/2.29.0-1.query-engine-lrts-37fb47056c32c040fec460847488dbafbfe2fa00: - resolution: {integrity: sha512-DGHNu8Gm5JQmdCvzAOr7C4Hkjaa5kxwJZwnf0sFNdYl3uKjQVd3twhxEQUO5jBhxZGqFOjfC/mbnN3cDYoEDgg==} - requiresBuild: true - dev: false - - /@prisma/get-platform/2.28.0-15.d616ac2e761de0623c4f0494620b4199161d9019: - resolution: {integrity: sha512-DsgvAEK/xZ+JLCgwXxTbNkGt0wqfmJAnYhYhfSNFWXNXj6QlXfIe6r+jW/+I5xtRikde5HzwTx9jMJsN1kCvRg==} - dependencies: - '@prisma/debug': 2.27.0 - transitivePeerDependencies: - - supports-color - dev: false - - /@sinonjs/commons/1.8.3: - resolution: {integrity: sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==} - dependencies: - type-detect: 4.0.8 - dev: true - - /@sinonjs/fake-timers/7.1.2: - resolution: {integrity: sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==} - dependencies: - '@sinonjs/commons': 1.8.3 - dev: true - - /@tootallnate/once/1.1.2: - resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} - engines: {node: '>= 6'} - dev: true - - /@types/babel__core/7.1.15: - resolution: {integrity: sha512-bxlMKPDbY8x5h6HBwVzEOk2C8fb6SLfYQ5Jw3uBYuYF1lfWk/kbLd81la82vrIkBb0l+JdmrZaDikPrNxpS/Ew==} - dependencies: - '@babel/parser': 7.14.8 - '@babel/types': 7.14.8 - '@types/babel__generator': 7.6.3 - '@types/babel__template': 7.4.1 - '@types/babel__traverse': 7.14.2 - dev: true - - /@types/babel__generator/7.6.3: - resolution: {integrity: sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==} - dependencies: - '@babel/types': 7.14.8 - dev: true - - /@types/babel__template/7.4.1: - resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} - dependencies: - '@babel/parser': 7.14.8 - '@babel/types': 7.14.8 - dev: true - - /@types/babel__traverse/7.14.2: - resolution: {integrity: sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==} - dependencies: - '@babel/types': 7.14.8 - dev: true - - /@types/graceful-fs/4.1.5: - resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} - dependencies: - '@types/node': 12.20.16 - dev: true - - /@types/istanbul-lib-coverage/2.0.3: - resolution: {integrity: sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==} - dev: true - - /@types/istanbul-lib-report/3.0.0: - resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==} - dependencies: - '@types/istanbul-lib-coverage': 2.0.3 - dev: true - - /@types/istanbul-reports/3.0.1: - resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==} - dependencies: - '@types/istanbul-lib-report': 3.0.0 - dev: true - - /@types/jest/26.0.24: - resolution: {integrity: sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w==} - dependencies: - jest-diff: 26.6.2 - pretty-format: 26.6.2 - dev: true - - /@types/json-schema/7.0.8: - resolution: {integrity: sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg==} - dev: true - - /@types/node/12.20.16: - resolution: {integrity: sha512-6CLxw83vQf6DKqXxMPwl8qpF8I7THFZuIwLt4TnNsumxkp1VsRZWT8txQxncT/Rl2UojTsFzWgDG4FRMwafrlA==} - dev: true - - /@types/parse-json/4.0.0: - resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} - dev: true - - /@types/prettier/2.3.2: - resolution: {integrity: sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog==} - dev: true - - /@types/retry/0.12.0: - resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} - dev: false - - /@types/stack-utils/2.0.1: - resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} - dev: true - - /@types/yargs-parser/20.2.1: - resolution: {integrity: sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==} - dev: true - - /@types/yargs/15.0.14: - resolution: {integrity: sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==} - dependencies: - '@types/yargs-parser': 20.2.1 - dev: true - - /@types/yargs/16.0.4: - resolution: {integrity: sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==} - dependencies: - '@types/yargs-parser': 20.2.1 - dev: true - - /@typescript-eslint/eslint-plugin/4.28.4_b1648df9f9ba40bdeef3710a5a5af353: - resolution: {integrity: sha512-s1oY4RmYDlWMlcV0kKPBaADn46JirZzvvH7c2CtAqxCY96S538JRBAzt83RrfkDheV/+G/vWNK0zek+8TB3Gmw==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - '@typescript-eslint/parser': ^4.0.0 - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/experimental-utils': 4.28.4_eslint@7.31.0+typescript@4.3.5 - '@typescript-eslint/parser': 4.28.4_eslint@7.31.0+typescript@4.3.5 - '@typescript-eslint/scope-manager': 4.28.4 - debug: 4.3.2 - eslint: 7.31.0 - functional-red-black-tree: 1.0.1 - regexpp: 3.2.0 - semver: 7.3.5 - tsutils: 3.21.0_typescript@4.3.5 - typescript: 4.3.5 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/experimental-utils/4.28.4_eslint@7.31.0+typescript@4.3.5: - resolution: {integrity: sha512-OglKWOQRWTCoqMSy6pm/kpinEIgdcXYceIcH3EKWUl4S8xhFtN34GQRaAvTIZB9DD94rW7d/U7tUg3SYeDFNHA==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - eslint: '*' - dependencies: - '@types/json-schema': 7.0.8 - '@typescript-eslint/scope-manager': 4.28.4 - '@typescript-eslint/types': 4.28.4 - '@typescript-eslint/typescript-estree': 4.28.4_typescript@4.3.5 - eslint: 7.31.0 - eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@7.31.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/experimental-utils/4.28.5_eslint@7.31.0+typescript@4.3.5: - resolution: {integrity: sha512-bGPLCOJAa+j49hsynTaAtQIWg6uZd8VLiPcyDe4QPULsvQwLHGLSGKKcBN8/lBxIX14F74UEMK2zNDI8r0okwA==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - eslint: '*' - dependencies: - '@types/json-schema': 7.0.8 - '@typescript-eslint/scope-manager': 4.28.5 - '@typescript-eslint/types': 4.28.5 - '@typescript-eslint/typescript-estree': 4.28.5_typescript@4.3.5 - eslint: 7.31.0 - eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@7.31.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/parser/4.28.4_eslint@7.31.0+typescript@4.3.5: - resolution: {integrity: sha512-4i0jq3C6n+og7/uCHiE6q5ssw87zVdpUj1k6VlVYMonE3ILdFApEzTWgppSRG4kVNB/5jxnH+gTeKLMNfUelQA==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 4.28.4 - '@typescript-eslint/types': 4.28.4 - '@typescript-eslint/typescript-estree': 4.28.4_typescript@4.3.5 - debug: 4.3.2 - eslint: 7.31.0 - typescript: 4.3.5 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/scope-manager/4.28.4: - resolution: {integrity: sha512-ZJBNs4usViOmlyFMt9X9l+X0WAFcDH7EdSArGqpldXu7aeZxDAuAzHiMAeI+JpSefY2INHrXeqnha39FVqXb8w==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - dependencies: - '@typescript-eslint/types': 4.28.4 - '@typescript-eslint/visitor-keys': 4.28.4 - dev: true - - /@typescript-eslint/scope-manager/4.28.5: - resolution: {integrity: sha512-PHLq6n9nTMrLYcVcIZ7v0VY1X7dK309NM8ya9oL/yG8syFINIMHxyr2GzGoBYUdv3NUfCOqtuqps0ZmcgnZTfQ==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - dependencies: - '@typescript-eslint/types': 4.28.5 - '@typescript-eslint/visitor-keys': 4.28.5 - dev: true - - /@typescript-eslint/types/4.28.4: - resolution: {integrity: sha512-3eap4QWxGqkYuEmVebUGULMskR6Cuoc/Wii0oSOddleP4EGx1tjLnZQ0ZP33YRoMDCs5O3j56RBV4g14T4jvww==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - dev: true - - /@typescript-eslint/types/4.28.5: - resolution: {integrity: sha512-MruOu4ZaDOLOhw4f/6iudyks/obuvvZUAHBDSW80Trnc5+ovmViLT2ZMDXhUV66ozcl6z0LJfKs1Usldgi/WCA==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - dev: true - - /@typescript-eslint/typescript-estree/4.28.4_typescript@4.3.5: - resolution: {integrity: sha512-z7d8HK8XvCRyN2SNp+OXC2iZaF+O2BTquGhEYLKLx5k6p0r05ureUtgEfo5f6anLkhCxdHtCf6rPM1p4efHYDQ==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 4.28.4 - '@typescript-eslint/visitor-keys': 4.28.4 - debug: 4.3.2 - globby: 11.0.4 - is-glob: 4.0.1 - semver: 7.3.5 - tsutils: 3.21.0_typescript@4.3.5 - typescript: 4.3.5 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/typescript-estree/4.28.5_typescript@4.3.5: - resolution: {integrity: sha512-FzJUKsBX8poCCdve7iV7ShirP8V+ys2t1fvamVeD1rWpiAnIm550a+BX/fmTHrjEpQJ7ZAn+Z7ZZwJjytk9rZw==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 4.28.5 - '@typescript-eslint/visitor-keys': 4.28.5 - debug: 4.3.2 - globby: 11.0.4 - is-glob: 4.0.1 - semver: 7.3.5 - tsutils: 3.21.0_typescript@4.3.5 - typescript: 4.3.5 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/visitor-keys/4.28.4: - resolution: {integrity: sha512-NIAXAdbz1XdOuzqkJHjNKXKj8QQ4cv5cxR/g0uQhCYf/6//XrmfpaYsM7PnBcNbfvTDLUkqQ5TPNm1sozDdTWg==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - dependencies: - '@typescript-eslint/types': 4.28.4 - eslint-visitor-keys: 2.1.0 - dev: true - - /@typescript-eslint/visitor-keys/4.28.5: - resolution: {integrity: sha512-dva/7Rr+EkxNWdJWau26xU/0slnFlkh88v3TsyTgRS/IIYFi5iIfpCFM4ikw0vQTFUR9FYSSyqgK4w64gsgxhg==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - dependencies: - '@typescript-eslint/types': 4.28.5 - eslint-visitor-keys: 2.1.0 - dev: true - - /abab/2.0.5: - resolution: {integrity: sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==} - dev: true - - /acorn-globals/6.0.0: - resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==} - dependencies: - acorn: 7.4.1 - acorn-walk: 7.2.0 - dev: true - - /acorn-jsx/5.3.2_acorn@7.4.1: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 7.4.1 - dev: true - - /acorn-walk/7.2.0: - resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} - engines: {node: '>=0.4.0'} - dev: true - - /acorn/7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - - /acorn/8.4.1: - resolution: {integrity: sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - - /agent-base/6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - dependencies: - debug: 4.3.2 - transitivePeerDependencies: - - supports-color - dev: true - - /aggregate-error/3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} - dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 - dev: true - - /ajv/6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - dev: true - - /ajv/8.6.2: - resolution: {integrity: sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==} - 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'} - dev: true - - /ansi-escapes/4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.21.3 - - /ansi-regex/5.0.0: - resolution: {integrity: sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==} - engines: {node: '>=8'} - dev: true - - /ansi-styles/3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - dependencies: - color-convert: 1.9.3 - dev: true - - /ansi-styles/4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - - /ansi-styles/5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - dev: true - - /anymatch/3.1.2: - resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} - engines: {node: '>= 8'} - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.0 - dev: true - - /argparse/1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - dependencies: - sprintf-js: 1.0.3 - dev: true - - /array-union/2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - dev: true - - /astral-regex/2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} - engines: {node: '>=8'} - dev: true - - /asynckit/0.4.0: - resolution: {integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=} - dev: true - - /babel-jest/27.0.6_@babel+core@7.14.8: - resolution: {integrity: sha512-iTJyYLNc4wRofASmofpOc5NK9QunwMk+TLFgGXsTFS8uEqmd8wdI7sga0FPe2oVH3b5Agt/EAK1QjPEuKL8VfA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - '@babel/core': ^7.8.0 - dependencies: - '@babel/core': 7.14.8 - '@jest/transform': 27.0.6 - '@jest/types': 27.0.6 - '@types/babel__core': 7.1.15 - babel-plugin-istanbul: 6.0.0 - babel-preset-jest: 27.0.6_@babel+core@7.14.8 - chalk: 4.1.1 - graceful-fs: 4.2.6 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-istanbul/6.0.0: - resolution: {integrity: sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==} - engines: {node: '>=8'} - dependencies: - '@babel/helper-plugin-utils': 7.14.5 - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 4.0.3 - test-exclude: 6.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-jest-hoist/27.0.6: - resolution: {integrity: sha512-CewFeM9Vv2gM7Yr9n5eyyLVPRSiBnk6lKZRjgwYnGKSl9M14TMn2vkN02wTF04OGuSDLEzlWiMzvjXuW9mB6Gw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/template': 7.14.5 - '@babel/types': 7.14.8 - '@types/babel__core': 7.1.15 - '@types/babel__traverse': 7.14.2 - dev: true - - /babel-preset-current-node-syntax/1.0.1_@babel+core@7.14.8: - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.14.8 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.14.8 - '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.14.8 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.14.8 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.14.8 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.14.8 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.14.8 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.14.8 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.14.8 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.14.8 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.14.8 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.14.8 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.14.8 - dev: true - - /babel-preset-jest/27.0.6_@babel+core@7.14.8: - resolution: {integrity: sha512-WObA0/Biw2LrVVwZkF/2GqbOdzhKD6Fkdwhoy9ASIrOWr/zodcSpQh72JOkEn6NWyjmnPDjNSqaGN4KnpKzhXw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.14.8 - babel-plugin-jest-hoist: 27.0.6 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.14.8 - dev: true - - /balanced-match/1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true - - /brace-expansion/1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - dev: true - - /braces/3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - dependencies: - fill-range: 7.0.1 - dev: true - - /browser-process-hrtime/1.0.0: - resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} - dev: true - - /browserslist/4.16.6: - resolution: {integrity: sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001248 - colorette: 1.2.2 - electron-to-chromium: 1.3.791 - escalade: 3.1.1 - node-releases: 1.1.73 - dev: true - - /bs-logger/0.2.6: - resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} - engines: {node: '>= 6'} - dependencies: - fast-json-stable-stringify: 2.1.0 - dev: true - - /bser/2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - dependencies: - node-int64: 0.4.0 - dev: true - - /buffer-from/1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - dev: true - - /callsites/3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - dev: true - - /camelcase/5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - dev: true - - /camelcase/6.2.0: - resolution: {integrity: sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==} - engines: {node: '>=10'} - dev: true - - /caniuse-lite/1.0.30001248: - resolution: {integrity: sha512-NwlQbJkxUFJ8nMErnGtT0QTM2TJ33xgz4KXJSMIrjXIbDVdaYueGyjOrLKRtJC+rTiWfi6j5cnZN1NBiSBJGNw==} - dev: true - - /chalk/2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - dev: true - - /chalk/4.1.1: - resolution: {integrity: sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - /char-regex/1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} - dev: true - - /ci-info/3.2.0: - resolution: {integrity: sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==} - dev: true - - /cjs-module-lexer/1.2.2: - resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==} - dev: true - - /clean-stack/2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} - dev: true - - /cli-cursor/3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - dependencies: - restore-cursor: 3.1.0 - dev: true - - /cli-truncate/2.1.0: - resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} - engines: {node: '>=8'} - dependencies: - slice-ansi: 3.0.0 - string-width: 4.2.2 - dev: true - - /cliui/7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - dependencies: - string-width: 4.2.2 - strip-ansi: 6.0.0 - wrap-ansi: 7.0.0 - dev: true - - /co/4.6.0: - resolution: {integrity: sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - dev: true - - /collect-v8-coverage/1.0.1: - resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==} - dev: true - - /color-convert/1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - dependencies: - color-name: 1.1.3 - dev: true - - /color-convert/2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - - /color-name/1.1.3: - resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} - dev: true - - /color-name/1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - /colorette/1.2.2: - resolution: {integrity: sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==} - dev: true - - /combined-stream/1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - dependencies: - delayed-stream: 1.0.0 - dev: true - - /commander/7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} - dev: true - - /concat-map/0.0.1: - resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} - dev: true - - /convert-source-map/1.8.0: - resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} - dependencies: - safe-buffer: 5.1.2 - dev: true - - /cosmiconfig/7.0.0: - resolution: {integrity: sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==} - engines: {node: '>=10'} - dependencies: - '@types/parse-json': 4.0.0 - import-fresh: 3.3.0 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - dev: true - - /cross-spawn/7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - /cssom/0.3.8: - resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} - dev: true - - /cssom/0.4.4: - resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==} - dev: true - - /cssstyle/2.3.0: - resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} - engines: {node: '>=8'} - dependencies: - cssom: 0.3.8 - dev: true - - /data-urls/2.0.0: - resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==} - engines: {node: '>=10'} - dependencies: - abab: 2.0.5 - whatwg-mimetype: 2.3.0 - whatwg-url: 8.7.0 - dev: true - - /debug/4.3.2: - resolution: {integrity: sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - - /decimal.js/10.3.1: - resolution: {integrity: sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==} - dev: true - - /dedent/0.7.0: - resolution: {integrity: sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=} - dev: true - - /deep-is/0.1.3: - resolution: {integrity: sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=} - dev: true - - /deepmerge/4.2.2: - resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} - engines: {node: '>=0.10.0'} - dev: true - - /delayed-stream/1.0.0: - resolution: {integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk=} - engines: {node: '>=0.4.0'} - dev: true - - /detect-newline/3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} - dev: true - - /diff-sequences/26.6.2: - resolution: {integrity: sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==} - engines: {node: '>= 10.14.2'} - dev: true - - /diff-sequences/27.0.6: - resolution: {integrity: sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dev: true - - /dir-glob/3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - dependencies: - path-type: 4.0.0 - dev: true - - /doctrine/3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dependencies: - esutils: 2.0.3 - dev: true - - /domexception/2.0.1: - resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==} - engines: {node: '>=8'} - dependencies: - webidl-conversions: 5.0.0 - dev: true - - /electron-to-chromium/1.3.791: - resolution: {integrity: sha512-Tdx7w1fZpeWOOBluK+kXTAKCXyc79K65RB6Zp0+sPSZZhDjXlrxfGlXrlMGVVQUrKCyEZFQs1UBBLNz5IdbF0g==} - dev: true - - /emittery/0.8.1: - resolution: {integrity: sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==} - engines: {node: '>=10'} - dev: true - - /emoji-regex/8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - dev: true - - /enquirer/2.3.6: - resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} - engines: {node: '>=8.6'} - dependencies: - ansi-colors: 4.1.1 - dev: true - - /error-ex/1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - dependencies: - is-arrayish: 0.2.1 - dev: true - - /escalade/3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} - dev: true - - /escape-string-regexp/1.0.5: - resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} - engines: {node: '>=0.8.0'} - dev: true - - /escape-string-regexp/2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} - dev: true - - /escape-string-regexp/4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - dev: true - - /escodegen/2.0.0: - resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==} - engines: {node: '>=6.0'} - hasBin: true - dependencies: - esprima: 4.0.1 - estraverse: 5.2.0 - esutils: 2.0.3 - optionator: 0.8.3 - optionalDependencies: - source-map: 0.6.1 - dev: true - - /eslint-config-prettier/8.3.0_eslint@7.31.0: - resolution: {integrity: sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - dependencies: - eslint: 7.31.0 - dev: true - - /eslint-plugin-eslint-comments/3.2.0_eslint@7.31.0: - resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} - engines: {node: '>=6.5.0'} - peerDependencies: - eslint: '>=4.19.1' - dependencies: - escape-string-regexp: 1.0.5 - eslint: 7.31.0 - ignore: 5.1.8 - dev: true - - /eslint-plugin-jest/24.4.0_fc5326c9e782cff3be563ae5197052dc: - resolution: {integrity: sha512-8qnt/hgtZ94E9dA6viqfViKBfkJwFHXgJmTWlMGDgunw1XJEGqm3eiPjDsTanM3/u/3Az82nyQM9GX7PM/QGmg==} - engines: {node: '>=10'} - peerDependencies: - '@typescript-eslint/eslint-plugin': '>= 4' - eslint: '>=5' - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true - dependencies: - '@typescript-eslint/eslint-plugin': 4.28.4_b1648df9f9ba40bdeef3710a5a5af353 - '@typescript-eslint/experimental-utils': 4.28.5_eslint@7.31.0+typescript@4.3.5 - eslint: 7.31.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /eslint-plugin-prettier/3.4.0_19f511d6aa08b367b6cb59e8f50291ca: - resolution: {integrity: sha512-UDK6rJT6INSfcOo545jiaOwB701uAIt2/dR7WnFQoGCVl1/EMqdANBmwUaqqQ45aXprsTGzSa39LI1PyuRBxxw==} - engines: {node: '>=6.0.0'} - peerDependencies: - eslint: '>=5.0.0' - eslint-config-prettier: '*' - prettier: '>=1.13.0' - peerDependenciesMeta: - eslint-config-prettier: - optional: true - dependencies: - eslint: 7.31.0 - eslint-config-prettier: 8.3.0_eslint@7.31.0 - prettier: 2.3.2 - prettier-linter-helpers: 1.0.0 - dev: true - - /eslint-scope/5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - dev: true - - /eslint-utils/2.1.0: - resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} - engines: {node: '>=6'} - dependencies: - eslint-visitor-keys: 1.3.0 - dev: true - - /eslint-utils/3.0.0_eslint@7.31.0: - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - dependencies: - eslint: 7.31.0 - eslint-visitor-keys: 2.1.0 - dev: true - - /eslint-visitor-keys/1.3.0: - resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} - engines: {node: '>=4'} - dev: true - - /eslint-visitor-keys/2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - dev: true - - /eslint/7.31.0: - resolution: {integrity: sha512-vafgJpSh2ia8tnTkNUkwxGmnumgckLh5aAbLa1xRmIn9+owi8qBNGKL+B881kNKNTy7FFqTEkpNkUvmw0n6PkA==} - engines: {node: ^10.12.0 || >=12.0.0} - hasBin: true - dependencies: - '@babel/code-frame': 7.12.11 - '@eslint/eslintrc': 0.4.3 - '@humanwhocodes/config-array': 0.5.0 - ajv: 6.12.6 - chalk: 4.1.1 - cross-spawn: 7.0.3 - debug: 4.3.2 - doctrine: 3.0.0 - enquirer: 2.3.6 - escape-string-regexp: 4.0.0 - eslint-scope: 5.1.1 - eslint-utils: 2.1.0 - eslint-visitor-keys: 2.1.0 - espree: 7.3.1 - esquery: 1.4.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - functional-red-black-tree: 1.0.1 - glob-parent: 5.1.2 - globals: 13.10.0 - ignore: 4.0.6 - import-fresh: 3.3.0 - imurmurhash: 0.1.4 - is-glob: 4.0.1 - js-yaml: 3.14.1 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.0.4 - natural-compare: 1.4.0 - optionator: 0.9.1 - progress: 2.0.3 - regexpp: 3.2.0 - semver: 7.3.5 - strip-ansi: 6.0.0 - strip-json-comments: 3.1.1 - table: 6.7.1 - text-table: 0.2.0 - v8-compile-cache: 2.3.0 - transitivePeerDependencies: - - supports-color - dev: true - - /espree/7.3.1: - resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - acorn: 7.4.1 - acorn-jsx: 5.3.2_acorn@7.4.1 - eslint-visitor-keys: 1.3.0 - dev: true - - /esprima/4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - dev: true - - /esquery/1.4.0: - resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} - engines: {node: '>=0.10'} - dependencies: - estraverse: 5.2.0 - dev: true - - /esrecurse/4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - dependencies: - estraverse: 5.2.0 - dev: true - - /estraverse/4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - dev: true - - /estraverse/5.2.0: - resolution: {integrity: sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==} - engines: {node: '>=4.0'} - dev: true - - /esutils/2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - dev: true - - /execa/5.0.0: - resolution: {integrity: sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==} - engines: {node: '>=10'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.0 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.3 - strip-final-newline: 2.0.0 - - /exit/0.1.2: - resolution: {integrity: sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=} - engines: {node: '>= 0.8.0'} - dev: true - - /expect/27.0.6: - resolution: {integrity: sha512-psNLt8j2kwg42jGBDSfAlU49CEZxejN1f1PlANWDZqIhBOVU/c2Pm888FcjWJzFewhIsNWfZJeLjUjtKGiPuSw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.0.6 - ansi-styles: 5.2.0 - jest-get-type: 27.0.6 - jest-matcher-utils: 27.0.6 - jest-message-util: 27.0.6 - jest-regex-util: 27.0.6 - dev: true - - /fast-deep-equal/3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: true - - /fast-diff/1.2.0: - resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} - dev: true - - /fast-glob/3.2.7: - resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==} - engines: {node: '>=8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.4 - dev: true - - /fast-json-stable-stringify/2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - dev: true - - /fast-levenshtein/2.0.6: - resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=} - dev: true - - /fastq/1.11.1: - resolution: {integrity: sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw==} - dependencies: - reusify: 1.0.4 - dev: true - - /fb-watchman/2.0.1: - resolution: {integrity: sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==} - dependencies: - bser: 2.1.1 - dev: true - - /file-entry-cache/6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flat-cache: 3.0.4 - dev: true - - /fill-range/7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - dependencies: - to-regex-range: 5.0.1 - dev: true - - /find-up/4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - dev: true - - /flat-cache/3.0.4: - resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flatted: 3.2.2 - rimraf: 3.0.2 - dev: true - - /flatted/3.2.2: - resolution: {integrity: sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==} - dev: true - - /form-data/3.0.1: - resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} - engines: {node: '>= 6'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.32 - dev: true - - /fs.realpath/1.0.0: - resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} - dev: true - - /fsevents/2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - dev: true - optional: true - - /function-bind/1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - dev: true - - /functional-red-black-tree/1.0.1: - resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=} - dev: true - - /gensync/1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - dev: true - - /get-caller-file/2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - dev: true - - /get-own-enumerable-property-symbols/3.0.2: - resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} - dev: true - - /get-package-type/0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - dev: true - - /get-stream/6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - - /glob-parent/5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - dependencies: - is-glob: 4.0.1 - dev: true - - /glob/7.1.7: - resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.0.4 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - - /globals/11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - dev: true - - /globals/13.10.0: - resolution: {integrity: sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.20.2 - dev: true - - /globby/11.0.4: - resolution: {integrity: sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==} - engines: {node: '>=10'} - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.2.7 - ignore: 5.1.8 - merge2: 1.4.1 - slash: 3.0.0 - dev: true - - /graceful-fs/4.2.6: - resolution: {integrity: sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==} - dev: true - - /has-flag/3.0.0: - resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} - engines: {node: '>=4'} - dev: true - - /has-flag/4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - /has/1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} - dependencies: - function-bind: 1.1.1 - dev: true - - /html-encoding-sniffer/2.0.1: - resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==} - engines: {node: '>=10'} - dependencies: - whatwg-encoding: 1.0.5 - dev: true - - /html-escaper/2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - dev: true - - /http-proxy-agent/4.0.1: - resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} - engines: {node: '>= 6'} - dependencies: - '@tootallnate/once': 1.1.2 - agent-base: 6.0.2 - debug: 4.3.2 - transitivePeerDependencies: - - supports-color - dev: true - - /https-proxy-agent/5.0.0: - resolution: {integrity: sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==} - engines: {node: '>= 6'} - dependencies: - agent-base: 6.0.2 - debug: 4.3.2 - transitivePeerDependencies: - - supports-color - dev: true - - /human-signals/2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - - /iconv-lite/0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - dependencies: - safer-buffer: 2.1.2 - dev: true - - /ignore/4.0.6: - resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} - engines: {node: '>= 4'} - dev: true - - /ignore/5.1.8: - resolution: {integrity: sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==} - engines: {node: '>= 4'} - dev: true - - /import-fresh/3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - dev: true - - /import-local/3.0.2: - resolution: {integrity: sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==} - engines: {node: '>=8'} - hasBin: true - dependencies: - pkg-dir: 4.2.0 - resolve-cwd: 3.0.0 - dev: true - - /imurmurhash/0.1.4: - resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=} - engines: {node: '>=0.8.19'} - dev: true - - /indent-string/4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - - /inflight/1.0.6: - resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - dev: true - - /inherits/2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: true - - /is-arrayish/0.2.1: - resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} - dev: true - - /is-ci/3.0.0: - resolution: {integrity: sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==} - hasBin: true - dependencies: - ci-info: 3.2.0 - dev: true - - /is-core-module/2.5.0: - resolution: {integrity: sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==} - dependencies: - has: 1.0.3 - dev: true - - /is-extglob/2.1.1: - resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} - engines: {node: '>=0.10.0'} - dev: true - - /is-fullwidth-code-point/3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - dev: true - - /is-generator-fn/2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} - dev: true - - /is-glob/4.0.1: - resolution: {integrity: sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - dev: true - - /is-number/7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - dev: true - - /is-obj/1.0.1: - resolution: {integrity: sha1-PkcprB9f3gJc19g6iW2rn09n2w8=} - engines: {node: '>=0.10.0'} - dev: true - - /is-potential-custom-element-name/1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - dev: true - - /is-regexp/1.0.0: - resolution: {integrity: sha1-/S2INUXEa6xaYz57mgnof6LLUGk=} - engines: {node: '>=0.10.0'} - dev: true - - /is-stream/2.0.0: - resolution: {integrity: sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==} - engines: {node: '>=8'} - - /is-typedarray/1.0.0: - resolution: {integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=} - dev: true - - /is-unicode-supported/0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - dev: true - - /isexe/2.0.0: - resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} - - /istanbul-lib-coverage/3.0.0: - resolution: {integrity: sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==} - engines: {node: '>=8'} - dev: true - - /istanbul-lib-instrument/4.0.3: - resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} - engines: {node: '>=8'} - dependencies: - '@babel/core': 7.14.8 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.0.0 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: true - - /istanbul-lib-report/3.0.0: - resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} - engines: {node: '>=8'} - dependencies: - istanbul-lib-coverage: 3.0.0 - make-dir: 3.1.0 - supports-color: 7.2.0 - dev: true - - /istanbul-lib-source-maps/4.0.0: - resolution: {integrity: sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==} - engines: {node: '>=8'} - dependencies: - debug: 4.3.2 - istanbul-lib-coverage: 3.0.0 - source-map: 0.6.1 - transitivePeerDependencies: - - supports-color - dev: true - - /istanbul-reports/3.0.2: - resolution: {integrity: sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==} - engines: {node: '>=8'} - dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.0 - dev: true - - /jest-changed-files/27.0.6: - resolution: {integrity: sha512-BuL/ZDauaq5dumYh5y20sn4IISnf1P9A0TDswTxUi84ORGtVa86ApuBHqICL0vepqAnZiY6a7xeSPWv2/yy4eA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.0.6 - execa: 5.0.0 - throat: 6.0.1 - dev: true - - /jest-circus/27.0.6: - resolution: {integrity: sha512-OJlsz6BBeX9qR+7O9lXefWoc2m9ZqcZ5Ohlzz0pTEAG4xMiZUJoacY8f4YDHxgk0oKYxj277AfOk9w6hZYvi1Q==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.0.6 - '@jest/test-result': 27.0.6 - '@jest/types': 27.0.6 - '@types/node': 12.20.16 - chalk: 4.1.1 - co: 4.6.0 - dedent: 0.7.0 - expect: 27.0.6 - is-generator-fn: 2.1.0 - jest-each: 27.0.6 - jest-matcher-utils: 27.0.6 - jest-message-util: 27.0.6 - jest-runtime: 27.0.6 - jest-snapshot: 27.0.6 - jest-util: 27.0.6 - pretty-format: 27.0.6 - slash: 3.0.0 - stack-utils: 2.0.3 - throat: 6.0.1 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-cli/27.0.6: - resolution: {integrity: sha512-qUUVlGb9fdKir3RDE+B10ULI+LQrz+MCflEH2UJyoUjoHHCbxDrMxSzjQAPUMsic4SncI62ofYCcAvW6+6rhhg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': 27.0.6 - '@jest/test-result': 27.0.6 - '@jest/types': 27.0.6 - chalk: 4.1.1 - exit: 0.1.2 - graceful-fs: 4.2.6 - import-local: 3.0.2 - jest-config: 27.0.6 - jest-util: 27.0.6 - jest-validate: 27.0.6 - prompts: 2.4.1 - yargs: 16.2.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - - /jest-config/27.0.6: - resolution: {integrity: sha512-JZRR3I1Plr2YxPBhgqRspDE2S5zprbga3swYNrvY3HfQGu7p/GjyLOqwrYad97tX3U3mzT53TPHVmozacfP/3w==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - ts-node: '>=9.0.0' - peerDependenciesMeta: - ts-node: - optional: true - dependencies: - '@babel/core': 7.14.8 - '@jest/test-sequencer': 27.0.6 - '@jest/types': 27.0.6 - babel-jest: 27.0.6_@babel+core@7.14.8 - chalk: 4.1.1 - deepmerge: 4.2.2 - glob: 7.1.7 - graceful-fs: 4.2.6 - is-ci: 3.0.0 - jest-circus: 27.0.6 - jest-environment-jsdom: 27.0.6 - jest-environment-node: 27.0.6 - jest-get-type: 27.0.6 - jest-jasmine2: 27.0.6 - jest-regex-util: 27.0.6 - jest-resolve: 27.0.6 - jest-runner: 27.0.6 - jest-util: 27.0.6 - jest-validate: 27.0.6 - micromatch: 4.0.4 - pretty-format: 27.0.6 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: true - - /jest-diff/26.6.2: - resolution: {integrity: sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==} - engines: {node: '>= 10.14.2'} - dependencies: - chalk: 4.1.1 - diff-sequences: 26.6.2 - jest-get-type: 26.3.0 - pretty-format: 26.6.2 - dev: true - - /jest-diff/27.0.6: - resolution: {integrity: sha512-Z1mqgkTCSYaFgwTlP/NUiRzdqgxmmhzHY1Tq17zL94morOHfHu3K4bgSgl+CR4GLhpV8VxkuOYuIWnQ9LnFqmg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - chalk: 4.1.1 - diff-sequences: 27.0.6 - jest-get-type: 27.0.6 - pretty-format: 27.0.6 - dev: true - - /jest-docblock/27.0.6: - resolution: {integrity: sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - detect-newline: 3.1.0 - dev: true - - /jest-each/27.0.6: - resolution: {integrity: sha512-m6yKcV3bkSWrUIjxkE9OC0mhBZZdhovIW5ergBYirqnkLXkyEn3oUUF/QZgyecA1cF1QFyTE8bRRl8Tfg1pfLA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.0.6 - chalk: 4.1.1 - jest-get-type: 27.0.6 - jest-util: 27.0.6 - pretty-format: 27.0.6 - dev: true - - /jest-environment-jsdom/27.0.6: - resolution: {integrity: sha512-FvetXg7lnXL9+78H+xUAsra3IeZRTiegA3An01cWeXBspKXUhAwMM9ycIJ4yBaR0L7HkoMPaZsozCLHh4T8fuw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.0.6 - '@jest/fake-timers': 27.0.6 - '@jest/types': 27.0.6 - '@types/node': 12.20.16 - jest-mock: 27.0.6 - jest-util: 27.0.6 - jsdom: 16.6.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: true - - /jest-environment-node/27.0.6: - resolution: {integrity: sha512-+Vi6yLrPg/qC81jfXx3IBlVnDTI6kmRr08iVa2hFCWmJt4zha0XW7ucQltCAPhSR0FEKEoJ3i+W4E6T0s9is0w==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.0.6 - '@jest/fake-timers': 27.0.6 - '@jest/types': 27.0.6 - '@types/node': 12.20.16 - jest-mock: 27.0.6 - jest-util: 27.0.6 - dev: true - - /jest-get-type/26.3.0: - resolution: {integrity: sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==} - engines: {node: '>= 10.14.2'} - dev: true - - /jest-get-type/27.0.6: - resolution: {integrity: sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dev: true - - /jest-haste-map/27.0.6: - resolution: {integrity: sha512-4ldjPXX9h8doB2JlRzg9oAZ2p6/GpQUNAeiYXqcpmrKbP0Qev0wdZlxSMOmz8mPOEnt4h6qIzXFLDi8RScX/1w==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.0.6 - '@types/graceful-fs': 4.1.5 - '@types/node': 12.20.16 - anymatch: 3.1.2 - fb-watchman: 2.0.1 - graceful-fs: 4.2.6 - jest-regex-util: 27.0.6 - jest-serializer: 27.0.6 - jest-util: 27.0.6 - jest-worker: 27.0.6 - micromatch: 4.0.4 - walker: 1.0.7 - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /jest-jasmine2/27.0.6: - resolution: {integrity: sha512-cjpH2sBy+t6dvCeKBsHpW41mjHzXgsavaFMp+VWRf0eR4EW8xASk1acqmljFtK2DgyIECMv2yCdY41r2l1+4iA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/traverse': 7.14.8 - '@jest/environment': 27.0.6 - '@jest/source-map': 27.0.6 - '@jest/test-result': 27.0.6 - '@jest/types': 27.0.6 - '@types/node': 12.20.16 - chalk: 4.1.1 - co: 4.6.0 - expect: 27.0.6 - is-generator-fn: 2.1.0 - jest-each: 27.0.6 - jest-matcher-utils: 27.0.6 - jest-message-util: 27.0.6 - jest-runtime: 27.0.6 - jest-snapshot: 27.0.6 - jest-util: 27.0.6 - pretty-format: 27.0.6 - throat: 6.0.1 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-leak-detector/27.0.6: - resolution: {integrity: sha512-2/d6n2wlH5zEcdctX4zdbgX8oM61tb67PQt4Xh8JFAIy6LRKUnX528HulkaG6nD5qDl5vRV1NXejCe1XRCH5gQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - jest-get-type: 27.0.6 - pretty-format: 27.0.6 - dev: true - - /jest-matcher-utils/27.0.6: - resolution: {integrity: sha512-OFgF2VCQx9vdPSYTHWJ9MzFCehs20TsyFi6bIHbk5V1u52zJOnvF0Y/65z3GLZHKRuTgVPY4Z6LVePNahaQ+tA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - chalk: 4.1.1 - jest-diff: 27.0.6 - jest-get-type: 27.0.6 - pretty-format: 27.0.6 - dev: true - - /jest-message-util/27.0.6: - resolution: {integrity: sha512-rBxIs2XK7rGy+zGxgi+UJKP6WqQ+KrBbD1YMj517HYN3v2BG66t3Xan3FWqYHKZwjdB700KiAJ+iES9a0M+ixw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/code-frame': 7.14.5 - '@jest/types': 27.0.6 - '@types/stack-utils': 2.0.1 - chalk: 4.1.1 - graceful-fs: 4.2.6 - micromatch: 4.0.4 - pretty-format: 27.0.6 - slash: 3.0.0 - stack-utils: 2.0.3 - dev: true - - /jest-mock/27.0.6: - resolution: {integrity: sha512-lzBETUoK8cSxts2NYXSBWT+EJNzmUVtVVwS1sU9GwE1DLCfGsngg+ZVSIe0yd0ZSm+y791esiuo+WSwpXJQ5Bw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.0.6 - '@types/node': 12.20.16 - dev: true - - /jest-pnp-resolver/1.2.2_jest-resolve@27.0.6: - resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - dependencies: - jest-resolve: 27.0.6 - dev: true - - /jest-regex-util/27.0.6: - resolution: {integrity: sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dev: true - - /jest-resolve-dependencies/27.0.6: - resolution: {integrity: sha512-mg9x9DS3BPAREWKCAoyg3QucCr0n6S8HEEsqRCKSPjPcu9HzRILzhdzY3imsLoZWeosEbJZz6TKasveczzpJZA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.0.6 - jest-regex-util: 27.0.6 - jest-snapshot: 27.0.6 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-resolve/27.0.6: - resolution: {integrity: sha512-yKmIgw2LgTh7uAJtzv8UFHGF7Dm7XfvOe/LQ3Txv101fLM8cx2h1QVwtSJ51Q/SCxpIiKfVn6G2jYYMDNHZteA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.0.6 - chalk: 4.1.1 - escalade: 3.1.1 - graceful-fs: 4.2.6 - jest-pnp-resolver: 1.2.2_jest-resolve@27.0.6 - jest-util: 27.0.6 - jest-validate: 27.0.6 - resolve: 1.20.0 - slash: 3.0.0 - dev: true - - /jest-runner/27.0.6: - resolution: {integrity: sha512-W3Bz5qAgaSChuivLn+nKOgjqNxM7O/9JOJoKDCqThPIg2sH/d4A/lzyiaFgnb9V1/w29Le11NpzTJSzga1vyYQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/console': 27.0.6 - '@jest/environment': 27.0.6 - '@jest/test-result': 27.0.6 - '@jest/transform': 27.0.6 - '@jest/types': 27.0.6 - '@types/node': 12.20.16 - chalk: 4.1.1 - emittery: 0.8.1 - exit: 0.1.2 - graceful-fs: 4.2.6 - jest-docblock: 27.0.6 - jest-environment-jsdom: 27.0.6 - jest-environment-node: 27.0.6 - jest-haste-map: 27.0.6 - jest-leak-detector: 27.0.6 - jest-message-util: 27.0.6 - jest-resolve: 27.0.6 - jest-runtime: 27.0.6 - jest-util: 27.0.6 - jest-worker: 27.0.6 - source-map-support: 0.5.19 - throat: 6.0.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: true - - /jest-runtime/27.0.6: - resolution: {integrity: sha512-BhvHLRVfKibYyqqEFkybsznKwhrsu7AWx2F3y9G9L95VSIN3/ZZ9vBpm/XCS2bS+BWz3sSeNGLzI3TVQ0uL85Q==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/console': 27.0.6 - '@jest/environment': 27.0.6 - '@jest/fake-timers': 27.0.6 - '@jest/globals': 27.0.6 - '@jest/source-map': 27.0.6 - '@jest/test-result': 27.0.6 - '@jest/transform': 27.0.6 - '@jest/types': 27.0.6 - '@types/yargs': 16.0.4 - chalk: 4.1.1 - cjs-module-lexer: 1.2.2 - collect-v8-coverage: 1.0.1 - exit: 0.1.2 - glob: 7.1.7 - graceful-fs: 4.2.6 - jest-haste-map: 27.0.6 - jest-message-util: 27.0.6 - jest-mock: 27.0.6 - jest-regex-util: 27.0.6 - jest-resolve: 27.0.6 - jest-snapshot: 27.0.6 - jest-util: 27.0.6 - jest-validate: 27.0.6 - slash: 3.0.0 - strip-bom: 4.0.0 - yargs: 16.2.0 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-serializer/27.0.6: - resolution: {integrity: sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@types/node': 12.20.16 - graceful-fs: 4.2.6 - dev: true - - /jest-snapshot/27.0.6: - resolution: {integrity: sha512-NTHaz8He+ATUagUgE7C/UtFcRoHqR2Gc+KDfhQIyx+VFgwbeEMjeP+ILpUTLosZn/ZtbNdCF5LkVnN/l+V751A==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/core': 7.14.8 - '@babel/generator': 7.14.8 - '@babel/parser': 7.14.8 - '@babel/plugin-syntax-typescript': 7.14.5_@babel+core@7.14.8 - '@babel/traverse': 7.14.8 - '@babel/types': 7.14.8 - '@jest/transform': 27.0.6 - '@jest/types': 27.0.6 - '@types/babel__traverse': 7.14.2 - '@types/prettier': 2.3.2 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.14.8 - chalk: 4.1.1 - expect: 27.0.6 - graceful-fs: 4.2.6 - jest-diff: 27.0.6 - jest-get-type: 27.0.6 - jest-haste-map: 27.0.6 - jest-matcher-utils: 27.0.6 - jest-message-util: 27.0.6 - jest-resolve: 27.0.6 - jest-util: 27.0.6 - natural-compare: 1.4.0 - pretty-format: 27.0.6 - semver: 7.3.5 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-util/27.0.6: - resolution: {integrity: sha512-1JjlaIh+C65H/F7D11GNkGDDZtDfMEM8EBXsvd+l/cxtgQ6QhxuloOaiayt89DxUvDarbVhqI98HhgrM1yliFQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.0.6 - '@types/node': 12.20.16 - chalk: 4.1.1 - graceful-fs: 4.2.6 - is-ci: 3.0.0 - picomatch: 2.3.0 - dev: true - - /jest-validate/27.0.6: - resolution: {integrity: sha512-yhZZOaMH3Zg6DC83n60pLmdU1DQE46DW+KLozPiPbSbPhlXXaiUTDlhHQhHFpaqIFRrInko1FHXjTRpjWRuWfA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.0.6 - camelcase: 6.2.0 - chalk: 4.1.1 - jest-get-type: 27.0.6 - leven: 3.1.0 - pretty-format: 27.0.6 - dev: true - - /jest-watcher/27.0.6: - resolution: {integrity: sha512-/jIoKBhAP00/iMGnTwUBLgvxkn7vsOweDrOTSPzc7X9uOyUtJIDthQBTI1EXz90bdkrxorUZVhJwiB69gcHtYQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/test-result': 27.0.6 - '@jest/types': 27.0.6 - '@types/node': 12.20.16 - ansi-escapes: 4.3.2 - chalk: 4.1.1 - jest-util: 27.0.6 - string-length: 4.0.2 - dev: true - - /jest-worker/27.0.6: - resolution: {integrity: sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA==} - engines: {node: '>= 10.13.0'} - dependencies: - '@types/node': 12.20.16 - merge-stream: 2.0.0 - supports-color: 8.1.1 - dev: true - - /jest/27.0.6: - resolution: {integrity: sha512-EjV8aETrsD0wHl7CKMibKwQNQc3gIRBXlTikBmmHUeVMKaPFxdcUIBfoDqTSXDoGJIivAYGqCWVlzCSaVjPQsA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': 27.0.6 - import-local: 3.0.2 - jest-cli: 27.0.6 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - - /js-tokens/4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - dev: true - - /js-yaml/3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - dev: true - - /jsdom/16.6.0: - resolution: {integrity: sha512-Ty1vmF4NHJkolaEmdjtxTfSfkdb8Ywarwf63f+F8/mDD1uLSSWDxDuMiZxiPhwunLrn9LOSVItWj4bLYsLN3Dg==} - engines: {node: '>=10'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - dependencies: - abab: 2.0.5 - acorn: 8.4.1 - acorn-globals: 6.0.0 - cssom: 0.4.4 - cssstyle: 2.3.0 - data-urls: 2.0.0 - decimal.js: 10.3.1 - domexception: 2.0.1 - escodegen: 2.0.0 - form-data: 3.0.1 - html-encoding-sniffer: 2.0.1 - http-proxy-agent: 4.0.1 - https-proxy-agent: 5.0.0 - is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.0 - parse5: 6.0.1 - saxes: 5.0.1 - symbol-tree: 3.2.4 - tough-cookie: 4.0.0 - w3c-hr-time: 1.0.2 - w3c-xmlserializer: 2.0.0 - webidl-conversions: 6.1.0 - whatwg-encoding: 1.0.5 - whatwg-mimetype: 2.3.0 - whatwg-url: 8.7.0 - ws: 7.5.3 - xml-name-validator: 3.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - - /jsesc/2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - dev: true - - /json-parse-even-better-errors/2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - dev: true - - /json-schema-traverse/0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - dev: true - - /json-schema-traverse/1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - dev: true - - /json-stable-stringify-without-jsonify/1.0.1: - resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=} - dev: true - - /json5/2.2.0: - resolution: {integrity: sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==} - engines: {node: '>=6'} - hasBin: true - dependencies: - minimist: 1.2.5 - dev: true - - /kleur/3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - dev: true - - /leven/3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - dev: true - - /levn/0.3.0: - resolution: {integrity: sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.1.2 - type-check: 0.3.2 - dev: true - - /levn/0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - dev: true - - /lines-and-columns/1.1.6: - resolution: {integrity: sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=} - dev: true - - /lint-staged/11.1.0: - resolution: {integrity: sha512-pzwEf+NKbTauAlk7gPPwTfulRXESEPZCSFXYfg20F220UOObebxu5uL5mkr9csQLNOM2Ydfrt3DJXakzAL7aaQ==} - hasBin: true - dependencies: - chalk: 4.1.1 - cli-truncate: 2.1.0 - commander: 7.2.0 - cosmiconfig: 7.0.0 - debug: 4.3.2 - dedent: 0.7.0 - enquirer: 2.3.6 - execa: 5.0.0 - listr2: 3.11.0_enquirer@2.3.6 - log-symbols: 4.1.0 - micromatch: 4.0.4 - normalize-path: 3.0.0 - please-upgrade-node: 3.2.0 - string-argv: 0.3.1 - stringify-object: 3.3.0 - transitivePeerDependencies: - - supports-color - dev: true - - /listr2/3.11.0_enquirer@2.3.6: - resolution: {integrity: sha512-XLJVe2JgXCyQTa3FbSv11lkKExYmEyA4jltVo8z4FX10Vt1Yj8IMekBfwim0BSOM9uj1QMTJvDQQpHyuPbB/dQ==} - engines: {node: '>=10.0.0'} - peerDependencies: - enquirer: '>= 2.3.0 < 3' - dependencies: - cli-truncate: 2.1.0 - colorette: 1.2.2 - enquirer: 2.3.6 - log-update: 4.0.0 - p-map: 4.0.0 - rxjs: 6.6.7 - through: 2.3.8 - wrap-ansi: 7.0.0 - dev: true - - /locate-path/5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - dependencies: - p-locate: 4.1.0 - dev: true - - /lodash.clonedeep/4.5.0: - resolution: {integrity: sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=} - dev: true - - /lodash.merge/4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - dev: true - - /lodash.truncate/4.4.2: - resolution: {integrity: sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=} - dev: true - - /lodash/4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: true - - /log-symbols/4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - dependencies: - chalk: 4.1.1 - is-unicode-supported: 0.1.0 - dev: true - - /log-update/4.0.0: - resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} - engines: {node: '>=10'} - dependencies: - ansi-escapes: 4.3.2 - cli-cursor: 3.1.0 - slice-ansi: 4.0.0 - wrap-ansi: 6.2.0 - dev: true - - /lru-cache/6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - dev: true - - /make-dir/3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} - dependencies: - semver: 6.3.0 - dev: true - - /make-error/1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - dev: true - - /makeerror/1.0.11: - resolution: {integrity: sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=} - dependencies: - tmpl: 1.0.4 - dev: true - - /merge-stream/2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - /merge2/1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - dev: true - - /micromatch/4.0.4: - resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==} - engines: {node: '>=8.6'} - dependencies: - braces: 3.0.2 - picomatch: 2.3.0 - dev: true - - /mime-db/1.49.0: - resolution: {integrity: sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==} - engines: {node: '>= 0.6'} - dev: true - - /mime-types/2.1.32: - resolution: {integrity: sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==} - engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.49.0 - dev: true - - /mimic-fn/2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - /minimatch/3.0.4: - resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} - dependencies: - brace-expansion: 1.1.11 - dev: true - - /minimist/1.2.5: - resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} - dev: true - - /mkdirp/1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - dev: true - - /ms/2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - /ms/2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - dev: false - - /natural-compare/1.4.0: - resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=} - dev: true - - /new-github-issue-url/0.2.1: - resolution: {integrity: sha512-md4cGoxuT4T4d/HDOXbrUHkTKrp/vp+m3aOA7XXVYwNsUNMK49g3SQicTSeV5GIz/5QVGAeYRAOlyp9OvlgsYA==} - engines: {node: '>=10'} - dev: false - - /node-int64/0.4.0: - resolution: {integrity: sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=} - dev: true - - /node-modules-regexp/1.0.0: - resolution: {integrity: sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=} - engines: {node: '>=0.10.0'} - dev: true - - /node-releases/1.1.73: - resolution: {integrity: sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==} - dev: true - - /normalize-path/3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - dev: true - - /npm-run-path/4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - dependencies: - path-key: 3.1.1 - - /nwsapi/2.2.0: - resolution: {integrity: sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==} - dev: true - - /once/1.4.0: - resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} - dependencies: - wrappy: 1.0.2 - dev: true - - /onetime/5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - dependencies: - mimic-fn: 2.1.0 - - /optionator/0.8.3: - resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} - engines: {node: '>= 0.8.0'} - dependencies: - deep-is: 0.1.3 - fast-levenshtein: 2.0.6 - levn: 0.3.0 - prelude-ls: 1.1.2 - type-check: 0.3.2 - word-wrap: 1.2.3 - dev: true - - /optionator/0.9.1: - resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} - engines: {node: '>= 0.8.0'} - dependencies: - deep-is: 0.1.3 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.3 - dev: true - - /p-each-series/2.2.0: - resolution: {integrity: sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==} - engines: {node: '>=8'} - dev: true - - /p-limit/2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - dependencies: - p-try: 2.2.0 - dev: true - - /p-locate/4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - dependencies: - p-limit: 2.3.0 - dev: true - - /p-map/4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} - dependencies: - aggregate-error: 3.1.0 - dev: true - - /p-retry/4.5.0: - resolution: {integrity: sha512-5Hwh4aVQSu6BEP+w2zKlVXtFAaYQe1qWuVADSgoeVlLjwe/Q/AMSoRR4MDeaAfu8llT+YNbEijWu/YF3m6avkg==} - engines: {node: '>=8'} - dependencies: - '@types/retry': 0.12.0 - retry: 0.12.0 - dev: false - - /p-try/2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - dev: true - - /parent-module/1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - dependencies: - callsites: 3.1.0 - dev: true - - /parse-json/5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - dependencies: - '@babel/code-frame': 7.14.5 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.1.6 - dev: true - - /parse5/6.0.1: - resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} - dev: true - - /path-exists/4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - dev: true - - /path-is-absolute/1.0.1: - resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} - engines: {node: '>=0.10.0'} - dev: true - - /path-key/3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - /path-parse/1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: true - - /path-type/4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - dev: true - - /picomatch/2.3.0: - resolution: {integrity: sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==} - engines: {node: '>=8.6'} - dev: true - - /pirates/4.0.1: - resolution: {integrity: sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==} - engines: {node: '>= 6'} - dependencies: - node-modules-regexp: 1.0.0 - dev: true - - /pkg-dir/4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - dependencies: - find-up: 4.1.0 - dev: true - - /please-upgrade-node/3.2.0: - resolution: {integrity: sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==} - dependencies: - semver-compare: 1.0.0 - dev: true - - /prelude-ls/1.1.2: - resolution: {integrity: sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=} - engines: {node: '>= 0.8.0'} - dev: true - - /prelude-ls/1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - dev: true - - /prettier-linter-helpers/1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} - engines: {node: '>=6.0.0'} - dependencies: - fast-diff: 1.2.0 - dev: true - - /prettier/2.3.2: - resolution: {integrity: sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==} - engines: {node: '>=10.13.0'} - hasBin: true - dev: true - - /pretty-format/26.6.2: - resolution: {integrity: sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==} - engines: {node: '>= 10'} - dependencies: - '@jest/types': 26.6.2 - ansi-regex: 5.0.0 - ansi-styles: 4.3.0 - react-is: 17.0.2 - dev: true - - /pretty-format/27.0.6: - resolution: {integrity: sha512-8tGD7gBIENgzqA+UBzObyWqQ5B778VIFZA/S66cclyd5YkFLYs2Js7gxDKf0MXtTc9zcS7t1xhdfcElJ3YIvkQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.0.6 - ansi-regex: 5.0.0 - ansi-styles: 5.2.0 - react-is: 17.0.2 - dev: true - - /progress/2.0.3: - resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} - engines: {node: '>=0.4.0'} - dev: true - - /prompts/2.4.1: - resolution: {integrity: sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==} - engines: {node: '>= 6'} - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - dev: true - - /psl/1.8.0: - resolution: {integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==} - dev: true - - /punycode/2.1.1: - resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} - engines: {node: '>=6'} - dev: true - - /queue-microtask/1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: true - - /react-is/17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - dev: true - - /regexpp/3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} - dev: true - - /require-directory/2.1.1: - resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} - engines: {node: '>=0.10.0'} - dev: true - - /require-from-string/2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - dev: true - - /resolve-cwd/3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} - dependencies: - resolve-from: 5.0.0 - dev: true - - /resolve-from/4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - dev: true - - /resolve-from/5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - dev: true - - /resolve/1.20.0: - resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==} - dependencies: - is-core-module: 2.5.0 - path-parse: 1.0.7 - dev: true - - /restore-cursor/3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.3 - dev: true - - /retry/0.12.0: - resolution: {integrity: sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=} - engines: {node: '>= 4'} - dev: false - - /reusify/1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: true - - /rimraf/3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true - dependencies: - glob: 7.1.7 - dev: true - - /run-parallel/1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - dependencies: - queue-microtask: 1.2.3 - dev: true - - /rxjs/6.6.7: - resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} - engines: {npm: '>=2.0.0'} - dependencies: - tslib: 1.14.1 - dev: true - - /safe-buffer/5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - dev: true - - /safer-buffer/2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - dev: true - - /saxes/5.0.1: - resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} - engines: {node: '>=10'} - dependencies: - xmlchars: 2.2.0 - dev: true - - /semver-compare/1.0.0: - resolution: {integrity: sha1-De4hahyUGrN+nvsXiPavxf9VN/w=} - dev: true - - /semver/6.3.0: - resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} - hasBin: true - dev: true - - /semver/7.3.5: - resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: true - - /shebang-command/2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - dependencies: - shebang-regex: 3.0.0 - - /shebang-regex/3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - /signal-exit/3.0.3: - resolution: {integrity: sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==} - - /sisteransi/1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - dev: true - - /slash/3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - dev: true - - /slice-ansi/3.0.0: - resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} - engines: {node: '>=8'} - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - dev: true - - /slice-ansi/4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - dev: true - - /source-map-support/0.5.19: - resolution: {integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==} - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - dev: true - - /source-map/0.5.7: - resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=} - engines: {node: '>=0.10.0'} - dev: true - - /source-map/0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - dev: true - - /source-map/0.7.3: - resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} - engines: {node: '>= 8'} - dev: true - - /sprintf-js/1.0.3: - resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} - dev: true - - /stack-utils/2.0.3: - resolution: {integrity: sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==} - engines: {node: '>=10'} - dependencies: - escape-string-regexp: 2.0.0 - dev: true - - /string-argv/0.3.1: - resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} - engines: {node: '>=0.6.19'} - dev: true - - /string-length/4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} - dependencies: - char-regex: 1.0.2 - strip-ansi: 6.0.0 - dev: true - - /string-width/4.2.2: - resolution: {integrity: sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==} - engines: {node: '>=8'} - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.0 - dev: true - - /stringify-object/3.3.0: - resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} - engines: {node: '>=4'} - dependencies: - get-own-enumerable-property-symbols: 3.0.2 - is-obj: 1.0.1 - is-regexp: 1.0.0 - dev: true - - /strip-ansi/6.0.0: - resolution: {integrity: sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==} - engines: {node: '>=8'} - dependencies: - ansi-regex: 5.0.0 - dev: true - - /strip-bom/4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - dev: true - - /strip-final-newline/2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - - /strip-json-comments/3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - dev: true - - /supports-color/5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - dependencies: - has-flag: 3.0.0 - dev: true - - /supports-color/7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - - /supports-color/8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - dependencies: - has-flag: 4.0.0 - dev: true - - /supports-hyperlinks/2.2.0: - resolution: {integrity: sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==} - engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - supports-color: 7.2.0 - - /symbol-tree/3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - dev: true - - /table/6.7.1: - resolution: {integrity: sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==} - engines: {node: '>=10.0.0'} - dependencies: - ajv: 8.6.2 - lodash.clonedeep: 4.5.0 - lodash.truncate: 4.4.2 - slice-ansi: 4.0.0 - string-width: 4.2.2 - strip-ansi: 6.0.0 - dev: true - - /terminal-link/2.1.1: - resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} - engines: {node: '>=8'} - dependencies: - ansi-escapes: 4.3.2 - supports-hyperlinks: 2.2.0 - - /test-exclude/6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} - dependencies: - '@istanbuljs/schema': 0.1.3 - glob: 7.1.7 - minimatch: 3.0.4 - dev: true - - /text-table/0.2.0: - resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=} - dev: true - - /throat/6.0.1: - resolution: {integrity: sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==} - dev: true - - /through/2.3.8: - resolution: {integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=} - dev: true - - /tmpl/1.0.4: - resolution: {integrity: sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=} - dev: true - - /to-fast-properties/2.0.0: - resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=} - engines: {node: '>=4'} - dev: true - - /to-regex-range/5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - dependencies: - is-number: 7.0.0 - dev: true - - /tough-cookie/4.0.0: - resolution: {integrity: sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==} - engines: {node: '>=6'} - dependencies: - psl: 1.8.0 - punycode: 2.1.1 - universalify: 0.1.2 - dev: true - - /tr46/2.1.0: - resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==} - engines: {node: '>=8'} - dependencies: - punycode: 2.1.1 - dev: true - - /ts-jest/27.0.3_jest@27.0.6+typescript@4.3.5: - resolution: {integrity: sha512-U5rdMjnYam9Ucw+h0QvtNDbc5+88nxt7tbIvqaZUhFrfG4+SkWhMXjejCLVGcpILTPuV+H3W/GZDZrnZFpPeXw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - hasBin: true - peerDependencies: - jest: ^27.0.0 - typescript: '>=3.8 <5.0' - dependencies: - bs-logger: 0.2.6 - buffer-from: 1.1.2 - fast-json-stable-stringify: 2.1.0 - jest: 27.0.6 - jest-util: 27.0.6 - json5: 2.2.0 - lodash: 4.17.21 - make-error: 1.3.6 - mkdirp: 1.0.4 - semver: 7.3.5 - typescript: 4.3.5 - yargs-parser: 20.2.9 - dev: true - - /tslib/1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - dev: true - - /tsutils/3.21.0_typescript@4.3.5: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - dependencies: - tslib: 1.14.1 - typescript: 4.3.5 - dev: true - - /type-check/0.3.2: - resolution: {integrity: sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.1.2 - dev: true - - /type-check/0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - dev: true - - /type-detect/4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - dev: true - - /type-fest/0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - dev: true - - /type-fest/0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - - /typedarray-to-buffer/3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - dependencies: - is-typedarray: 1.0.0 - dev: true - - /typescript/4.3.5: - resolution: {integrity: sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==} - engines: {node: '>=4.2.0'} - hasBin: true - dev: true - - /undici/3.3.6: - resolution: {integrity: sha512-/j3YTZ5AobMB4ZrTY72mzM54uFUX32v0R/JRW9G2vOyF1uSKYAx+WT8dMsAcRS13TOFISv094TxIyWYk+WEPsA==} - dev: false - - /universalify/0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - dev: true - - /uri-js/4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - dependencies: - punycode: 2.1.1 - dev: true - - /v8-compile-cache/2.3.0: - resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} - dev: true - - /v8-to-istanbul/8.0.0: - resolution: {integrity: sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg==} - engines: {node: '>=10.12.0'} - dependencies: - '@types/istanbul-lib-coverage': 2.0.3 - convert-source-map: 1.8.0 - source-map: 0.7.3 - dev: true - - /w3c-hr-time/1.0.2: - resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} - dependencies: - browser-process-hrtime: 1.0.0 - dev: true - - /w3c-xmlserializer/2.0.0: - resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==} - engines: {node: '>=10'} - dependencies: - xml-name-validator: 3.0.0 - dev: true - - /walker/1.0.7: - resolution: {integrity: sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=} - dependencies: - makeerror: 1.0.11 - dev: true - - /webidl-conversions/5.0.0: - resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==} - engines: {node: '>=8'} - dev: true - - /webidl-conversions/6.1.0: - resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==} - engines: {node: '>=10.4'} - dev: true - - /whatwg-encoding/1.0.5: - resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==} - dependencies: - iconv-lite: 0.4.24 - dev: true - - /whatwg-mimetype/2.3.0: - resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==} - dev: true - - /whatwg-url/8.7.0: - resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==} - engines: {node: '>=10'} - dependencies: - lodash: 4.17.21 - tr46: 2.1.0 - webidl-conversions: 6.1.0 - dev: true - - /which/2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - dependencies: - isexe: 2.0.0 - - /word-wrap/1.2.3: - resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} - engines: {node: '>=0.10.0'} - dev: true - - /wrap-ansi/6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.2 - strip-ansi: 6.0.0 - dev: true - - /wrap-ansi/7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.2 - strip-ansi: 6.0.0 - dev: true - - /wrappy/1.0.2: - resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} - dev: true - - /write-file-atomic/3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - dependencies: - imurmurhash: 0.1.4 - is-typedarray: 1.0.0 - signal-exit: 3.0.3 - typedarray-to-buffer: 3.1.5 - dev: true - - /ws/7.5.3: - resolution: {integrity: sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: true - - /xml-name-validator/3.0.0: - resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==} - dev: true - - /xmlchars/2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - dev: true - - /y18n/5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - dev: true - - /yallist/4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - dev: true - - /yaml/1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - dev: true - - /yargs-parser/20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - dev: true - - /yargs/16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} - dependencies: - cliui: 7.0.4 - escalade: 3.1.1 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.2 - y18n: 5.0.8 - yargs-parser: 20.2.9 - dev: true diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b44ac5daf046..da729f56e504 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1650,15 +1650,6 @@ packages: engines: {node: '>=8.0.0'} dev: true - /@prisma/debug/2.28.0: - resolution: {integrity: sha512-SKihAtTPDqfm/iyLVs5xf1uLu4Ev+zcFLc8vdiGofpHTkeiu3qU1OSDPnrQ0nwn0IJsp3SeRbV0NRWTwL5Z71w==} - dependencies: - debug: 4.3.2 - ms: 2.1.3 - transitivePeerDependencies: - - supports-color - dev: true - /@prisma/debug/2.29.1: resolution: {integrity: sha512-8OAh4ozVCvlcZU1HaP7QTWIA6Aqzs98nYgTYrxjDLqXJcytIvpIjHxfgqKhuPQ8MTkUm9cI5TJGswwcjJt0/0g==} dependencies: @@ -1668,8 +1659,8 @@ packages: transitivePeerDependencies: - supports-color - /@prisma/debug/2.30.0-dev.13: - resolution: {integrity: sha512-zsfFjL0hc00oayZGD2HV+sAMdZ3QtGT6wpdKsOVKcVfjraxSgQ/PoE2yLhRS7PI4UhchcR/PuG3RRixhQ8aTxg==} + /@prisma/debug/2.30.0-dev.15: + resolution: {integrity: sha512-h1juRwEQ2f5ic59qc9LfYSs7argOC3mbMjSykVi0UyQeAdJrF1pECW2HJLVmocBPsWAUwgwdmPRfVxo4UtwPuA==} dependencies: '@types/debug': 4.1.7 debug: 4.3.2 @@ -1678,13 +1669,13 @@ packages: - supports-color dev: true - /@prisma/engine-core/2.30.0-dev.13: - resolution: {integrity: sha512-YlCrEBN/cTksfJu1L89OGGw0vp4XcoH+nftIElnxOdwTPWfRixLetHXbA7cySaymtJVVQKTHvShwQ1cv6FFuIg==} + /@prisma/engine-core/2.30.0-dev.15: + resolution: {integrity: sha512-iW9eYQx4LvulhqU/yGXaFeWhehLWhynXZ0CqDaZNcoiH60q/M1bmTQ2L+odZ1CIWEVm7Iqk7xKei3OUSwPcJaA==} dependencies: - '@prisma/debug': 2.30.0-dev.13 - '@prisma/engines': 2.30.0-6.6a90cd8ab569d4e90b1df610be610094bafc1fdf - '@prisma/generator-helper': 2.30.0-dev.13 - '@prisma/get-platform': 2.30.0-6.6a90cd8ab569d4e90b1df610be610094bafc1fdf + '@prisma/debug': 2.30.0-dev.15 + '@prisma/engines': 2.30.0-8.23063be2ac07bdf01cb26cb4f6762bd3a65dd8a9 + '@prisma/generator-helper': 2.30.0-dev.15 + '@prisma/get-platform': 2.30.0-8.23063be2ac07bdf01cb26cb4f6762bd3a65dd8a9 chalk: 4.1.2 execa: 5.1.1 get-stream: 6.0.1 @@ -1700,39 +1691,10 @@ packages: /@prisma/engines-version/2.30.0-8.23063be2ac07bdf01cb26cb4f6762bd3a65dd8a9: resolution: {integrity: sha512-q2teG7LogbhZF0ASKyYKBXM1/PKjDii97f5o1y20MxyO0V+5xQsqY64h9r+nK5OmDjaSfE0D5kKB/0vpSnsERA==} - /@prisma/engines/2.30.0-6.6a90cd8ab569d4e90b1df610be610094bafc1fdf: - resolution: {integrity: sha512-0IGdeW06xHGE7+9At5SIo9NhvFo4q78X5dgjlMVd7Bw68ngOUWGmNTgSPt93kPkPwTkZwLGL+EGVVd9i7ToLTg==} - requiresBuild: true - dev: true - /@prisma/engines/2.30.0-8.23063be2ac07bdf01cb26cb4f6762bd3a65dd8a9: resolution: {integrity: sha512-uOaJ19T1cJZAiblULWFDeTB/+KnLjNhFcBQmljmbx6zEpNoY0D1tI0/W1pnN4E+qp6lwp59vx6NSGWuLoAd7ng==} requiresBuild: true - /@prisma/fetch-engine/2.30.0-6.6a90cd8ab569d4e90b1df610be610094bafc1fdf: - resolution: {integrity: sha512-rS6CG8xR+E+JXgsZhRM5YGnuM/9/GqfliqDLl/p0Nq7oDIW/3kJSUIHjLW610hKCt0F0ekhldJFNZlI9i9x32Q==} - dependencies: - '@prisma/debug': 2.28.0 - '@prisma/get-platform': 2.30.0-6.6a90cd8ab569d4e90b1df610be610094bafc1fdf - 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-8.23063be2ac07bdf01cb26cb4f6762bd3a65dd8a9: resolution: {integrity: sha512-t01Eni+tmApIEF+zthyd+CJSWmf6gGnwed5URF/NIXID744C/4E8p4t2TXbLADl9bOwov5uLEKAWgfmaHKIxdQ==} dependencies: @@ -1756,10 +1718,10 @@ packages: transitivePeerDependencies: - supports-color - /@prisma/generator-helper/2.30.0-dev.13: - resolution: {integrity: sha512-JydkjAX9ZFiElp7O1zZEVFk8b01d4j5FkJxwuBYVYC1ts+N1ImxVJjl6JYpx28nA05sEcOQvA3NsuiyUEzvw4w==} + /@prisma/generator-helper/2.30.0-dev.15: + resolution: {integrity: sha512-SHVLIcY+I1+VlwHvE4fO7Ignj/JVdpHPUgQMdkdsmetwPqtM1oD3C+Rb36VDSvy0wjdBRiXBAk7NaBVHsPxQFA==} dependencies: - '@prisma/debug': 2.30.0-dev.13 + '@prisma/debug': 2.30.0-dev.15 '@types/cross-spawn': 6.0.2 chalk: 4.1.2 cross-spawn: 7.0.3 @@ -1767,14 +1729,6 @@ packages: - supports-color dev: true - /@prisma/get-platform/2.30.0-6.6a90cd8ab569d4e90b1df610be610094bafc1fdf: - resolution: {integrity: sha512-mQd1vfQ77tAG7veIqX56A1gwcK8GWpQiE88qavRjLGpXDqTUm6ZfxeuCWzemoeiS4xCk7qyIHwpku/TRME0F+A==} - dependencies: - '@prisma/debug': 2.28.0 - transitivePeerDependencies: - - supports-color - dev: true - /@prisma/get-platform/2.30.0-8.23063be2ac07bdf01cb26cb4f6762bd3a65dd8a9: resolution: {integrity: sha512-9yDOAiaTCYQuGbkvGePW9ilFEcTeCkB7l1k68+OpcqlAfa7NRoRHpI7p+FYeJrpHDWmf8NoeG7+McfChn6Kibg==} dependencies: @@ -1782,15 +1736,15 @@ packages: transitivePeerDependencies: - supports-color - /@prisma/sdk/2.30.0-dev.13: - resolution: {integrity: sha512-kJvjGx5FmLRlkoGqH9Kl5bUcUEY0ImGykOMv/zfrc+6T8dVaZApKWNTA87hhbqlgk1Xx7QZs5/VCjv/cA6vvrA==} + /@prisma/sdk/2.30.0-dev.15: + resolution: {integrity: sha512-VyIOrg6xfSUOar6Bx0tPRO2v4zkNPk9xwVhgw4/D8fZrAoPPNoVWsV259bIjJ/wR3i6WcQ8wsI4kPBsKdk2oUw==} dependencies: - '@prisma/debug': 2.30.0-dev.13 - '@prisma/engine-core': 2.30.0-dev.13 - '@prisma/engines': 2.30.0-6.6a90cd8ab569d4e90b1df610be610094bafc1fdf - '@prisma/fetch-engine': 2.30.0-6.6a90cd8ab569d4e90b1df610be610094bafc1fdf - '@prisma/generator-helper': 2.30.0-dev.13 - '@prisma/get-platform': 2.30.0-6.6a90cd8ab569d4e90b1df610be610094bafc1fdf + '@prisma/debug': 2.30.0-dev.15 + '@prisma/engine-core': 2.30.0-dev.15 + '@prisma/engines': 2.30.0-8.23063be2ac07bdf01cb26cb4f6762bd3a65dd8a9 + '@prisma/fetch-engine': 2.30.0-8.23063be2ac07bdf01cb26cb4f6762bd3a65dd8a9 + '@prisma/generator-helper': 2.30.0-dev.15 + '@prisma/get-platform': 2.30.0-8.23063be2ac07bdf01cb26cb4f6762bd3a65dd8a9 '@timsuchanek/copy': 1.4.5 archiver: 4.0.2 arg: 5.0.0 @@ -1824,13 +1778,13 @@ packages: - supports-color dev: true - /@prisma/studio-pcw/0.419.0_@prisma+sdk@2.30.0-dev.13: + /@prisma/studio-pcw/0.419.0_@prisma+sdk@2.30.0-dev.15: resolution: {integrity: sha512-74YPH6COysslPnmt/qq12A4iJCgUur1fXilmmD2s71s/iJrkmZ9h5Z6BQe9LjMW9K3Byz99G7xD6vVMajYjSWA==} peerDependencies: '@prisma/client': '*' '@prisma/sdk': '*' dependencies: - '@prisma/sdk': 2.30.0-dev.13 + '@prisma/sdk': 2.30.0-dev.15 debug: 4.3.1 lodash: 4.17.21 transitivePeerDependencies: @@ -1840,8 +1794,8 @@ packages: /@prisma/studio-server/0.419.0: resolution: {integrity: sha512-b6zY2PV/4fyfTi7VlMYPrB+nJUH94IIQb42z1uYHPTJhEZy1NrjZr3pmTVcyMUS2KR+04ySJ85fol/lOodS5qQ==} dependencies: - '@prisma/sdk': 2.30.0-dev.13 - '@prisma/studio-pcw': 0.419.0_@prisma+sdk@2.30.0-dev.13 + '@prisma/sdk': 2.30.0-dev.15 + '@prisma/studio-pcw': 0.419.0_@prisma+sdk@2.30.0-dev.15 '@prisma/studio-transports': 0.419.0 '@sentry/node': 6.2.5 checkpoint-client: 1.1.20 @@ -1850,7 +1804,6 @@ packages: express: 4.17.1 untildify: 4.0.0 transitivePeerDependencies: - - '@prisma/client' - supports-color dev: true From 230bdb46ac56399908c78ff34a75c93586a18bb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joe=CC=88l?= Date: Mon, 16 Aug 2021 16:37:36 +0200 Subject: [PATCH 03/14] test(cli): remove test.sh and port to Jest --- packages/cli/fixtures/.gitignore | 2 - .../custom generator/prisma/schema.prisma | 34 ---- .../introspection-warnings/.gitignore | 1 - .../introspection-warnings/schema.prisma | 51 ------ .../introspection-warnings/warnings.db | Bin 20480 -> 0 bytes packages/cli/fixtures/project/package.json | 5 - .../project/subdir/dynamic-denylist.prisma | 21 --- packages/cli/fixtures/test.sh | 134 ---------------- packages/cli/package.json | 5 +- .../src/__tests__/commands/Generate.test.ts | 151 ++++++++++++++++-- .../__snapshots__/Generate.test.ts.snap | 4 +- .../subdirectory}/schema.prisma | 0 .../generate-from-project-dir/schema.prisma} | 13 +- .../__tests__/fixtures/generate/schema.prisma | 8 - packages/cli/src/bin.ts | 14 +- packages/cli/src/commands/Generate.ts | 8 +- packages/cli/src/commands/Version.ts | 2 +- 17 files changed, 155 insertions(+), 298 deletions(-) delete mode 100644 packages/cli/fixtures/.gitignore delete mode 100644 packages/cli/fixtures/custom generator/prisma/schema.prisma delete mode 100644 packages/cli/fixtures/introspection-warnings/.gitignore delete mode 100644 packages/cli/fixtures/introspection-warnings/schema.prisma delete mode 100644 packages/cli/fixtures/introspection-warnings/warnings.db delete mode 100644 packages/cli/fixtures/project/package.json delete mode 100644 packages/cli/fixtures/project/subdir/dynamic-denylist.prisma delete mode 100755 packages/cli/fixtures/test.sh rename packages/cli/{fixtures/project/subdir => src/__tests__/fixtures/generate-from-parent-dir/subdirectory}/schema.prisma (100%) rename packages/cli/{fixtures/project/subdir/denylist.prisma => src/__tests__/fixtures/generate-from-project-dir/schema.prisma} (69%) delete mode 100644 packages/cli/src/__tests__/fixtures/generate/schema.prisma diff --git a/packages/cli/fixtures/.gitignore b/packages/cli/fixtures/.gitignore deleted file mode 100644 index b2150774c817..000000000000 --- a/packages/cli/fixtures/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -@prisma -!custom\ generator/prisma \ No newline at end of file diff --git a/packages/cli/fixtures/custom generator/prisma/schema.prisma b/packages/cli/fixtures/custom generator/prisma/schema.prisma deleted file mode 100644 index 65ad15b5bffa..000000000000 --- a/packages/cli/fixtures/custom generator/prisma/schema.prisma +++ /dev/null @@ -1,34 +0,0 @@ -generator min { - // https://github.com/timsuchanek/minimal-generator - provider = "npx @timsuchanek/minimal-generator" -} - -datasource db { - provider = "sqlite" - url = env("ENV_VAR_DOES_NOT_EXIST") -} - -model Post { - id Int @id @default(autoincrement()) - createdAt DateTime @default(now()) - title String - content String? - published Boolean @default(false) - author User @relation(fields: [authorId], references: [id]) - authorId Int -} - -model Profile { - id Int @id @default(autoincrement()) - bio String? - user User @relation(fields: [userId], references: [id]) - userId Int @unique -} - -model User { - id Int @id @default(autoincrement()) - email String @unique - name String? - posts Post[] - profile Profile? -} diff --git a/packages/cli/fixtures/introspection-warnings/.gitignore b/packages/cli/fixtures/introspection-warnings/.gitignore deleted file mode 100644 index cc2a8acc17ef..000000000000 --- a/packages/cli/fixtures/introspection-warnings/.gitignore +++ /dev/null @@ -1 +0,0 @@ -!warnings.db \ No newline at end of file diff --git a/packages/cli/fixtures/introspection-warnings/schema.prisma b/packages/cli/fixtures/introspection-warnings/schema.prisma deleted file mode 100644 index fed6af69c818..000000000000 --- a/packages/cli/fixtures/introspection-warnings/schema.prisma +++ /dev/null @@ -1,51 +0,0 @@ -datasource db { - provider = "sqlite" - url = "file:./warnings.db" -} - -model column_name_that_becomes_empty_string { - field1 Int @id @default(autoincrement()) - // This field was commented out because of an invalid name. Please provide a valid one that matches [a-zA-Z][a-zA-Z0-9_]* - // 12345 Int? @map("12345") -} - -model unsupported_type { - field1 Int @id @default(autoincrement()) - unsupported Unsupported("binary(50)")? -} - -model column_name_that_becomes_empty_string2 { - field2 Int @id @default(autoincrement()) - // This field was commented out because of an invalid name. Please provide a valid one that matches [a-zA-Z][a-zA-Z0-9_]* - // 1 Int? @map("1") - // This field was commented out because of an invalid name. Please provide a valid one that matches [a-zA-Z][a-zA-Z0-9_]* - // 2 Int? @map("2") - // This field was commented out because of an invalid name. Please provide a valid one that matches [a-zA-Z][a-zA-Z0-9_]* - // 3 Int? @map("3") - // This field was commented out because of an invalid name. Please provide a valid one that matches [a-zA-Z][a-zA-Z0-9_]* - // 4 Int? @map("4") - // This field was commented out because of an invalid name. Please provide a valid one that matches [a-zA-Z][a-zA-Z0-9_]* - // 5 Int? @map("5") - // This field was commented out because of an invalid name. Please provide a valid one that matches [a-zA-Z][a-zA-Z0-9_]* - // 6 Int? @map("6") - // This field was commented out because of an invalid name. Please provide a valid one that matches [a-zA-Z][a-zA-Z0-9_]* - // 7 Int? @map("7") - // This field was commented out because of an invalid name. Please provide a valid one that matches [a-zA-Z][a-zA-Z0-9_]* - // 8 Int? @map("8") - // This field was commented out because of an invalid name. Please provide a valid one that matches [a-zA-Z][a-zA-Z0-9_]* - // 9 Int? @map("9") - // This field was commented out because of an invalid name. Please provide a valid one that matches [a-zA-Z][a-zA-Z0-9_]* - // 10 Int? @map("10") - // This field was commented out because of an invalid name. Please provide a valid one that matches [a-zA-Z][a-zA-Z0-9_]* - // 11 Int? @map("11") - // This field was commented out because of an invalid name. Please provide a valid one that matches [a-zA-Z][a-zA-Z0-9_]* - // 999999999999 Int? @map("999999999999") -} - -/// The underlying table does not contain a valid unique identifier and can therefore currently not be handled by the Prisma Client. -model no_unique_identifier { - field1 Unsupported("integer key") - field2 Int? - - @@ignore -} diff --git a/packages/cli/fixtures/introspection-warnings/warnings.db b/packages/cli/fixtures/introspection-warnings/warnings.db deleted file mode 100644 index 6683b38e8bdb2a1d39e9fd81a70e96a1e9235467..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20480 zcmeI#?`zXQ9LMow%Lpi)d)BA-MA*Pde=KSTf>rCIAgG;VkCN2hW-z(L^zxt&EeQS% z{#Rs4ExOi`W!u&(AuP*ss_US-7H$4K zzZT72-2CI$v7WZh8&$x0cw{{~JpA1FUERS%|!d)2Nt=Z*nSBriCh#v4;9dX1ABy)EzQ2^I^|vw8 zHR$KeAmbTio*87G8)RM>WO@dfcFQDWBHgRC^?ly0-N}#MzS}%KwP%lSE3s6QGS9O@ z%WJN8;9qFykyv3q-N)AQ_E<96&S3rZD# zFJ%yqrP6U##l^aJ`^$4!7uhn8jr(AA<7^mrX1mSHOMCXxeD@pe&1) -if [[ ${INTROSPECTION} != *"column_name_that_becomes_empty_string"* ]]; then - echo "prisma introspect column_name_that_becomes_empty_string is broken" - echo $INTROSPECTION - exit 1 -fi -if [[ ${INTROSPECTION} != *"no_unique_identifier"* ]]; then - echo "prisma introspect no_unique_identifier is broken" - exit 1 -fi -if [[ ${INTROSPECTION} != *"unsupported_type"* ]]; then - echo "prisma introspect unsupported_type is broken" - exit 1 -fi -cd ../../ - -# -# Test generate output command -# -cd fixtures/project/subdir -GENERATE=$(node ../../../build/index.js generate) -if [[ ${GENERATE} != *"Generated "* ]]; then - echo "prisma generate is broken" - exit 1 -fi - -GENERATE_DENYLIST=$(node ../../../build/index.js generate --schema=denylist.prisma 2>&1) -if [[ ${GENERATE_DENYLIST} != *"Error validating model \"public\""* ]]; then - echo "prisma generate denylist is broken" - exit 1 -fi - -# -# Test --schema from schema dir -# - -# Relative path -GENERATE_RELATIVE_SCHEMA_PATH="./schema.prisma" -GENERATE_RELATIVE_SCHEMA=$(node ../../../build/index.js generate --schema=$GENERATE_RELATIVE_SCHEMA_PATH) -if [[ ${GENERATE_RELATIVE_SCHEMA} != *"Generated "* ]]; then - echo "prisma generate --schema=$GENERATE_RELATIVE_SCHEMA_PATH is broken" - exit 1 -fi -# Same case but should fail! -GENERATE_RELATIVE_SCHEMA_INVALID_PATH="./invalid.prisma" -GENERATE_RELATIVE_SCHEMA_INVALID=$(node ../../../build/index.js generate --schema=$GENERATE_RELATIVE_SCHEMA_INVALID_PATH 2>&1 > /dev/null) -if [[ ${GENERATE_RELATIVE_SCHEMA_INVALID} != *"Provided --schema at $GENERATE_RELATIVE_SCHEMA_INVALID_PATH doesn't exist."* ]]; then - echo "prisma generate --schema=$GENERATE_RELATIVE_SCHEMA_INVALID_PATH is broken (should fail)" - exit 1 -fi - -# Absolute path -GENERATE_ABSOLUTE_SCHEMA_PATH="$(pwd)/schema.prisma" -GENERATE_ABSOLUTE_SCHEMA=$(node ../../../build/index.js generate --schema=$GENERATE_ABSOLUTE_SCHEMA_PATH) -if [[ ${GENERATE_ABSOLUTE_SCHEMA} != *"Generated "* ]]; then - echo "prisma generate --schema=$GENERATE_ABSOLUTE_SCHEMA_PATH is broken" - exit 1 -fi -# Same case but should fail! -GENERATE_ABSOLUTE_SCHEMA_INVALID_PATH="$(pwd)/invalid.prisma" -GENERATE_ABSOLUTE_SCHEMA_INVALID=$(node ../../../build/index.js generate --schema=$GENERATE_ABSOLUTE_SCHEMA_INVALID_PATH 2>&1 > /dev/null) -if [[ ${GENERATE_ABSOLUTE_SCHEMA_INVALID} != *"Provided --schema at $GENERATE_ABSOLUTE_SCHEMA_INVALID_PATH doesn't exist"* ]]; then - echo "prisma generate --schema=$GENERATE_ABSOLUTE_SCHEMA_INVALID_PATH is broken (should fail)" - exit 1 -fi -cd ../../.. - -# -# Test generation in npm script -# -rm -rf fixtures/project/subdir/@prisma -cd fixtures/project/ && yarn postinstall - -# -# Test --schema from parent dir -# -cd ../.. -# Relative path -GENERATE_RELATIVE_SCHEMA_FROM_PARENT_PATH="./fixtures/project/subdir/schema.prisma" -GENERATE_RELATIVE_SCHEMA_FROM_PARENT=$(SQLITE_URL=file:dev.db node ./build/index.js generate --schema=$GENERATE_RELATIVE_SCHEMA_FROM_PARENT_PATH) -if [[ ${GENERATE_RELATIVE_SCHEMA_FROM_PARENT} != *"Generated "* ]]; then - echo "prisma generate --schema=$GENERATE_RELATIVE_SCHEMA_FROM_PARENT_PATH is broken" - exit 1 -fi -# Same case but should fail! -GENERATE_RELATIVE_SCHEMA_FROM_PARENT_INVALID_PATH="./fixtures/project/subdir/invalid.prisma" -GENERATE_RELATIVE_SCHEMA_FROM_PARENT_INVALID=$(node ./build/index.js generate --schema=$GENERATE_RELATIVE_SCHEMA_FROM_PARENT_INVALID_PATH 2>&1 > /dev/null) -if [[ ${GENERATE_RELATIVE_SCHEMA_FROM_PARENT_INVALID} != *"Provided --schema at $GENERATE_RELATIVE_SCHEMA_FROM_PARENT_INVALID_PATH doesn't exist."* ]]; then - echo "prisma generate --schema=$GENERATE_RELATIVE_SCHEMA_FROM_PARENT_INVALID_PATH is broken (should fail)" - exit 1 -fi - -# Absolute path -GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_PATH="$(pwd)/fixtures/project/subdir/schema.prisma" -GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT=$(SQLITE_URL=file:dev.db node ./build/index.js generate --schema=$GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_PATH) -if [[ ${GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT} != *"Generated "* ]]; then - echo "prisma generate --schema=$GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_PATH is broken" - exit 1 -fi -# Same case but should fail! -GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_INVALID_PATH="$(pwd)/fixtures/project/subdir/invalid.prisma" -GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_INVALID=$(node ./build/index.js generate --schema=$GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_INVALID_PATH 2>&1 > /dev/null) -if [[ ${GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_INVALID} != *"Provided --schema at $GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_INVALID_PATH doesn't exist."* ]]; then - echo "prisma generate --schema=$GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_INVALID_PATH is broken (should fail)" - exit 1 -fi diff --git a/packages/cli/package.json b/packages/cli/package.json index bed6a96311d2..7f75efcbad0e 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -113,10 +113,7 @@ "scripts": { "dev": "DEV=true node helpers/build.js", "build": "node helpers/build.js", - "test:commands": "./fixtures/test.sh && jest --maxConcurrency=1", - "test-update": "pnpm run test:commands -- -u", - "test": "pnpm run test:commands", - "jest": "jest", + "test": "jest --maxConcurrency=1 --verbose", "install": "node scripts/install-entry.js", "format": "prettier --write .", "lint": "eslint --cache --fix --ext .ts .", diff --git a/packages/cli/src/__tests__/commands/Generate.test.ts b/packages/cli/src/__tests__/commands/Generate.test.ts index 4897534f3a6e..6a4cdde25d63 100644 --- a/packages/cli/src/__tests__/commands/Generate.test.ts +++ b/packages/cli/src/__tests__/commands/Generate.test.ts @@ -1,24 +1,147 @@ -import 'ts-node/register' +const path = require('path') +import { Generate } from '../../commands/Generate' import { consoleContext, Context } from '../__helpers__/context' const ctx = Context.new().add(consoleContext()).assemble() -it('should work with a custom output dir', async () => { - ctx.fixture('example-project') - const data = await ctx.cli('generate') +describe('using cli', () => { + it('should work with a custom output dir', async () => { + ctx.fixture('example-project') + const data = await ctx.cli('generate') - if (typeof data.signal === 'number' && data.signal !== 0) { - throw new Error(data.stderr + data.stdout) - } + if (typeof data.signal === 'number' && data.signal !== 0) { + throw new Error(data.stderr + data.stdout) + } - const { main } = await import(ctx.fs.path('main.ts')) - expect(cleanSnapshot(data.stdout)).toMatchSnapshot() - await expect(main()).resolves.toMatchSnapshot() -}, 30000) // timeout + const { main } = await import(ctx.fs.path('main.ts')) + expect(cleanSnapshot(data.stdout)).toMatchSnapshot() + await expect(main()).resolves.toMatchSnapshot() + }, 30000) // timeout -it('should error with exit code 1 with incorrect schema', async () => { - ctx.fixture('broken-example-project') - await expect(ctx.cli('generate').catch((e) => e.exitCode)).resolves.toEqual(1) + it('should error with exit code 1 with incorrect schema', async () => { + ctx.fixture('broken-example-project') + await expect(ctx.cli('generate').catch((e) => e.exitCode)).resolves.toEqual( + 1, + ) + }) + + it('should work with a custom generator', async () => { + ctx.fixture('custom-generator') + const data = await ctx.cli('generate') + + if (typeof data.signal === 'number' && data.signal !== 0) { + throw new Error(data.stderr + data.stdout) + } + + expect(cleanSnapshot(data.stdout)).toContain( + `✔ Generated I am a minimal generator to`, + ) + }, 30000) // timeout +}) + +describe('--schema from project directory', () => { + it('--schema relative path: should work', async () => { + ctx.fixture('generate-from-project-dir') + const result = Generate.new().parse(['--schema=./schema.prisma']) + await expect(result).resolves.toMatchInlineSnapshot(` + + ✔ Generated Prisma Client (0.0.0) to ./@prisma/client in 133ms + You can now start using Prisma Client in your code. Reference: https://pris.ly/d/client + \`\`\` + import { PrismaClient } from './@prisma/client' + const prisma = new PrismaClient() + \`\`\` + `) + }) + + it('--schema relative path: should fail - invalid path', async () => { + ctx.fixture('generate-from-project-dir') + const result = Generate.new().parse(['--schema=./doesnotexists.prisma']) + await expect(result).rejects.toThrowErrorMatchingInlineSnapshot( + `Provided --schema at ./doesnotexists.prisma doesn't exist.`, + ) + }) + + it('--schema absolute path: should work', async () => { + ctx.fixture('generate-from-project-dir') + const absoluteSchemaPath = path.resolve('./schema.prisma') + const result = Generate.new().parse([`--schema=${absoluteSchemaPath}`]) + await expect(result).resolves.toMatchInlineSnapshot(` + + ✔ Generated Prisma Client (0.0.0) to ./@prisma/client in 144ms + You can now start using Prisma Client in your code. Reference: https://pris.ly/d/client + \`\`\` + import { PrismaClient } from './@prisma/client' + const prisma = new PrismaClient() + \`\`\` + `) + }) + + it('--schema absolute path: should fail - invalid path', async () => { + ctx.fixture('generate-from-project-dir') + const absoluteSchemaPath = path.resolve('./doesnotexists.prisma') + const result = Generate.new().parse([`--schema=${absoluteSchemaPath}`]) + await expect(result).rejects.toThrowError( + `Provided --schema at ${absoluteSchemaPath} doesn't exist.`, + ) + }) +}) + +describe('--schema from parent directory', () => { + it('--schema relative path: should work', async () => { + ctx.fixture('generate-from-parent-dir') + const result = Generate.new().parse([ + '--schema=./subdirectory/schema.prisma', + ]) + await expect(result).resolves.toMatchInlineSnapshot(` + + ✔ Generated Prisma Client (0.0.0) to ./subdirectory/@prisma/client in 147ms + You can now start using Prisma Client in your code. Reference: https://pris.ly/d/client + \`\`\` + import { PrismaClient } from './subdirectory/@prisma/client' + const prisma = new PrismaClient() + \`\`\` + `) + }) + + it('--schema relative path: should fail - invalid path', async () => { + ctx.fixture('generate-from-parent-dir') + + const result = Generate.new().parse([ + '--schema=./subdirectory/doesnotexists.prisma', + ]) + await expect(result).rejects.toThrowErrorMatchingInlineSnapshot( + `Provided --schema at ./subdirectory/doesnotexists.prisma doesn't exist.`, + ) + }) + + it('--schema absolute path: should work', async () => { + ctx.fixture('generate-from-parent-dir') + + const absoluteSchemaPath = path.resolve('./subdirectory/schema.prisma') + const result = Generate.new().parse([`--schema=${absoluteSchemaPath}`]) + await expect(result).resolves.toMatchInlineSnapshot(` + + ✔ Generated Prisma Client (0.0.0) to ./subdirectory/@prisma/client in 131ms + You can now start using Prisma Client in your code. Reference: https://pris.ly/d/client + \`\`\` + import { PrismaClient } from './subdirectory/@prisma/client' + const prisma = new PrismaClient() + \`\`\` + `) + }) + + it('--schema absolute path: should fail - invalid path', async () => { + ctx.fixture('generate-from-parent-dir') + + const absoluteSchemaPath = path.resolve( + './subdirectory/doesnotexists.prisma', + ) + const result = Generate.new().parse([`--schema=${absoluteSchemaPath}`]) + await expect(result).rejects.toThrowError( + `Provided --schema at ${absoluteSchemaPath} doesn't exist.`, + ) + }) }) function cleanSnapshot(str: string): string { diff --git a/packages/cli/src/__tests__/commands/__snapshots__/Generate.test.ts.snap b/packages/cli/src/__tests__/commands/__snapshots__/Generate.test.ts.snap index 5c95cd3b357e..c21a51741109 100644 --- a/packages/cli/src/__tests__/commands/__snapshots__/Generate.test.ts.snap +++ b/packages/cli/src/__tests__/commands/__snapshots__/Generate.test.ts.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`should work with a custom output dir 1`] = ` +exports[`using cli should work with a custom output dir 1`] = ` Prisma schema loaded from prisma/schema.prisma ✔ Generated Prisma Client (0.0.0) to ./generated/client in XXms @@ -11,7 +11,7 @@ const prisma = new PrismaClient() \`\`\` `; -exports[`should work with a custom output dir 2`] = ` +exports[`using cli should work with a custom output dir 2`] = ` Array [ Object { email: bob@bob.bob, diff --git a/packages/cli/fixtures/project/subdir/schema.prisma b/packages/cli/src/__tests__/fixtures/generate-from-parent-dir/subdirectory/schema.prisma similarity index 100% rename from packages/cli/fixtures/project/subdir/schema.prisma rename to packages/cli/src/__tests__/fixtures/generate-from-parent-dir/subdirectory/schema.prisma diff --git a/packages/cli/fixtures/project/subdir/denylist.prisma b/packages/cli/src/__tests__/fixtures/generate-from-project-dir/schema.prisma similarity index 69% rename from packages/cli/fixtures/project/subdir/denylist.prisma rename to packages/cli/src/__tests__/fixtures/generate-from-project-dir/schema.prisma index d528dbf1f66a..4b131b9a985f 100644 --- a/packages/cli/fixtures/project/subdir/denylist.prisma +++ b/packages/cli/src/__tests__/fixtures/generate-from-project-dir/schema.prisma @@ -9,13 +9,6 @@ generator client { } model Blog { - id Int @id -} - -model public { - id Int @id -} - -model var { - id Int @id -} + id Int @id + viewCount Int +} \ No newline at end of file diff --git a/packages/cli/src/__tests__/fixtures/generate/schema.prisma b/packages/cli/src/__tests__/fixtures/generate/schema.prisma deleted file mode 100644 index 0913b383d411..000000000000 --- a/packages/cli/src/__tests__/fixtures/generate/schema.prisma +++ /dev/null @@ -1,8 +0,0 @@ -generator gen { - provider = "prisma-client-js" - output = "./generated/client" -} - -model User { - id Int @id -} diff --git a/packages/cli/src/bin.ts b/packages/cli/src/bin.ts index 03458ed50780..c5441fa30802 100755 --- a/packages/cli/src/bin.ts +++ b/packages/cli/src/bin.ts @@ -90,16 +90,16 @@ import { } from '@prisma/migrate' import { CLI } from './commands/CLI' -import { Init } from './Init' +import { Init } from './commands/Init' import { Dev } from './commands/Dev' -import { Version } from './Version' -import { Generate } from './Generate' +import { Version } from './commands/Version' +import { Generate } from './commands/Generate' import { isCurrentBinInstalledGlobally } from '@prisma/sdk' -import { Validate } from './Validate' -import { Format } from './Format' +import { Validate } from './commands/Validate' +import { Format } from './commands/Format' import { Doctor } from './commands/Doctor' -import { Studio } from './Studio' -import { Telemetry } from './Telemetry' +import { Studio } from './commands/Studio' +import { Telemetry } from './commands/Telemetry' import { printPrismaCliUpdateWarning, printUpdateMessage, diff --git a/packages/cli/src/commands/Generate.ts b/packages/cli/src/commands/Generate.ts index c7700e621ab0..294d1bb2fde9 100644 --- a/packages/cli/src/commands/Generate.ts +++ b/packages/cli/src/commands/Generate.ts @@ -21,10 +21,10 @@ import fs from 'fs' import logUpdate from 'log-update' import path from 'path' import resolvePkg from 'resolve-pkg' -import { breakingChangesMessage } from './utils/breakingChanges' -import { formatms } from './utils/formatms' -import { simpleDebounce } from './utils/simpleDebounce' -const pkg = eval(`require('../package.json')`) +import { breakingChangesMessage } from '../utils/breakingChanges' +import { formatms } from '../utils/formatms' +import { simpleDebounce } from '../utils/simpleDebounce' +const pkg = eval(`require('../../package.json')`) /** * $ prisma generate diff --git a/packages/cli/src/commands/Version.ts b/packages/cli/src/commands/Version.ts index 19f0c399384f..2e250a5c1dc9 100644 --- a/packages/cli/src/commands/Version.ts +++ b/packages/cli/src/commands/Version.ts @@ -17,7 +17,7 @@ import { import chalk from 'chalk' import fs from 'fs' import path from 'path' -import { getInstalledPrismaClientVersion } from './utils/getClientVersion' +import { getInstalledPrismaClientVersion } from '../utils/getClientVersion' const packageJson = require('../package.json') // eslint-disable-line @typescript-eslint/no-var-requires interface BinaryInfo { From c31ad64c5bceb5da10750227c09de3e90c9b857f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joe=CC=88l?= Date: Mon, 16 Aug 2021 16:43:42 +0200 Subject: [PATCH 04/14] fix Version.ts --- packages/cli/src/commands/Version.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/src/commands/Version.ts b/packages/cli/src/commands/Version.ts index 2e250a5c1dc9..9660b52d47e2 100644 --- a/packages/cli/src/commands/Version.ts +++ b/packages/cli/src/commands/Version.ts @@ -18,7 +18,7 @@ import chalk from 'chalk' import fs from 'fs' import path from 'path' import { getInstalledPrismaClientVersion } from '../utils/getClientVersion' -const packageJson = require('../package.json') // eslint-disable-line @typescript-eslint/no-var-requires +const packageJson = require('../../package.json') // eslint-disable-line @typescript-eslint/no-var-requires interface BinaryInfo { path: string From 0d1ec9b4d307958ac0b875bace2dbd41e0a4f16f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joe=CC=88l?= Date: Mon, 16 Aug 2021 17:35:17 +0200 Subject: [PATCH 05/14] test(cli): normalize snapshots --- .../__helpers__/snapshotSerializer.ts | 15 +++-- .../src/__tests__/commands/Generate.test.ts | 60 +++++++++---------- 2 files changed, 40 insertions(+), 35 deletions(-) diff --git a/packages/cli/src/__tests__/__helpers__/snapshotSerializer.ts b/packages/cli/src/__tests__/__helpers__/snapshotSerializer.ts index e1932d10f10f..5fc713cd8854 100644 --- a/packages/cli/src/__tests__/__helpers__/snapshotSerializer.ts +++ b/packages/cli/src/__tests__/__helpers__/snapshotSerializer.ts @@ -39,6 +39,11 @@ function normalizeRustError(str) { function normalizeTmpDir(str) { return str.replace(/\/tmp\/([a-z0-9]+)\//g, '/tmp/dir/') } + +function normalizeMs(str) { + return str.replace(/\d{1,3}ms/g, 'XXms') +} + const serializer = { test(value) { return typeof value === 'string' || value instanceof Error @@ -53,10 +58,12 @@ const serializer = { return prepareSchemaForSnapshot( normalizeGithubLinks( normalizeRustError( - normalizeTmpDir( - normalizeGithubLinks( - normalizeToUnixPaths( - removePlatforms(trimErrorPaths(stripAnsi(message))), + normalizeMs( + normalizeTmpDir( + normalizeGithubLinks( + normalizeToUnixPaths( + removePlatforms(trimErrorPaths(stripAnsi(message))), + ), ), ), ), diff --git a/packages/cli/src/__tests__/commands/Generate.test.ts b/packages/cli/src/__tests__/commands/Generate.test.ts index 6a4cdde25d63..ccc4a09cb012 100644 --- a/packages/cli/src/__tests__/commands/Generate.test.ts +++ b/packages/cli/src/__tests__/commands/Generate.test.ts @@ -33,9 +33,7 @@ describe('using cli', () => { throw new Error(data.stderr + data.stdout) } - expect(cleanSnapshot(data.stdout)).toContain( - `✔ Generated I am a minimal generator to`, - ) + expect(cleanSnapshot(data.stdout)).toContain(`I am a minimal generator`) }, 30000) // timeout }) @@ -45,13 +43,13 @@ describe('--schema from project directory', () => { const result = Generate.new().parse(['--schema=./schema.prisma']) await expect(result).resolves.toMatchInlineSnapshot(` - ✔ Generated Prisma Client (0.0.0) to ./@prisma/client in 133ms - You can now start using Prisma Client in your code. Reference: https://pris.ly/d/client - \`\`\` - import { PrismaClient } from './@prisma/client' - const prisma = new PrismaClient() - \`\`\` - `) +✔ Generated Prisma Client (0.0.0) to ./@prisma/client in XXms +You can now start using Prisma Client in your code. Reference: https://pris.ly/d/client +\`\`\` +import { PrismaClient } from './@prisma/client' +const prisma = new PrismaClient() +\`\`\` +`) }) it('--schema relative path: should fail - invalid path', async () => { @@ -68,13 +66,13 @@ describe('--schema from project directory', () => { const result = Generate.new().parse([`--schema=${absoluteSchemaPath}`]) await expect(result).resolves.toMatchInlineSnapshot(` - ✔ Generated Prisma Client (0.0.0) to ./@prisma/client in 144ms - You can now start using Prisma Client in your code. Reference: https://pris.ly/d/client - \`\`\` - import { PrismaClient } from './@prisma/client' - const prisma = new PrismaClient() - \`\`\` - `) +✔ Generated Prisma Client (0.0.0) to ./@prisma/client in XXms +You can now start using Prisma Client in your code. Reference: https://pris.ly/d/client +\`\`\` +import { PrismaClient } from './@prisma/client' +const prisma = new PrismaClient() +\`\`\` +`) }) it('--schema absolute path: should fail - invalid path', async () => { @@ -95,13 +93,13 @@ describe('--schema from parent directory', () => { ]) await expect(result).resolves.toMatchInlineSnapshot(` - ✔ Generated Prisma Client (0.0.0) to ./subdirectory/@prisma/client in 147ms - You can now start using Prisma Client in your code. Reference: https://pris.ly/d/client - \`\`\` - import { PrismaClient } from './subdirectory/@prisma/client' - const prisma = new PrismaClient() - \`\`\` - `) +✔ Generated Prisma Client (0.0.0) to ./subdirectory/@prisma/client in XXms +You can now start using Prisma Client in your code. Reference: https://pris.ly/d/client +\`\`\` +import { PrismaClient } from './subdirectory/@prisma/client' +const prisma = new PrismaClient() +\`\`\` +`) }) it('--schema relative path: should fail - invalid path', async () => { @@ -122,13 +120,13 @@ describe('--schema from parent directory', () => { const result = Generate.new().parse([`--schema=${absoluteSchemaPath}`]) await expect(result).resolves.toMatchInlineSnapshot(` - ✔ Generated Prisma Client (0.0.0) to ./subdirectory/@prisma/client in 131ms - You can now start using Prisma Client in your code. Reference: https://pris.ly/d/client - \`\`\` - import { PrismaClient } from './subdirectory/@prisma/client' - const prisma = new PrismaClient() - \`\`\` - `) +✔ Generated Prisma Client (0.0.0) to ./subdirectory/@prisma/client in XXms +You can now start using Prisma Client in your code. Reference: https://pris.ly/d/client +\`\`\` +import { PrismaClient } from './subdirectory/@prisma/client' +const prisma = new PrismaClient() +\`\`\` +`) }) it('--schema absolute path: should fail - invalid path', async () => { From c3a7a26f4d411e1485697d1e0fb227b318ceb64f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joe=CC=88l?= Date: Mon, 16 Aug 2021 17:44:30 +0200 Subject: [PATCH 06/14] fix generate --- packages/cli/src/commands/Generate.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/src/commands/Generate.ts b/packages/cli/src/commands/Generate.ts index 294d1bb2fde9..347051a959f3 100644 --- a/packages/cli/src/commands/Generate.ts +++ b/packages/cli/src/commands/Generate.ts @@ -24,7 +24,7 @@ import resolvePkg from 'resolve-pkg' import { breakingChangesMessage } from '../utils/breakingChanges' import { formatms } from '../utils/formatms' import { simpleDebounce } from '../utils/simpleDebounce' -const pkg = eval(`require('../../package.json')`) +const pkg = eval(`require('../package.json')`) /** * $ prisma generate From 832a5294e7bc3d5dbf740700b641efb238aabb1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joe=CC=88l?= Date: Mon, 16 Aug 2021 17:51:22 +0200 Subject: [PATCH 07/14] move commands ts files --- packages/cli/src/{commands => }/CLI.ts | 0 packages/cli/src/{commands => }/Dev.ts | 0 packages/cli/src/{commands => }/Doctor.ts | 0 packages/cli/src/{commands => }/Format.ts | 0 packages/cli/src/{commands => }/Generate.ts | 0 packages/cli/src/{commands => }/Init.ts | 0 packages/cli/src/{commands => }/Studio.ts | 0 packages/cli/src/{commands => }/Telemetry.ts | 0 packages/cli/src/{commands => }/Validate.ts | 0 packages/cli/src/{commands => }/Version.ts | 0 .../cli/src/__tests__/commands/Doctor.test.ts | 2 +- .../cli/src/__tests__/commands/Format.test.ts | 2 +- .../src/__tests__/commands/Generate.test.ts | 2 +- .../cli/src/__tests__/commands/Init.test.ts | 6 +----- .../cli/src/__tests__/commands/Studio.test.ts | 2 +- packages/cli/src/bin.ts | 20 +++++++++---------- 16 files changed, 15 insertions(+), 19 deletions(-) rename packages/cli/src/{commands => }/CLI.ts (100%) rename packages/cli/src/{commands => }/Dev.ts (100%) rename packages/cli/src/{commands => }/Doctor.ts (100%) rename packages/cli/src/{commands => }/Format.ts (100%) rename packages/cli/src/{commands => }/Generate.ts (100%) rename packages/cli/src/{commands => }/Init.ts (100%) rename packages/cli/src/{commands => }/Studio.ts (100%) rename packages/cli/src/{commands => }/Telemetry.ts (100%) rename packages/cli/src/{commands => }/Validate.ts (100%) rename packages/cli/src/{commands => }/Version.ts (100%) diff --git a/packages/cli/src/commands/CLI.ts b/packages/cli/src/CLI.ts similarity index 100% rename from packages/cli/src/commands/CLI.ts rename to packages/cli/src/CLI.ts diff --git a/packages/cli/src/commands/Dev.ts b/packages/cli/src/Dev.ts similarity index 100% rename from packages/cli/src/commands/Dev.ts rename to packages/cli/src/Dev.ts diff --git a/packages/cli/src/commands/Doctor.ts b/packages/cli/src/Doctor.ts similarity index 100% rename from packages/cli/src/commands/Doctor.ts rename to packages/cli/src/Doctor.ts diff --git a/packages/cli/src/commands/Format.ts b/packages/cli/src/Format.ts similarity index 100% rename from packages/cli/src/commands/Format.ts rename to packages/cli/src/Format.ts diff --git a/packages/cli/src/commands/Generate.ts b/packages/cli/src/Generate.ts similarity index 100% rename from packages/cli/src/commands/Generate.ts rename to packages/cli/src/Generate.ts diff --git a/packages/cli/src/commands/Init.ts b/packages/cli/src/Init.ts similarity index 100% rename from packages/cli/src/commands/Init.ts rename to packages/cli/src/Init.ts diff --git a/packages/cli/src/commands/Studio.ts b/packages/cli/src/Studio.ts similarity index 100% rename from packages/cli/src/commands/Studio.ts rename to packages/cli/src/Studio.ts diff --git a/packages/cli/src/commands/Telemetry.ts b/packages/cli/src/Telemetry.ts similarity index 100% rename from packages/cli/src/commands/Telemetry.ts rename to packages/cli/src/Telemetry.ts diff --git a/packages/cli/src/commands/Validate.ts b/packages/cli/src/Validate.ts similarity index 100% rename from packages/cli/src/commands/Validate.ts rename to packages/cli/src/Validate.ts diff --git a/packages/cli/src/commands/Version.ts b/packages/cli/src/Version.ts similarity index 100% rename from packages/cli/src/commands/Version.ts rename to packages/cli/src/Version.ts diff --git a/packages/cli/src/__tests__/commands/Doctor.test.ts b/packages/cli/src/__tests__/commands/Doctor.test.ts index 5fd9daa15525..f60c8a7c7726 100644 --- a/packages/cli/src/__tests__/commands/Doctor.test.ts +++ b/packages/cli/src/__tests__/commands/Doctor.test.ts @@ -1,4 +1,4 @@ -import { Doctor } from '../../commands/Doctor' +import { Doctor } from '../../Doctor' import { consoleContext, Context } from '../__helpers__/context' const ctx = Context.new().add(consoleContext()).assemble() diff --git a/packages/cli/src/__tests__/commands/Format.test.ts b/packages/cli/src/__tests__/commands/Format.test.ts index 71cbe0180de1..fd363ee0fbf4 100644 --- a/packages/cli/src/__tests__/commands/Format.test.ts +++ b/packages/cli/src/__tests__/commands/Format.test.ts @@ -1,5 +1,5 @@ import fs from 'fs-jetpack' -import { Format } from '../../commands/Format' +import { Format } from '../../Format' import { Context } from '../__helpers__/context' const ctx = Context.new().assemble() diff --git a/packages/cli/src/__tests__/commands/Generate.test.ts b/packages/cli/src/__tests__/commands/Generate.test.ts index ccc4a09cb012..a53eda3b2cf2 100644 --- a/packages/cli/src/__tests__/commands/Generate.test.ts +++ b/packages/cli/src/__tests__/commands/Generate.test.ts @@ -1,5 +1,5 @@ const path = require('path') -import { Generate } from '../../commands/Generate' +import { Generate } from '../../Generate' import { consoleContext, Context } from '../__helpers__/context' const ctx = Context.new().add(consoleContext()).assemble() diff --git a/packages/cli/src/__tests__/commands/Init.test.ts b/packages/cli/src/__tests__/commands/Init.test.ts index 243a2476e1ce..71324c5c1901 100644 --- a/packages/cli/src/__tests__/commands/Init.test.ts +++ b/packages/cli/src/__tests__/commands/Init.test.ts @@ -1,11 +1,7 @@ import fs from 'fs' import { join } from 'path' import stripAnsi from 'strip-ansi' -import { - defaultEnv, - defaultGitIgnore, - defaultSchema, -} from '../../commands/Init' +import { defaultEnv, defaultGitIgnore, defaultSchema } from '../../Init' import { consoleContext, Context } from '../__helpers__/context' const ctx = Context.new().add(consoleContext()).assemble() diff --git a/packages/cli/src/__tests__/commands/Studio.test.ts b/packages/cli/src/__tests__/commands/Studio.test.ts index b7012a50cebf..381653027585 100644 --- a/packages/cli/src/__tests__/commands/Studio.test.ts +++ b/packages/cli/src/__tests__/commands/Studio.test.ts @@ -2,7 +2,7 @@ import fs from 'fs' import fetch from 'node-fetch' import path from 'path' import rimraf from 'rimraf' -import { Studio } from '../../commands/Studio' +import { Studio } from '../../Studio' const STUDIO_TEST_PORT = 5678 const schemaHash = 'e1b6a1a8d633d83d0cb7db993af86f17' diff --git a/packages/cli/src/bin.ts b/packages/cli/src/bin.ts index c5441fa30802..01d390a56258 100755 --- a/packages/cli/src/bin.ts +++ b/packages/cli/src/bin.ts @@ -89,17 +89,17 @@ import { handlePanic, } from '@prisma/migrate' -import { CLI } from './commands/CLI' -import { Init } from './commands/Init' -import { Dev } from './commands/Dev' -import { Version } from './commands/Version' -import { Generate } from './commands/Generate' +import { CLI } from './CLI' +import { Init } from './Init' +import { Dev } from './Dev' +import { Version } from './Version' +import { Generate } from './Generate' import { isCurrentBinInstalledGlobally } from '@prisma/sdk' -import { Validate } from './commands/Validate' -import { Format } from './commands/Format' -import { Doctor } from './commands/Doctor' -import { Studio } from './commands/Studio' -import { Telemetry } from './commands/Telemetry' +import { Validate } from './Validate' +import { Format } from './Format' +import { Doctor } from './Doctor' +import { Studio } from './Studio' +import { Telemetry } from './Telemetry' import { printPrismaCliUpdateWarning, printUpdateMessage, From 666915fb3dab173fd048af3de4aa16ad41ac56e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joe=CC=88l?= Date: Mon, 16 Aug 2021 17:52:42 +0200 Subject: [PATCH 08/14] revert changes --- packages/cli/src/Format.ts | 2 +- packages/cli/src/Generate.ts | 6 +++--- packages/cli/src/Init.ts | 2 +- packages/cli/src/Studio.ts | 2 +- packages/cli/src/Version.ts | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/cli/src/Format.ts b/packages/cli/src/Format.ts index d8e1ae5b9793..0c4a148aa2e5 100644 --- a/packages/cli/src/Format.ts +++ b/packages/cli/src/Format.ts @@ -11,7 +11,7 @@ import chalk from 'chalk' import fs from 'fs' import os from 'os' import path from 'path' -import { formatms } from '../utils/formatms' +import { formatms } from './utils/formatms' /** * $ prisma format diff --git a/packages/cli/src/Generate.ts b/packages/cli/src/Generate.ts index 347051a959f3..c7700e621ab0 100644 --- a/packages/cli/src/Generate.ts +++ b/packages/cli/src/Generate.ts @@ -21,9 +21,9 @@ import fs from 'fs' import logUpdate from 'log-update' import path from 'path' import resolvePkg from 'resolve-pkg' -import { breakingChangesMessage } from '../utils/breakingChanges' -import { formatms } from '../utils/formatms' -import { simpleDebounce } from '../utils/simpleDebounce' +import { breakingChangesMessage } from './utils/breakingChanges' +import { formatms } from './utils/formatms' +import { simpleDebounce } from './utils/simpleDebounce' const pkg = eval(`require('../package.json')`) /** diff --git a/packages/cli/src/Init.ts b/packages/cli/src/Init.ts index 30a297f5860a..c394a47ef9a5 100644 --- a/packages/cli/src/Init.ts +++ b/packages/cli/src/Init.ts @@ -15,7 +15,7 @@ import dotenv from 'dotenv' import fs from 'fs' import path from 'path' import { isError } from 'util' -import { printError } from '../utils/prompt/utils/print' +import { printError } from './utils/prompt/utils/print' export const defaultSchema = (provider: ConnectorType = 'postgresql') => { if (provider === 'sqlserver' || provider === 'mongodb') { diff --git a/packages/cli/src/Studio.ts b/packages/cli/src/Studio.ts index a24207e73164..9511c94d6964 100644 --- a/packages/cli/src/Studio.ts +++ b/packages/cli/src/Studio.ts @@ -13,7 +13,7 @@ import getPort from 'get-port' import open from 'open' import path from 'path' -const packageJson = require('../../package.json') // eslint-disable-line @typescript-eslint/no-var-requires +const packageJson = require('../package.json') // eslint-disable-line @typescript-eslint/no-var-requires export class Studio implements Command { public instance?: StudioServer diff --git a/packages/cli/src/Version.ts b/packages/cli/src/Version.ts index 9660b52d47e2..19f0c399384f 100644 --- a/packages/cli/src/Version.ts +++ b/packages/cli/src/Version.ts @@ -17,8 +17,8 @@ import { import chalk from 'chalk' import fs from 'fs' import path from 'path' -import { getInstalledPrismaClientVersion } from '../utils/getClientVersion' -const packageJson = require('../../package.json') // eslint-disable-line @typescript-eslint/no-var-requires +import { getInstalledPrismaClientVersion } from './utils/getClientVersion' +const packageJson = require('../package.json') // eslint-disable-line @typescript-eslint/no-var-requires interface BinaryInfo { path: string From c2bb5cc4e90f21cfe253a08dba661dcd816dbbe5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Galeran?= Date: Mon, 16 Aug 2021 17:57:05 +0200 Subject: [PATCH 09/14] Update packages/cli/src/Studio.ts --- packages/cli/src/Studio.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/src/Studio.ts b/packages/cli/src/Studio.ts index 9511c94d6964..3ee2638b4079 100644 --- a/packages/cli/src/Studio.ts +++ b/packages/cli/src/Studio.ts @@ -120,7 +120,7 @@ ${chalk.bold('Examples')} resolve: { '@prisma/client': path.resolve( __dirname, - '../../prisma-client/index.js', + '../prisma-client/index.js', ), '@prisma/engines': require.resolve('@prisma/engines'), }, From cf91c95191e407e5766bfd85b3209e012d7b5fd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Galeran?= Date: Mon, 16 Aug 2021 17:57:18 +0200 Subject: [PATCH 10/14] Update packages/cli/src/Studio.ts --- packages/cli/src/Studio.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/src/Studio.ts b/packages/cli/src/Studio.ts index 3ee2638b4079..7dbf6b267289 100644 --- a/packages/cli/src/Studio.ts +++ b/packages/cli/src/Studio.ts @@ -109,7 +109,7 @@ ${chalk.bold('Examples')} args['--port'] || (await getPort({ port: getPort.makeRange(5555, 5600) })) const browser = args['--browser'] || process.env.BROWSER - const staticAssetDir = path.resolve(__dirname, '../../build/public') + const staticAssetDir = path.resolve(__dirname, '../build/public') const studio = new StudioServer({ schemaPath, From e58502b3d0228ab00f081f5204bfcc0288aa56ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joe=CC=88l?= Date: Mon, 16 Aug 2021 18:01:49 +0200 Subject: [PATCH 11/14] add missing schema --- .../custom-generator/prisma/schema.prisma | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 packages/cli/src/__tests__/fixtures/custom-generator/prisma/schema.prisma diff --git a/packages/cli/src/__tests__/fixtures/custom-generator/prisma/schema.prisma b/packages/cli/src/__tests__/fixtures/custom-generator/prisma/schema.prisma new file mode 100644 index 000000000000..65ad15b5bffa --- /dev/null +++ b/packages/cli/src/__tests__/fixtures/custom-generator/prisma/schema.prisma @@ -0,0 +1,34 @@ +generator min { + // https://github.com/timsuchanek/minimal-generator + provider = "npx @timsuchanek/minimal-generator" +} + +datasource db { + provider = "sqlite" + url = env("ENV_VAR_DOES_NOT_EXIST") +} + +model Post { + id Int @id @default(autoincrement()) + createdAt DateTime @default(now()) + title String + content String? + published Boolean @default(false) + author User @relation(fields: [authorId], references: [id]) + authorId Int +} + +model Profile { + id Int @id @default(autoincrement()) + bio String? + user User @relation(fields: [userId], references: [id]) + userId Int @unique +} + +model User { + id Int @id @default(autoincrement()) + email String @unique + name String? + posts Post[] + profile Profile? +} From f731467b8ac7169bfc97212abb537f4bbf9ebc92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joe=CC=88l?= Date: Mon, 16 Aug 2021 18:26:27 +0200 Subject: [PATCH 12/14] test(cli): test CLI warning for introspect --- packages/cli/src/CLI.ts | 6 +- .../cli/src/__tests__/__helpers__/context.ts | 5 + .../cli/src/__tests__/commands/CLI.test.ts | 115 ++++++++++++++++++ 3 files changed, 123 insertions(+), 3 deletions(-) create mode 100644 packages/cli/src/__tests__/commands/CLI.test.ts diff --git a/packages/cli/src/CLI.ts b/packages/cli/src/CLI.ts index 413ee22eb582..808001758575 100644 --- a/packages/cli/src/CLI.ts +++ b/packages/cli/src/CLI.ts @@ -49,7 +49,7 @@ export class CLI implements Command { // display help for help flag or no subcommand if (args._.length === 0 || args['--help']) { - return CLI.help + return this.help() } // check if we have that subcommand @@ -107,10 +107,10 @@ export class CLI implements Command { return cmd.parse(argsForCmd) } // unknown command - return unknownCommand(CLI.help, args._[0]) + return unknownCommand(this.help() as string, args._[0]) } - private help(error?: string): string | HelpError { + public help(error?: string) { if (error) { return new HelpError(`\n${chalk.bold.red(`!`)} ${error}\n${CLI.help}`) } diff --git a/packages/cli/src/__tests__/__helpers__/context.ts b/packages/cli/src/__tests__/__helpers__/context.ts index 5f29e2df348f..2118651430c9 100644 --- a/packages/cli/src/__tests__/__helpers__/context.ts +++ b/packages/cli/src/__tests__/__helpers__/context.ts @@ -118,6 +118,7 @@ export const consoleContext: ContextContributorFactory< mocked: { 'console.error': jest.SpyInstance 'console.log': jest.SpyInstance + 'console.info': jest.SpyInstance 'console.warn': jest.SpyInstance } } @@ -129,6 +130,9 @@ export const consoleContext: ContextContributorFactory< ctx.mocked['console.log'] = jest .spyOn(console, 'log') .mockImplementation(() => {}) + ctx.mocked['console.info'] = jest + .spyOn(console, 'info') + .mockImplementation(() => {}) ctx.mocked['console.warn'] = jest .spyOn(console, 'warn') .mockImplementation(() => {}) @@ -137,6 +141,7 @@ export const consoleContext: ContextContributorFactory< afterEach(() => { ctx.mocked['console.error'].mockRestore() ctx.mocked['console.log'].mockRestore() + ctx.mocked['console.info'].mockRestore() ctx.mocked['console.warn'].mockRestore() }) diff --git a/packages/cli/src/__tests__/commands/CLI.test.ts b/packages/cli/src/__tests__/commands/CLI.test.ts new file mode 100644 index 000000000000..509902d23904 --- /dev/null +++ b/packages/cli/src/__tests__/commands/CLI.test.ts @@ -0,0 +1,115 @@ +import { CLI } from '../../CLI' +import { consoleContext, Context } from '../__helpers__/context' +import { + MigrateCommand, + MigrateDev, + MigrateResolve, + MigrateStatus, + MigrateReset, + MigrateDeploy, + DbPush, + DbPull, + // DbDrop, + DbSeed, + DbCommand, + handlePanic, +} from '@prisma/migrate' + +const ctx = Context.new().add(consoleContext()).assemble() + +const cliInstance = CLI.new( + { + // init: Init.new(), + // migrate: MigrateCommand.new({ + // dev: MigrateDev.new(), + // status: MigrateStatus.new(), + // resolve: MigrateResolve.new(), + // reset: MigrateReset.new(), + // deploy: MigrateDeploy.new(), + // }), + // db: DbCommand.new({ + // pull: DbPull.new(), + // push: DbPush.new(), + // // drop: DbDrop.new(), + // seed: DbSeed.new(), + // }), + /** + * @deprecated since version 2.30.0, use `db pull` instead (renamed) + */ + introspect: DbPull.new(), + // dev: Dev.new(), + // studio: Studio.new(), + // generate: Generate.new(), + // version: Version.new(), + // validate: Validate.new(), + // format: Format.new(), + // doctor: Doctor.new(), + // telemetry: Telemetry.new(), + }, + [ + 'version', + 'init', + 'migrate', + 'db', + 'introspect', + 'dev', + 'studio', + 'generate', + 'validate', + 'format', + 'doctor', + 'telemetry', + ], +) + +it('no params should return help', async () => { + const spy = jest + .spyOn(cliInstance, 'help') + .mockImplementation(() => 'Help Me') + + await cliInstance.parse([]) + expect(spy).toHaveBeenCalledTimes(1) + spy.mockRestore() +}) + +it('wrong flag', async () => { + const spy = jest + .spyOn(cliInstance, 'help') + .mockImplementation(() => 'Help Me') + + await cliInstance.parse(['--something']) + expect(spy).toHaveBeenCalledTimes(1) + spy.mockRestore() +}) + +it('help flag', async () => { + const spy = jest + .spyOn(cliInstance, 'help') + .mockImplementation(() => 'Help Me') + + await cliInstance.parse(['--help']) + expect(spy).toHaveBeenCalledTimes(1) + spy.mockRestore() +}) + +it('unknown command', async () => { + await expect(cliInstance.parse(['doesnotexist'])).resolves.toThrowError() +}) + +it('introspect should include deprecation warning', async () => { + const result = cliInstance.parse(['introspect']) + + await expect(result).rejects.toMatchInlineSnapshot(` + Could not find a schema.prisma file that is required for this command. + You can either provide it with --schema, set it as \`prisma.schema\` in your package.json or put it into the default location ./prisma/schema.prisma https://pris.ly/d/prisma-schema-location + `) + expect(ctx.mocked['console.log'].mock.calls).toHaveLength(0) + expect(ctx.mocked['console.info'].mock.calls).toHaveLength(0) + expect(ctx.mocked['console.warn'].mock.calls.join('\n')) + .toMatchInlineSnapshot(` + prisma:warn + prisma:warn prisma introspect command is deprecated. It has been renamed to prisma db pull + prisma:warn + `) + expect(ctx.mocked['console.error'].mock.calls).toHaveLength(0) +}) From 7dd6801caf3bede971d9a03b7d2239f1b98aa86b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Galeran?= Date: Wed, 18 Aug 2021 18:30:28 +0200 Subject: [PATCH 13/14] Apply suggestions from code review --- packages/cli/src/CLI.ts | 6 +++--- packages/cli/src/__tests__/commands/CLI.test.ts | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/cli/src/CLI.ts b/packages/cli/src/CLI.ts index 808001758575..79d82f249d40 100644 --- a/packages/cli/src/CLI.ts +++ b/packages/cli/src/CLI.ts @@ -67,11 +67,11 @@ export class CLI implements Command { logger.warn('') logger.warn( `${chalk.bold( - `${chalk.underline( + `The ${chalk.underline( 'prisma introspect', - )} command is deprecated. It has been renamed to ${chalk.green( + )} command is deprecated. Please use ${chalk.green( 'prisma db pull', - )}`, + )} instead.`, )}`, ) logger.warn('') diff --git a/packages/cli/src/__tests__/commands/CLI.test.ts b/packages/cli/src/__tests__/commands/CLI.test.ts index 509902d23904..ba661210a677 100644 --- a/packages/cli/src/__tests__/commands/CLI.test.ts +++ b/packages/cli/src/__tests__/commands/CLI.test.ts @@ -108,7 +108,7 @@ it('introspect should include deprecation warning', async () => { expect(ctx.mocked['console.warn'].mock.calls.join('\n')) .toMatchInlineSnapshot(` prisma:warn - prisma:warn prisma introspect command is deprecated. It has been renamed to prisma db pull + prisma:warn The introspect command is deprecated. Please use db pull instead. prisma:warn `) expect(ctx.mocked['console.error'].mock.calls).toHaveLength(0) From 31ec318b42f4caf13f52987f28575e9acecbf28f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joe=CC=88l?= Date: Wed, 18 Aug 2021 19:04:19 +0200 Subject: [PATCH 14/14] test: update snapshot --- packages/cli/src/__tests__/commands/CLI.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/src/__tests__/commands/CLI.test.ts b/packages/cli/src/__tests__/commands/CLI.test.ts index ba661210a677..5cc40127cbce 100644 --- a/packages/cli/src/__tests__/commands/CLI.test.ts +++ b/packages/cli/src/__tests__/commands/CLI.test.ts @@ -108,7 +108,7 @@ it('introspect should include deprecation warning', async () => { expect(ctx.mocked['console.warn'].mock.calls.join('\n')) .toMatchInlineSnapshot(` prisma:warn - prisma:warn The introspect command is deprecated. Please use db pull instead. + prisma:warn The prisma introspect command is deprecated. Please use prisma db pull instead. prisma:warn `) expect(ctx.mocked['console.error'].mock.calls).toHaveLength(0)