From 5a67714c1df8490684aa6810628f5eec96c3e40a Mon Sep 17 00:00:00 2001 From: carlocorradini Date: Mon, 19 Dec 2022 17:14:49 +0100 Subject: [PATCH 001/226] internal(refactor): improving maintainability: replaces tslint with eslint, added markdownlint, added cspell, added vscode extensions file, moved publish-website.sh to scripts directory, added __commons.sh script with common utility functions, added shellcheck, updated husky and lint staged configurations, updated benchmarks for eslint compatiblity --- .eslintignore | 5 + .eslintrc | 53 + .gitignore | 8 +- .husky/pre-commit | 6 + .lintstagedrc | 13 + .markdownlint.json | 5 + .markdownlintignore | 4 + .prettierignore | 10 +- .shellcheckrc | 1 + .vscode/extensions.json | 13 + .vscode/settings.json | 7 +- benchmarks/.eslintrc | 12 + benchmarks/array/graphql-js/async.ts | 2 +- benchmarks/array/graphql-js/standard.ts | 2 +- benchmarks/array/run.ts | 9 +- .../type-graphql/async-field-resolvers.ts | 6 +- .../array/type-graphql/simple-resolvers.ts | 9 +- benchmarks/array/type-graphql/standard.ts | 6 +- .../type-graphql/sync-field-resolvers.ts | 6 +- benchmarks/array/type-graphql/sync-getters.ts | 12 +- .../type-graphql/with-global-middleware.ts | 9 +- benchmarks/simple/graphql-js.ts | 1 + benchmarks/simple/run.ts | 12 +- benchmarks/simple/type-graphql.ts | 2 +- cspell.json | 19 + examples/.eslintrc | 10 + examples/tsconfig.json | 2 +- jest.config.js => jest.config.ts | 21 +- package-lock.json | 25124 +++++++++------- package.json | 62 +- publish-website.sh | 12 - scripts/__commons.sh | 143 + scripts/publish-website.sh | 76 + tests/.eslintrc | 11 + tests/tsconfig.json | 4 + tsconfig.json | 68 +- tslint.json | 52 - 37 files changed, 14998 insertions(+), 10819 deletions(-) create mode 100644 .eslintignore create mode 100644 .eslintrc create mode 100755 .husky/pre-commit create mode 100644 .lintstagedrc create mode 100644 .markdownlint.json create mode 100644 .markdownlintignore create mode 100644 .shellcheckrc create mode 100644 .vscode/extensions.json create mode 100644 benchmarks/.eslintrc create mode 100644 cspell.json create mode 100644 examples/.eslintrc rename jest.config.js => jest.config.ts (52%) delete mode 100644 publish-website.sh create mode 100755 scripts/__commons.sh create mode 100644 scripts/publish-website.sh create mode 100644 tests/.eslintrc create mode 100644 tests/tsconfig.json delete mode 100644 tslint.json diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 000000000..ac4a6c1ba --- /dev/null +++ b/.eslintignore @@ -0,0 +1,5 @@ +**/build/ +**/dist/ +**/coverage/ +**/node_modules/ +jest.config.ts diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 000000000..4b430c49b --- /dev/null +++ b/.eslintrc @@ -0,0 +1,53 @@ +{ + "root": true, + "env": { + "node": true, + "jest/globals": true + }, + "parser": "@typescript-eslint/parser", + "parserOptions": { + "project": [ + "tsconfig.json", + "tests/tsconfig.json", + "examples/tsconfig.json", + "benchmarks/tsconfig.json" + ], + "ecmaVersion": "latest", + "sourceType": "module" + }, + "settings": { + "import/parsers": { + "@typescript-eslint/parser": [".ts"] + }, + "import/resolver": { + "typescript": { + "alwaysTryTypes": true, + "project": [ + "tsconfig.json", + "tests/tsconfig.json", + "examples/tsconfig.json", + "benchmarks/tsconfig.json" + ] + } + } + }, + "plugins": ["import", "@typescript-eslint", "eslint-plugin-tsdoc", "prettier", "jest"], + "extends": [ + "airbnb-base", + "airbnb-typescript/base", + "eslint:recommended", + "plugin:@cspell/recommended", + "plugin:@typescript-eslint/recommended", + // "plugin:@typescript-eslint/recommended-requiring-type-checking", + "plugin:import/recommended", + "plugin:import/typescript", + "plugin:prettier/recommended", + "plugin:jest/recommended" + ], + "rules": { + "prettier/prettier": "error", + "tsdoc/syntax": "warn", + "import/no-default-export": "error", + "import/prefer-default-export": "off" + } +} diff --git a/.gitignore b/.gitignore index c2385eead..a3d4139ef 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,12 @@ # node modules -node_modules +**/node_modules/ # builded sources -build -dist +**/build/ +**/dist/ # coverage reports -coverage +**/coverage/ # IntelliJ stuffs .idea/ diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 000000000..d8af6bc83 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,6 @@ +#!/usr/bin/env sh + +# shellcheck source=./_/husky.sh +. "$(dirname -- "$0")/_/husky.sh" + +npx --no -- lint-staged diff --git a/.lintstagedrc b/.lintstagedrc new file mode 100644 index 000000000..88c759729 --- /dev/null +++ b/.lintstagedrc @@ -0,0 +1,13 @@ +{ + "{src,tests,examples}/**/*.ts": [ + "eslint --fix", + "prettier --write" + ], + "{src,tests,examples}/**/*.js": [ + "prettier --write" + ], + "*.md": [ + "markdownlint --fix", + "prettier --write" + ] +} diff --git a/.markdownlint.json b/.markdownlint.json new file mode 100644 index 000000000..83f4cbff6 --- /dev/null +++ b/.markdownlint.json @@ -0,0 +1,5 @@ +{ + "default": true, + "line-length": false, + "no-blanks-blockquote": false +} diff --git a/.markdownlintignore b/.markdownlintignore new file mode 100644 index 000000000..fc5c9dab5 --- /dev/null +++ b/.markdownlintignore @@ -0,0 +1,4 @@ +**/build/ +**/dist/ +**/coverage/ +**/node_modules/ diff --git a/.prettierignore b/.prettierignore index eb031a538..9d3424a21 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,18 +1,18 @@ # node modules -node_modules +**/node_modules/ # builded sources -build -dist +**/build/ +**/dist/ # coverage reports -coverage +**/coverage/ # IntelliJ stuffs .idea/ # parcel cache -.cache +.cache/ # changelog CHANGELOG.md diff --git a/.shellcheckrc b/.shellcheckrc new file mode 100644 index 000000000..8226afb6b --- /dev/null +++ b/.shellcheckrc @@ -0,0 +1 @@ +external-sources=true diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 000000000..9d396ab5e --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,13 @@ +{ + "recommendations": [ + "DavidAnson.vscode-markdownlint", + "dbaeumer.vscode-eslint", + "EditorConfig.EditorConfig", + "esbenp.prettier-vscode", + "GraphQL.vscode-graphql", + "Orta.vscode-jest", + "Gruntfuggly.todo-tree", + "timonwong.shellcheck", + "usernamehw.errorlens" + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json index 97bef4c57..6972be7df 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,8 @@ { - "typescript.tsdk": "./node_modules/typescript/lib" + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "typescript.tsdk": "./node_modules/typescript/lib", + "[jsonc]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + } } diff --git a/benchmarks/.eslintrc b/benchmarks/.eslintrc new file mode 100644 index 000000000..eb7786b22 --- /dev/null +++ b/benchmarks/.eslintrc @@ -0,0 +1,12 @@ +{ + "rules": { + "max-classes-per-file": "off", + "class-methods-use-this": "off", + "import/no-extraneous-dependencies": [ + "error", + { + "devDependencies": true + } + ] + } +} diff --git a/benchmarks/array/graphql-js/async.ts b/benchmarks/array/graphql-js/async.ts index 1898f6584..1d9e50eff 100644 --- a/benchmarks/array/graphql-js/async.ts +++ b/benchmarks/array/graphql-js/async.ts @@ -7,7 +7,6 @@ import { GraphQLInt, GraphQLList, } from "graphql"; - import { runBenchmark, ARRAY_ITEMS } from "../run"; const SampleObjectType: GraphQLObjectType = new GraphQLObjectType({ @@ -62,4 +61,5 @@ const schema = new GraphQLSchema({ }), }); +// eslint-disable-next-line no-console runBenchmark(schema).catch(console.error); diff --git a/benchmarks/array/graphql-js/standard.ts b/benchmarks/array/graphql-js/standard.ts index c6e2b1259..5960b24be 100644 --- a/benchmarks/array/graphql-js/standard.ts +++ b/benchmarks/array/graphql-js/standard.ts @@ -7,7 +7,6 @@ import { GraphQLInt, GraphQLList, } from "graphql"; - import { runBenchmark, ARRAY_ITEMS } from "../run"; const SampleObjectType: GraphQLObjectType = new GraphQLObjectType({ @@ -50,4 +49,5 @@ const schema = new GraphQLSchema({ }), }); +// eslint-disable-next-line no-console runBenchmark(schema).catch(console.error); diff --git a/benchmarks/array/run.ts b/benchmarks/array/run.ts index d9e70a115..87d33e07d 100644 --- a/benchmarks/array/run.ts +++ b/benchmarks/array/run.ts @@ -1,3 +1,5 @@ +/* eslint-disable no-console */ + import { GraphQLSchema, execute } from "graphql"; import { gql } from "apollo-server"; @@ -20,15 +22,16 @@ export async function runBenchmark(schema: GraphQLSchema) { } `; console.time("multipleNestedObjects"); - for (let i = 0; i < BENCHMARK_ITERATIONS; i++) { + for (let i = 0; i < BENCHMARK_ITERATIONS; i += 1) { + // eslint-disable-next-line no-await-in-loop const result = await execute({ schema, document: multipleNestedObjectsQuery }); console.assert(result.data !== undefined, "result data is undefined"); console.assert( - result.data!.multipleNestedObjects.length === ARRAY_ITEMS, + result.data?.multipleNestedObjects.length === ARRAY_ITEMS, "result data is not a proper array", ); console.assert( - result.data!.multipleNestedObjects[0].nestedField.booleanField === true, + result.data?.multipleNestedObjects[0].nestedField.booleanField === true, "data nestedField are incorrect", ); } diff --git a/benchmarks/array/type-graphql/async-field-resolvers.ts b/benchmarks/array/type-graphql/async-field-resolvers.ts index e69011b7a..8424302aa 100644 --- a/benchmarks/array/type-graphql/async-field-resolvers.ts +++ b/benchmarks/array/type-graphql/async-field-resolvers.ts @@ -9,7 +9,6 @@ import { FieldResolver, Root, } from "../../../build/package/dist"; - import { runBenchmark, ARRAY_ITEMS } from "../run"; @ObjectType() @@ -17,7 +16,7 @@ class SampleObject { @Field() stringField!: string; - @Field(type => Int) + @Field(() => Int) numberField!: number; @Field() @@ -29,7 +28,7 @@ class SampleObject { @Resolver(SampleObject) class SampleResolver { - @Query(returns => [SampleObject]) + @Query(() => [SampleObject]) multipleNestedObjects(): SampleObject[] { return Array.from( { length: ARRAY_ITEMS }, @@ -75,4 +74,5 @@ async function main() { await runBenchmark(schema); } +// eslint-disable-next-line no-console main().catch(console.error); diff --git a/benchmarks/array/type-graphql/simple-resolvers.ts b/benchmarks/array/type-graphql/simple-resolvers.ts index f2a97750d..10579d6a9 100644 --- a/benchmarks/array/type-graphql/simple-resolvers.ts +++ b/benchmarks/array/type-graphql/simple-resolvers.ts @@ -8,7 +8,6 @@ import { Int, MiddlewareFn, } from "../../../build/package/dist"; - import { runBenchmark, ARRAY_ITEMS } from "../run"; @ObjectType({ simpleResolvers: true }) @@ -16,7 +15,7 @@ class SampleObject { @Field() stringField!: string; - @Field(type => Int) + @Field(() => Int) numberField!: number; @Field() @@ -28,7 +27,7 @@ class SampleObject { @Resolver() class SampleResolver { - @Query(returns => [SampleObject]) + @Query(() => [SampleObject]) multipleNestedObjects(): SampleObject[] { return Array.from( { length: ARRAY_ITEMS }, @@ -46,7 +45,8 @@ class SampleResolver { } } -const log = (...args: any[]) => void 0; // noop +// eslint-disable-next-line @typescript-eslint/no-unused-vars +const log = (...args: unknown[]) => undefined; // noop const loggingMiddleware: MiddlewareFn = ({ info }, next) => { log(`${info.parentType.name}.${info.fieldName} accessed`); @@ -62,4 +62,5 @@ async function main() { await runBenchmark(schema); } +// eslint-disable-next-line no-console main().catch(console.error); diff --git a/benchmarks/array/type-graphql/standard.ts b/benchmarks/array/type-graphql/standard.ts index 36d5fbb9c..1b5f8036c 100644 --- a/benchmarks/array/type-graphql/standard.ts +++ b/benchmarks/array/type-graphql/standard.ts @@ -1,6 +1,5 @@ import "reflect-metadata"; import { buildSchema, Field, ObjectType, Resolver, Query, Int } from "../../../build/package/dist"; - import { runBenchmark, ARRAY_ITEMS } from "../run"; @ObjectType() @@ -8,7 +7,7 @@ class SampleObject { @Field() stringField!: string; - @Field(type => Int) + @Field(() => Int) numberField!: number; @Field() @@ -20,7 +19,7 @@ class SampleObject { @Resolver() class SampleResolver { - @Query(returns => [SampleObject]) + @Query(() => [SampleObject]) multipleNestedObjects(): SampleObject[] { return Array.from( { length: ARRAY_ITEMS }, @@ -46,4 +45,5 @@ async function main() { await runBenchmark(schema); } +// eslint-disable-next-line no-console main().catch(console.error); diff --git a/benchmarks/array/type-graphql/sync-field-resolvers.ts b/benchmarks/array/type-graphql/sync-field-resolvers.ts index 1c9cc6e16..9041b84c8 100644 --- a/benchmarks/array/type-graphql/sync-field-resolvers.ts +++ b/benchmarks/array/type-graphql/sync-field-resolvers.ts @@ -9,7 +9,6 @@ import { FieldResolver, Root, } from "../../../build/package/dist"; - import { runBenchmark, ARRAY_ITEMS } from "../run"; @ObjectType() @@ -17,7 +16,7 @@ class SampleObject { @Field() stringField!: string; - @Field(type => Int) + @Field(() => Int) numberField!: number; @Field() @@ -29,7 +28,7 @@ class SampleObject { @Resolver(SampleObject) class SampleResolver { - @Query(returns => [SampleObject]) + @Query(() => [SampleObject]) multipleNestedObjects(): SampleObject[] { return Array.from( { length: ARRAY_ITEMS }, @@ -75,4 +74,5 @@ async function main() { await runBenchmark(schema); } +// eslint-disable-next-line no-console main().catch(console.error); diff --git a/benchmarks/array/type-graphql/sync-getters.ts b/benchmarks/array/type-graphql/sync-getters.ts index 3f9d6e19f..ed559e0d3 100644 --- a/benchmarks/array/type-graphql/sync-getters.ts +++ b/benchmarks/array/type-graphql/sync-getters.ts @@ -1,30 +1,33 @@ import "reflect-metadata"; import { buildSchema, Field, ObjectType, Resolver, Query, Int } from "../../../build/package/dist"; - import { runBenchmark, ARRAY_ITEMS } from "../run"; @ObjectType() class SampleObject { stringField!: string; + @Field({ name: "stringField" }) get getStringField(): string { return this.stringField; } numberField!: number; - @Field(type => Int, { name: "numberField" }) + + @Field(() => Int, { name: "numberField" }) get getNumberField(): number { return this.numberField; } booleanField!: boolean; + @Field({ name: "booleanField" }) get getBooleanField(): boolean { return this.booleanField; } nestedField?: SampleObject; - @Field(type => SampleObject, { name: "nestedField", nullable: true }) + + @Field(() => SampleObject, { name: "nestedField", nullable: true }) get getNestedField(): SampleObject | undefined { return this.nestedField; } @@ -32,7 +35,7 @@ class SampleObject { @Resolver(SampleObject) class SampleResolver { - @Query(returns => [SampleObject]) + @Query(() => [SampleObject]) multipleNestedObjects(): SampleObject[] { return Array.from( { length: ARRAY_ITEMS }, @@ -59,4 +62,5 @@ async function main() { await runBenchmark(schema); } +// eslint-disable-next-line no-console main().catch(console.error); diff --git a/benchmarks/array/type-graphql/with-global-middleware.ts b/benchmarks/array/type-graphql/with-global-middleware.ts index 2b63a22dc..f8daaa101 100644 --- a/benchmarks/array/type-graphql/with-global-middleware.ts +++ b/benchmarks/array/type-graphql/with-global-middleware.ts @@ -8,7 +8,6 @@ import { Int, MiddlewareFn, } from "../../../build/package/dist"; - import { runBenchmark, ARRAY_ITEMS } from "../run"; @ObjectType() @@ -16,7 +15,7 @@ class SampleObject { @Field() stringField!: string; - @Field(type => Int) + @Field(() => Int) numberField!: number; @Field() @@ -28,7 +27,7 @@ class SampleObject { @Resolver() class SampleResolver { - @Query(returns => [SampleObject]) + @Query(() => [SampleObject]) multipleNestedObjects(): SampleObject[] { return Array.from( { length: ARRAY_ITEMS }, @@ -46,7 +45,8 @@ class SampleResolver { } } -const log = (...args: any[]) => void 0; // noop +// eslint-disable-next-line @typescript-eslint/no-unused-vars +const log = (...args: unknown[]) => undefined; // noop const loggingMiddleware: MiddlewareFn = ({ info }, next) => { log(`${info.parentType.name}.${info.fieldName} accessed`); @@ -62,4 +62,5 @@ async function main() { await runBenchmark(schema); } +// eslint-disable-next-line no-console main().catch(console.error); diff --git a/benchmarks/simple/graphql-js.ts b/benchmarks/simple/graphql-js.ts index f52cb81bd..d7839a2cc 100644 --- a/benchmarks/simple/graphql-js.ts +++ b/benchmarks/simple/graphql-js.ts @@ -44,4 +44,5 @@ const schema = new GraphQLSchema({ }), }); +// eslint-disable-next-line no-console runBenchmark(schema).catch(console.error); diff --git a/benchmarks/simple/run.ts b/benchmarks/simple/run.ts index 0a0cf23c5..a7a1fd9d4 100644 --- a/benchmarks/simple/run.ts +++ b/benchmarks/simple/run.ts @@ -1,3 +1,5 @@ +/* eslint-disable no-console */ + import { GraphQLSchema, execute } from "graphql"; import { gql } from "apollo-server"; @@ -12,10 +14,11 @@ export async function runBenchmark(schema: GraphQLSchema) { } `; console.time("singleObject"); - for (let i = 0; i < BENCHMARK_ITERATIONS; i++) { + for (let i = 0; i < BENCHMARK_ITERATIONS; i += 1) { + // eslint-disable-next-line no-await-in-loop const result = await execute({ schema, document: singleObjectQuery }); console.assert(result.data !== undefined, "result data is undefined"); - console.assert(result.data!.singleObject !== undefined, "data singleObject is undefined"); + console.assert(result.data?.singleObject !== undefined, "data singleObject is undefined"); } console.timeEnd("singleObject"); @@ -39,11 +42,12 @@ export async function runBenchmark(schema: GraphQLSchema) { } `; console.time("nestedObject"); - for (let i = 0; i < BENCHMARK_ITERATIONS; i++) { + for (let i = 0; i < BENCHMARK_ITERATIONS; i += 1) { + // eslint-disable-next-line no-await-in-loop const result = await execute({ schema, document: nestedObjectQuery }); console.assert(result.data !== undefined, "result data is undefined"); console.assert( - result.data!.nestedObject.nestedField.nestedField.nestedField.nestedField.sampleField !== + result.data?.nestedObject.nestedField.nestedField.nestedField.nestedField.sampleField !== undefined, "data nestedField are incorrect", ); diff --git a/benchmarks/simple/type-graphql.ts b/benchmarks/simple/type-graphql.ts index 85aafda5d..d90b719ee 100644 --- a/benchmarks/simple/type-graphql.ts +++ b/benchmarks/simple/type-graphql.ts @@ -1,6 +1,5 @@ import "reflect-metadata"; import { buildSchema, Field, ObjectType, Resolver, Query } from "../../build/package"; - import { runBenchmark } from "./run"; @ObjectType() @@ -47,4 +46,5 @@ async function main() { await runBenchmark(schema); } +// eslint-disable-next-line no-console main().catch(console.error); diff --git a/cspell.json b/cspell.json new file mode 100644 index 000000000..7226f11b0 --- /dev/null +++ b/cspell.json @@ -0,0 +1,19 @@ +{ + "version": "0.2", + "language": "en", + "useGitignore": true, + "import": [ + "@cspell/dict-node/cspell-ext.json", + "@cspell/dict-npm/cspell-ext.json", + "@cspell/dict-typescript/cspell-ext.json" + ], + "ignorePaths": [ + "**/build/", + "**/dist/", + "**/coverage/", + "**/node_modules/" + ], + "words": [ + "middlewares" + ] +} diff --git a/examples/.eslintrc b/examples/.eslintrc new file mode 100644 index 000000000..d26406272 --- /dev/null +++ b/examples/.eslintrc @@ -0,0 +1,10 @@ +{ + "rules": { + "import/no-extraneous-dependencies": [ + "error", + { + "devDependencies": true + } + ] + } +} diff --git a/examples/tsconfig.json b/examples/tsconfig.json index 2405dfb48..c8ff6ac11 100644 --- a/examples/tsconfig.json +++ b/examples/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "../tsconfig.json", "compilerOptions": { - "declaration": false, + "declaration": false }, "include": [".", "../src"] } diff --git a/jest.config.js b/jest.config.ts similarity index 52% rename from jest.config.js rename to jest.config.ts index e3f727394..0e6250819 100644 --- a/jest.config.js +++ b/jest.config.ts @@ -1,18 +1,23 @@ -module.exports = { +import { pathsToModuleNameMapper, JestConfigWithTsJest } from "ts-jest"; +import tsconfig from "./tsconfig.json"; + +export default { + preset: "ts-jest", verbose: false, - transform: { - "^.+\\.tsx?$": "ts-jest", - }, - testMatch: ["**/functional/**/*.ts", "**/units/**/*.ts"], - moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"], rootDir: "./", - roots: ["/tests", "/src"], + roots: ["/src", "/tests"], + testEnvironment: "node", collectCoverage: false, collectCoverageFrom: [ "/src/**/*.ts", "!/src/**/*.d.ts", "!/src/browser-shim.ts", ], + moduleNameMapper: pathsToModuleNameMapper(tsconfig.compilerOptions.paths), + transform: { + "^.+\\.tsx?$": ["ts-jest", { tsconfig: "./tests/tsconfig.json" }], + }, + testMatch: ["**/functional/**/*.ts", "**/units/**/*.ts"], + moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"], coverageDirectory: "/coverage", - testEnvironment: "node", }; diff --git a/package-lock.json b/package-lock.json index e1998eb03..80d75d6fe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,8 +5,18 @@ "requires": true, "packages": { "": { + "name": "type-graphql", "version": "0.0.0-unreleased", - "hasInstallScript": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/TypeGraphQL" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/typegraphql" + } + ], "license": "MIT", "dependencies": { "@types/glob": "^7.1.3", @@ -21,6 +31,10 @@ "devDependencies": { "@apollo/federation": "^0.21.2", "@apollo/gateway": "^0.23.2", + "@cspell/dict-node": "^4.0.2", + "@cspell/dict-npm": "^5.0.1", + "@cspell/dict-typescript": "^3.0.2", + "@cspell/eslint-plugin": "^6.17.0", "@graphql-modules/core": "^0.7.13", "@graphql-modules/di": "^0.7.17", "@mikro-orm/core": "^4.4.4", @@ -29,15 +43,27 @@ "@types/gulp": "^4.0.8", "@types/gulp-replace": "0.0.31", "@types/ioredis": "^4.22.0", - "@types/jest": "^26.0.20", + "@types/jest": "^29.2.4", "@types/mongoose": "^5.10.3", "@types/node": "^14.14.31", "@types/rimraf": "^3.0.0", + "@typescript-eslint/eslint-plugin": "^5.46.1", + "@typescript-eslint/parser": "^5.46.1", "apollo-cache-control": "^0.11.6", "apollo-server": "^2.21.0", "apollo-server-plugin-response-cache": "^0.6.0", "class-validator": "^0.13.1", + "cspell": "^6.17.0", "del": "^6.0.0", + "eslint": "^8.30.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-airbnb-typescript": "^17.0.0", + "eslint-config-prettier": "^8.5.0", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-jest": "^27.1.7", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-tsdoc": "^0.2.17", "graphql": "^15.5.0", "graphql-redis-subscriptions": "^2.3.1", "graphql-tag": "^2.11.0", @@ -45,38 +71,47 @@ "gulp-shell": "^0.8.0", "gulp-typescript": "^5.0.1", "gulpclass": "^0.2.0", - "husky": "^4.3.8", + "husky": "^8.0.2", "ioredis": "^4.23.0", - "jest": "^26.6.3", + "jest": "^29.3.1", "joiful": "^3.0.0", "lint-staged": "^10.5.4", + "markdownlint": "^0.26.2", + "markdownlint-cli": "^0.32.2", "mongoose": "5.10.18", "pg": "^8.5.1", "prettier": "^2.2.1", + "prettier-plugin-sh": "^0.12.8", "reflect-metadata": "^0.1.13", "rimraf": "^3.0.2", - "ts-jest": "^26.5.2", + "ts-jest": "^29.0.3", "ts-node": "^9.1.1", - "tslint": "^6.1.3", - "tslint-config-prettier": "^1.18.0", - "tslint-eslint-rules": "^5.4.0", "typedi": "^0.10.0", "typeorm": "^0.2.31", "typeorm-typedi-extensions": "^0.4.1", "typescript": "~4.2.2" }, "engines": { - "node": ">= 10.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typegraphql" + "node": ">= 10.13" }, "peerDependencies": { "class-validator": ">=0.12.0", "graphql": "^15.5.0" } }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@apollo/federation": { "version": "0.21.2", "resolved": "https://registry.npmjs.org/@apollo/federation/-/federation-0.21.2.tgz", @@ -202,35 +237,47 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dev": true, "dependencies": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz", + "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==", + "dev": true, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.10.tgz", - "integrity": "sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.10", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.10", - "@babel/types": "^7.12.10", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz", + "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-module-transforms": "^7.20.2", + "@babel/helpers": "^7.20.5", + "@babel/parser": "^7.20.5", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5", "convert-source-map": "^1.7.0", "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "semver": "^5.4.1", - "source-map": "^0.5.0" + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" }, "engines": { "node": ">=6.9.0" @@ -241,9 +288,9 @@ } }, "node_modules/@babel/core/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -257,12 +304,6 @@ } } }, - "node_modules/@babel/core/node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, "node_modules/@babel/core/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -270,175 +311,220 @@ "dev": true }, "node_modules/@babel/core/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, "bin": { - "semver": "bin/semver" + "semver": "bin/semver.js" } }, - "node_modules/@babel/core/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "node_modules/@babel/generator": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz", + "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==", "dev": true, + "dependencies": { + "@babel/types": "^7.20.5", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6.9.0" } }, - "node_modules/@babel/generator": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", - "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "dev": true, "dependencies": { - "@babel/types": "^7.12.11", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@babel/generator/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "node_modules/@babel/helper-compilation-targets": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "semver": "^6.3.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-function-name": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", - "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/types": "^7.12.11" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", - "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", "dev": true, - "dependencies": { - "@babel/types": "^7.12.10" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", - "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", + "node_modules/@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", "dev": true, "dependencies": { - "@babel/types": "^7.12.7" + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", - "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dev": true, "dependencies": { - "@babel/types": "^7.12.5" + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", - "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-simple-access": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/helper-validator-identifier": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", - "lodash": "^4.17.19" + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-module-transforms/node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz", - "integrity": "sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==", + "node_modules/@babel/helper-module-transforms": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", + "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", "dev": true, "dependencies": { - "@babel/types": "^7.12.10" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz", - "integrity": "sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", "dev": true, - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.12.7", - "@babel/helper-optimise-call-expression": "^7.12.10", - "@babel/traverse": "^7.12.10", - "@babel/types": "^7.12.11" + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", - "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dev": true, "dependencies": { - "@babel/types": "^7.12.1" + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", - "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "dev": true, "dependencies": { - "@babel/types": "^7.12.11" + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, "node_modules/@babel/helpers": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", - "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz", + "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==", "dev": true, "dependencies": { - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.5", - "@babel/types": "^7.12.5" + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/highlight/node_modules/ansi-styles": { @@ -479,13 +565,13 @@ "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "engines": { "node": ">=4" @@ -504,9 +590,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", - "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz", + "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -540,12 +626,12 @@ } }, "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", - "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -575,6 +661,21 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", @@ -648,43 +749,68 @@ } }, "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", - "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/template": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", - "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/traverse": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz", - "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==", + "node_modules/@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.12.11", - "@babel/generator": "^7.12.11", - "@babel/helper-function-name": "^7.12.11", - "@babel/helper-split-export-declaration": "^7.12.11", - "@babel/parser": "^7.12.11", - "@babel/types": "^7.12.12", + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz", + "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.5", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.5", + "@babel/types": "^7.20.5", "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/traverse/node_modules/debug": { @@ -704,12 +830,6 @@ } } }, - "node_modules/@babel/traverse/node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, "node_modules/@babel/traverse/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -717,105 +837,537 @@ "dev": true }, "node_modules/@babel/types": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", - "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", + "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/types/node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, - "node_modules/@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", - "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", - "dev": true, - "dependencies": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" - }, - "bin": { - "watch": "cli.js" - }, - "engines": { - "node": ">=0.1.95" - } + "node_modules/@cspell/cspell-bundled-dicts": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-6.17.0.tgz", + "integrity": "sha512-BA5cg2mfESbF3Fm/fIGXgbm0LhD8HKxCCiQDRN9FLaj4c69QUgFpQ9LpzGPZEtNn2Pjl2Jn/BEXX27hgaURG9g==", + "dev": true, + "dependencies": { + "@cspell/dict-ada": "^4.0.0", + "@cspell/dict-aws": "^3.0.0", + "@cspell/dict-bash": "^4.1.0", + "@cspell/dict-companies": "^3.0.3", + "@cspell/dict-cpp": "^4.0.0", + "@cspell/dict-cryptocurrencies": "^3.0.1", + "@cspell/dict-csharp": "^4.0.2", + "@cspell/dict-css": "^4.0.0", + "@cspell/dict-dart": "^2.0.0", + "@cspell/dict-django": "^4.0.0", + "@cspell/dict-docker": "^1.1.3", + "@cspell/dict-dotnet": "^4.0.0", + "@cspell/dict-elixir": "^4.0.0", + "@cspell/dict-en_us": "^4.1.0", + "@cspell/dict-en-gb": "1.1.33", + "@cspell/dict-filetypes": "^3.0.0", + "@cspell/dict-fonts": "^3.0.0", + "@cspell/dict-fullstack": "^3.0.0", + "@cspell/dict-git": "^2.0.0", + "@cspell/dict-golang": "^5.0.0", + "@cspell/dict-haskell": "^4.0.0", + "@cspell/dict-html": "^4.0.1", + "@cspell/dict-html-symbol-entities": "^4.0.0", + "@cspell/dict-java": "^5.0.2", + "@cspell/dict-latex": "^3.0.0", + "@cspell/dict-lorem-ipsum": "^3.0.0", + "@cspell/dict-lua": "^3.0.0", + "@cspell/dict-node": "^4.0.1", + "@cspell/dict-npm": "^5.0.0", + "@cspell/dict-php": "^3.0.3", + "@cspell/dict-powershell": "^3.0.0", + "@cspell/dict-public-licenses": "^2.0.0", + "@cspell/dict-python": "^4.0.0", + "@cspell/dict-r": "^2.0.0", + "@cspell/dict-ruby": "^3.0.0", + "@cspell/dict-rust": "^3.0.0", + "@cspell/dict-scala": "^3.0.0", + "@cspell/dict-software-terms": "^3.0.5", + "@cspell/dict-sql": "^2.0.0", + "@cspell/dict-svelte": "^1.0.0", + "@cspell/dict-swift": "^2.0.0", + "@cspell/dict-typescript": "^3.0.1", + "@cspell/dict-vue": "^3.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@cspell/cspell-pipe": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-6.17.0.tgz", + "integrity": "sha512-/VlX1cQtVBK9PFvSsaYVzV59i/2de9wrMSYDk+oGLXQzGBf5+5rPDZMJJ+QQkaexMdxoOXjCYTEXnNkPoVFyFA==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@cspell/cspell-service-bus": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-6.17.0.tgz", + "integrity": "sha512-HrzR23aeC/ykSOJvUr+uX6Dv7JLc5meNABLxauiC9jexOXFB3DKmo+DvJFerRDOGz6eYSwM0VXAR62OCHrWK/Q==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@cspell/cspell-types": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-6.17.0.tgz", + "integrity": "sha512-4FStDRqZVEP6oYtXqj1wUlF02EC5PN7giJ5f4YPeChwXyQBdZWUPQgEIKn0K9GIgKDMlKRo9tloAHVgtaZ+zOA==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@cspell/dict-ada": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-ada/-/dict-ada-4.0.1.tgz", + "integrity": "sha512-/E9o3nHrXOhYmQE43deKbxZcR3MIJAsa+66IzP9TXGHheKEx8b9dVMVVqydDDH8oom1H0U20NRPtu6KRVbT9xw==", + "dev": true }, - "node_modules/@graphql-modules/core": { - "version": "0.7.13", - "resolved": "https://registry.npmjs.org/@graphql-modules/core/-/core-0.7.13.tgz", - "integrity": "sha512-csBpOPmk5UdETC5UeN8wqacNMzOrfiMkdEUMixPuQ7/+i0wrvNR1k4FGy97DVb09YGrNhpwF3pphlc/2warhLQ==", - "dev": true, - "dependencies": { - "@graphql-modules/di": "0.7.13", - "apollo-server-caching": "0.5.0", - "graphql-toolkit": "0.5.16", - "tslib": "1.10.0" - }, - "peerDependencies": { - "graphql": "^14.1.1" - } + "node_modules/@cspell/dict-aws": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-aws/-/dict-aws-3.0.0.tgz", + "integrity": "sha512-O1W6nd5y3Z00AMXQMzfiYrIJ1sTd9fB1oLr+xf/UD7b3xeHeMeYE2OtcWbt9uyeHim4tk+vkSTcmYEBKJgS5bQ==", + "dev": true }, - "node_modules/@graphql-modules/core/node_modules/@graphql-modules/di": { - "version": "0.7.13", - "resolved": "https://registry.npmjs.org/@graphql-modules/di/-/di-0.7.13.tgz", - "integrity": "sha512-/WEFjDcrSnXfUS1IA8FwAnI+KQSB5FoBYYlvSQ6hUzD5WYk0Ge34Xt2JVUAlhmRDlgpHlErlFLW6ZhTsKA22/Q==", - "dev": true, - "dependencies": { - "events": "3.0.0", - "tslib": "1.10.0" - }, - "peerDependencies": { - "reflect-metadata": "^0.1.12" - } + "node_modules/@cspell/dict-bash": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-4.1.1.tgz", + "integrity": "sha512-8czAa/Mh96wu2xr0RXQEGMTBUGkTvYn/Pb0o+gqOO1YW+poXGQc3gx0YPqILDryP/KCERrNvkWUJz3iGbvwC2A==", + "dev": true }, - "node_modules/@graphql-modules/core/node_modules/@kamilkisiela/graphql-tools": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@kamilkisiela/graphql-tools/-/graphql-tools-4.0.6.tgz", - "integrity": "sha512-IPWa+dOFCE4zaCsrJrAMp7yWXnfOZLNhqoMEOmn958WkLM0mmsDc/W/Rh7/7xopIT6P0oizb6/N1iH5HnNXOUA==", - "dev": true, - "dependencies": { - "apollo-link": "^1.2.3", - "apollo-utilities": "^1.0.1", - "deprecated-decorator": "^0.1.6", - "iterall": "^1.1.3", - "uuid": "^3.1.0" - }, - "peerDependencies": { - "graphql": "^0.13.0 || ^14.0.0" - } + "node_modules/@cspell/dict-companies": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.0.4.tgz", + "integrity": "sha512-cO06nle+9dQGrjUOvP/zRAEV0xT3jKM8dHIXWhnd70IcZQnRdka6vxjW+KGaoXk3ABY5uMCymRmuaOZtLd1lFQ==", + "dev": true }, - "node_modules/@graphql-modules/core/node_modules/@types/glob": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", - "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", - "dev": true, - "dependencies": { - "@types/events": "*", - "@types/minimatch": "*", - "@types/node": "*" - } + "node_modules/@cspell/dict-cpp": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-4.0.1.tgz", + "integrity": "sha512-mD6mn0XFCqHCz2j6p/7OQm3yNFn1dlQq6vip1pLynvNWDRz5yKYDVRUQCTEORT7ThS0dLpI4BjCX84YUKNhibA==", + "dev": true }, - "node_modules/@graphql-modules/core/node_modules/apollo-server-caching": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.5.0.tgz", - "integrity": "sha512-l7ieNCGxUaUAVAAp600HjbUJxVaxjJygtPV0tPTe1Q3HkPy6LEWoY6mNHV7T268g1hxtPTxcdRu7WLsJrg7ufw==", - "dev": true, - "dependencies": { + "node_modules/@cspell/dict-cryptocurrencies": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-cryptocurrencies/-/dict-cryptocurrencies-3.0.1.tgz", + "integrity": "sha512-Tdlr0Ahpp5yxtwM0ukC13V6+uYCI0p9fCRGMGZt36rWv8JQZHIuHfehNl7FB/Qc09NCF7p5ep0GXbL+sVTd/+w==", + "dev": true + }, + "node_modules/@cspell/dict-csharp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-csharp/-/dict-csharp-4.0.2.tgz", + "integrity": "sha512-1JMofhLK+4p4KairF75D3A924m5ERMgd1GvzhwK2geuYgd2ZKuGW72gvXpIV7aGf52E3Uu1kDXxxGAiZ5uVG7g==", + "dev": true + }, + "node_modules/@cspell/dict-css": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-css/-/dict-css-4.0.1.tgz", + "integrity": "sha512-jxsncdeiN/wkZGqU8iLtn24n3e0Fwugj6T48rjWUItn/i3C9j2W7RXOVqd7ZIeWeV8ibyq0WWiwA8Ajg6XaKpA==", + "dev": true + }, + "node_modules/@cspell/dict-dart": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-dart/-/dict-dart-2.0.1.tgz", + "integrity": "sha512-YRuDX9k2qPSWDEsM26j8o7KMvaZ0DXc74ijK/VRwaksm1CBRPBW289pe2TE2K7y4SJjTKXgQ9urOVlozeQDpuA==", + "dev": true + }, + "node_modules/@cspell/dict-django": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-django/-/dict-django-4.0.1.tgz", + "integrity": "sha512-q3l7OH39qzeN2Y64jpY39SEAqki5BUzPTypnhzM40yT+LOGSWqSh9Ix5UecejtXPDVrD8vML+m7Bp5070h52HQ==", + "dev": true + }, + "node_modules/@cspell/dict-docker": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@cspell/dict-docker/-/dict-docker-1.1.4.tgz", + "integrity": "sha512-DnsDzv3e5aPZ/ciu7weoD85SYErl6ChKtphhyULcsSBFexucAAO54ZWx4fRCEwNv/T29KlZ7P5sh4BnSYokCRQ==", + "dev": true + }, + "node_modules/@cspell/dict-dotnet": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-dotnet/-/dict-dotnet-4.0.1.tgz", + "integrity": "sha512-l11TqlUX8cDgsE/1Zrea1PqLn63s20MY3jKWMbQVB5DMDPDO2f8Pukckkwxq5p/cxDABEjuGzfF1kTX3pAakBw==", + "dev": true + }, + "node_modules/@cspell/dict-elixir": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-elixir/-/dict-elixir-4.0.1.tgz", + "integrity": "sha512-IejBqiTTWSXpvBm6yg4qUfnJR0LwbUUCJcK5wXOMKEJitu3yDfrT9GPc6NQJXgokbg9nBjEyxVIzNcLgx2x3/Q==", + "dev": true + }, + "node_modules/@cspell/dict-en_us": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.1.1.tgz", + "integrity": "sha512-I7pgGfYNSOnyNtDWs89B5jY0lZsSEy4ORwZHzLK55MaOq8YaSs+HyXKQsCX/Ce5ktCV03M3ObB01xE4OKoWPuQ==", + "dev": true + }, + "node_modules/@cspell/dict-en-gb": { + "version": "1.1.33", + "resolved": "https://registry.npmjs.org/@cspell/dict-en-gb/-/dict-en-gb-1.1.33.tgz", + "integrity": "sha512-tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g==", + "dev": true + }, + "node_modules/@cspell/dict-filetypes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-filetypes/-/dict-filetypes-3.0.0.tgz", + "integrity": "sha512-Fiyp0z5uWaK0d2TfR9GMUGDKmUMAsOhGD5A0kHoqnNGswL2iw0KB0mFBONEquxU65fEnQv4R+jdM2d9oucujuA==", + "dev": true + }, + "node_modules/@cspell/dict-fonts": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-fonts/-/dict-fonts-3.0.0.tgz", + "integrity": "sha512-zTZni0AbwBVG1MKA0WpwPyIJPVF+gp6neXDQzHcu4RUnuQ4uDu0PVEuZjGHCJWwwFoR5JmkqZxVSg1y3ufJODA==", + "dev": true + }, + "node_modules/@cspell/dict-fullstack": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-fullstack/-/dict-fullstack-3.0.0.tgz", + "integrity": "sha512-BMQRTaeReLufjMwgWqqwPdrXQ7jkVGTv7/YvOLsHFZvcAP3eM7WqX+rvdXckLhJmuuzbceFRDKs5F/9Ig2x/tQ==", + "dev": true + }, + "node_modules/@cspell/dict-git": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-git/-/dict-git-2.0.0.tgz", + "integrity": "sha512-n1AxyX5Kgxij/sZFkxFJlzn3K9y/sCcgVPg/vz4WNJ4K9YeTsUmyGLA2OQI7d10GJeiuAo2AP1iZf2A8j9aj2w==", + "dev": true + }, + "node_modules/@cspell/dict-golang": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-5.0.1.tgz", + "integrity": "sha512-djsJC7OVKUpFdRm/aqBJEUSGP3kw/MDhAt7udYegnyQt2WjL3ZnVoG7r5eOEhPEEKzWVBYoi6UKSNpdQEodlbg==", + "dev": true + }, + "node_modules/@cspell/dict-haskell": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-haskell/-/dict-haskell-4.0.1.tgz", + "integrity": "sha512-uRrl65mGrOmwT7NxspB4xKXFUenNC7IikmpRZW8Uzqbqcu7ZRCUfstuVH7T1rmjRgRkjcIjE4PC11luDou4wEQ==", + "dev": true + }, + "node_modules/@cspell/dict-html": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-html/-/dict-html-4.0.2.tgz", + "integrity": "sha512-BskOE2K3AtGLkcjdJmo+H6/fjdfDP4XYAsEGXpB26rvdnXAnGEstE/Q8Do6UfJCvgOVYCpdUZLcMIEpoTy7QhQ==", + "dev": true + }, + "node_modules/@cspell/dict-html-symbol-entities": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-html-symbol-entities/-/dict-html-symbol-entities-4.0.0.tgz", + "integrity": "sha512-HGRu+48ErJjoweR5IbcixxETRewrBb0uxQBd6xFGcxbEYCX8CnQFTAmKI5xNaIt2PKaZiJH3ijodGSqbKdsxhw==", + "dev": true + }, + "node_modules/@cspell/dict-java": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-java/-/dict-java-5.0.3.tgz", + "integrity": "sha512-zQYPZxfso0W4QigsX5zX4lAZZYIrBcnHbrZkHplgmpDwR34GWBg2GypPMkDbli5Oogij/R7o4MaoefBQzcNIPA==", + "dev": true + }, + "node_modules/@cspell/dict-latex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-latex/-/dict-latex-3.0.0.tgz", + "integrity": "sha512-QsRWj+Jll4ueVbce8ofKa743oQ2exmbVNZN70MaMbmu8PSbjW2+Rj3OdExVStesANMj7qc20inS/TgPr8DrInQ==", + "dev": true + }, + "node_modules/@cspell/dict-lorem-ipsum": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-lorem-ipsum/-/dict-lorem-ipsum-3.0.0.tgz", + "integrity": "sha512-msEV24qEpzWZs2kcEicqYlhyBpR0amfDkJOs+iffC07si9ftqtQ+yP3lf1VFLpgqw3SQh1M1vtU7RD4sPrNlcQ==", + "dev": true + }, + "node_modules/@cspell/dict-lua": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-lua/-/dict-lua-3.0.0.tgz", + "integrity": "sha512-WOhSCgS5wMxkGQJ8siB90iTB9ElquJB7FeqYSbJqqs6cUwH8G7MM/CEDPL6h7vCo0+v3GuxQ8yKWDSUcUhz9Lg==", + "dev": true + }, + "node_modules/@cspell/dict-node": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-node/-/dict-node-4.0.2.tgz", + "integrity": "sha512-FEQJ4TnMcXEFslqBQkXa5HposMoCGsiBv2ux4IZuIXgadXeHKHUHk60iarWpjhzNzQLyN2GD7NoRMd12bK3Llw==", + "dev": true + }, + "node_modules/@cspell/dict-npm": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.0.1.tgz", + "integrity": "sha512-ynZ37WvOhl9nX4sq1CK6pAKeWkZXgJVv30ndOvnURJk0gtUAIjJ8rns2uHIMMhlsn1lsnaKlNlUuOtkUsd9qLw==", + "dev": true + }, + "node_modules/@cspell/dict-php": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-3.0.4.tgz", + "integrity": "sha512-QX6zE/ZfnT3O5lSwV8EPVh8Va39ds34gSNNR8I4GWiuDpKcTkZPFi4OLoP3Tlhbl/3G0Ha35OkSDLvZfu8mnkA==", + "dev": true + }, + "node_modules/@cspell/dict-powershell": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-3.0.0.tgz", + "integrity": "sha512-pkztY9Ak4oc33q+Qxcn9/CTOKo4N8YIRRE6v67WwQOncA5QIJfcOPUrjfR3Z8SpzElXhu3s9qtWWSqbCy6qmcA==", + "dev": true + }, + "node_modules/@cspell/dict-public-licenses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.1.tgz", + "integrity": "sha512-NZNwzkL5BqKddepDxvX/Qbji378Mso1TdnV4RFAN8hJoo6dSR0fv2TTI/Y0i/YWBmfmQGyTpEztBXtAw4qgjiA==", + "dev": true + }, + "node_modules/@cspell/dict-python": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.0.1.tgz", + "integrity": "sha512-1wtUgyaTqRiQY0/fryk0oW22lcxNUnZ5DwteTzfatMdbgR0OHXTlHbI8vYxpHLWalSoch7EpLsnaymG+fOrt8g==", + "dev": true + }, + "node_modules/@cspell/dict-r": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-r/-/dict-r-2.0.1.tgz", + "integrity": "sha512-KCmKaeYMLm2Ip79mlYPc8p+B2uzwBp4KMkzeLd5E6jUlCL93Y5Nvq68wV5fRLDRTf7N1LvofkVFWfDcednFOgA==", + "dev": true + }, + "node_modules/@cspell/dict-ruby": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-ruby/-/dict-ruby-3.0.0.tgz", + "integrity": "sha512-sA98T8Y1Pmq3RStVkO14E8vTWkq6JUn8c8PldiMyYgV0yfQgwhQfFAzlSfF3Gg2B0VkIdqt2et2SPN7f9wp7fQ==", + "dev": true + }, + "node_modules/@cspell/dict-rust": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-3.0.0.tgz", + "integrity": "sha512-L1T1IBsYJZVDmfOGAbVLcpc6arWxRRCSJYvHSwEDBGrNuMyJ4jx/NvBEz5crcKf4vVKgwVlXgzQlJJZ8AVxU9w==", + "dev": true + }, + "node_modules/@cspell/dict-scala": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-scala/-/dict-scala-3.0.0.tgz", + "integrity": "sha512-sIiCQDIMMnNns/fzD61z5npbh5pypaKq07Orqe0+eRfdQpika8iRSGUGFHVbtdd1JzB1DyTCV2e8OwdaQiXqJQ==", + "dev": true + }, + "node_modules/@cspell/dict-software-terms": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.0.6.tgz", + "integrity": "sha512-Zf7RrgLtdwDgQqHjS2OaL88haYZ2sBEBZX4ARmLTpJkS4lHM0nKRsPf7QKi9/AhrH1CGjOwgyx9Q/aVC/MdggA==", + "dev": true + }, + "node_modules/@cspell/dict-sql": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-sql/-/dict-sql-2.0.1.tgz", + "integrity": "sha512-7fvVcvy751cl31KMD5j04yMGq2UKj018/1hx3FNtdUI9UuUTMvhBrTAqHEEemR3ZeIC9i/5p5SQjwQ13bn04qw==", + "dev": true + }, + "node_modules/@cspell/dict-svelte": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-svelte/-/dict-svelte-1.0.1.tgz", + "integrity": "sha512-CYnEftTY2cFAy+Ag8AN+OxUtqhyhPfT7yX6Cxf701RSzLCllWDHZ4wlCii+uYqkscZUZp1Ko2QY+t3SyOqlG0g==", + "dev": true + }, + "node_modules/@cspell/dict-swift": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-swift/-/dict-swift-2.0.1.tgz", + "integrity": "sha512-gxrCMUOndOk7xZFmXNtkCEeroZRnS2VbeaIPiymGRHj5H+qfTAzAKxtv7jJbVA3YYvEzWcVE2oKDP4wcbhIERw==", + "dev": true + }, + "node_modules/@cspell/dict-typescript": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-3.0.2.tgz", + "integrity": "sha512-+xg/Lan+ObJbmGXuAN1RI84eUy+P6ZzFrWO1JoaU9zHXs62IHetkAGrUXfc+rM3m4O6lpMKawHjokFWqkFa4Vw==", + "dev": true + }, + "node_modules/@cspell/dict-vue": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-vue/-/dict-vue-3.0.0.tgz", + "integrity": "sha512-niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A==", + "dev": true + }, + "node_modules/@cspell/eslint-plugin": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/@cspell/eslint-plugin/-/eslint-plugin-6.17.0.tgz", + "integrity": "sha512-wftqhuSolXaJ6SSNH5aYGkdJRrZzcJArwwYU7ueYg2NJMuwAXLEQiEzorYMvIjZCdh/T3/DgweGZoxcUu1y+3A==", + "dev": true, + "dependencies": { + "cspell-lib": "6.17.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@cspell/strong-weak-map": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-6.17.0.tgz", + "integrity": "sha512-fRghm6eoUEH7Uz57t0SEKJNm4lqODF2/DRiLd2ek7QkzUHKrCetre/5UrvdE78GIUyl0+8GLx9iFwo/XFa6dDA==", + "dev": true, + "engines": { + "node": ">=14.6" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.0.tgz", + "integrity": "sha512-7yfvXy6MWLgWSFsLhz5yH3iQ52St8cdUY6FoGieKkRDVxuxmrNuUetIuu6cmjNWwniUHiWXjxCr5tTXDrbYS5A==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.19.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", + "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@graphql-modules/core": { + "version": "0.7.13", + "resolved": "https://registry.npmjs.org/@graphql-modules/core/-/core-0.7.13.tgz", + "integrity": "sha512-csBpOPmk5UdETC5UeN8wqacNMzOrfiMkdEUMixPuQ7/+i0wrvNR1k4FGy97DVb09YGrNhpwF3pphlc/2warhLQ==", + "dev": true, + "dependencies": { + "@graphql-modules/di": "0.7.13", + "apollo-server-caching": "0.5.0", + "graphql-toolkit": "0.5.16", + "tslib": "1.10.0" + }, + "peerDependencies": { + "graphql": "^14.1.1" + } + }, + "node_modules/@graphql-modules/core/node_modules/@graphql-modules/di": { + "version": "0.7.13", + "resolved": "https://registry.npmjs.org/@graphql-modules/di/-/di-0.7.13.tgz", + "integrity": "sha512-/WEFjDcrSnXfUS1IA8FwAnI+KQSB5FoBYYlvSQ6hUzD5WYk0Ge34Xt2JVUAlhmRDlgpHlErlFLW6ZhTsKA22/Q==", + "dev": true, + "dependencies": { + "events": "3.0.0", + "tslib": "1.10.0" + }, + "peerDependencies": { + "reflect-metadata": "^0.1.12" + } + }, + "node_modules/@graphql-modules/core/node_modules/@kamilkisiela/graphql-tools": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@kamilkisiela/graphql-tools/-/graphql-tools-4.0.6.tgz", + "integrity": "sha512-IPWa+dOFCE4zaCsrJrAMp7yWXnfOZLNhqoMEOmn958WkLM0mmsDc/W/Rh7/7xopIT6P0oizb6/N1iH5HnNXOUA==", + "dev": true, + "dependencies": { + "apollo-link": "^1.2.3", + "apollo-utilities": "^1.0.1", + "deprecated-decorator": "^0.1.6", + "iterall": "^1.1.3", + "uuid": "^3.1.0" + }, + "peerDependencies": { + "graphql": "^0.13.0 || ^14.0.0" + } + }, + "node_modules/@graphql-modules/core/node_modules/@types/glob": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", + "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", + "dev": true, + "dependencies": { + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@graphql-modules/core/node_modules/apollo-server-caching": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.5.0.tgz", + "integrity": "sha512-l7ieNCGxUaUAVAAp600HjbUJxVaxjJygtPV0tPTe1Q3HkPy6LEWoY6mNHV7T268g1hxtPTxcdRu7WLsJrg7ufw==", + "dev": true, + "dependencies": { "lru-cache": "^5.0.0" }, "engines": { @@ -957,61 +1509,117 @@ "@hapi/hoek": "^9.0.0" } }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", "dev": true, "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" }, "engines": { - "node": ">=8" + "node": ">=10.10.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "node_modules/@humanwhocodes/config-array/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/@istanbuljs/schema": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", - "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/@jest/console": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", - "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.3.1.tgz", + "integrity": "sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==", "dev": true, "dependencies": { - "@jest/types": "^26.6.2", + "@jest/types": "^29.3.1", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^26.6.2", - "jest-util": "^26.6.2", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", "slash": "^3.0.0" }, "engines": { - "node": ">= 10.14.2" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/console/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -1025,48 +1633,56 @@ } }, "node_modules/@jest/core": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", - "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.3.1.tgz", + "integrity": "sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==", "dev": true, "dependencies": { - "@jest/console": "^26.6.2", - "@jest/reporters": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/console": "^29.3.1", + "@jest/reporters": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", + "ci-info": "^3.2.0", "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^26.6.2", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-resolve-dependencies": "^26.6.3", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "jest-watcher": "^26.6.2", - "micromatch": "^4.0.2", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.2.0", + "jest-config": "^29.3.1", + "jest-haste-map": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-regex-util": "^29.2.0", + "jest-resolve": "^29.3.1", + "jest-resolve-dependencies": "^29.3.1", + "jest-runner": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "jest-watcher": "^29.3.1", + "micromatch": "^4.0.4", + "pretty-format": "^29.3.1", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, "engines": { - "node": ">= 10.14.2" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, "node_modules/@jest/core/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -1079,94 +1695,157 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/@jest/core/node_modules/pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, "node_modules/@jest/environment": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", - "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.3.1.tgz", + "integrity": "sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==", "dev": true, "dependencies": { - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/fake-timers": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", - "jest-mock": "^26.6.2" + "jest-mock": "^29.3.1" }, "engines": { - "node": ">= 10.14.2" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.3.1.tgz", + "integrity": "sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==", + "dev": true, + "dependencies": { + "expect": "^29.3.1", + "jest-snapshot": "^29.3.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.3.1.tgz", + "integrity": "sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.2.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/fake-timers": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", - "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.3.1.tgz", + "integrity": "sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==", "dev": true, "dependencies": { - "@jest/types": "^26.6.2", - "@sinonjs/fake-timers": "^6.0.1", + "@jest/types": "^29.3.1", + "@sinonjs/fake-timers": "^9.1.2", "@types/node": "*", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" + "jest-message-util": "^29.3.1", + "jest-mock": "^29.3.1", + "jest-util": "^29.3.1" }, "engines": { - "node": ">= 10.14.2" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/globals": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", - "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.3.1.tgz", + "integrity": "sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==", "dev": true, "dependencies": { - "@jest/environment": "^26.6.2", - "@jest/types": "^26.6.2", - "expect": "^26.6.2" + "@jest/environment": "^29.3.1", + "@jest/expect": "^29.3.1", + "@jest/types": "^29.3.1", + "jest-mock": "^29.3.1" }, "engines": { - "node": ">= 10.14.2" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/reporters": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", - "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.3.1.tgz", + "integrity": "sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/console": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@jridgewell/trace-mapping": "^0.3.15", + "@types/node": "*", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", + "istanbul-lib-instrument": "^5.1.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", + "jest-worker": "^29.3.1", "slash": "^3.0.0", - "source-map": "^0.6.0", "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^7.0.0" + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" }, "engines": { - "node": ">= 10.14.2" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "optionalDependencies": { - "node-notifier": "^8.0.0" + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, "node_modules/@jest/reporters/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -1179,99 +1858,92 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@jest/reporters/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/source-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", - "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.2.0.tgz", + "integrity": "sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ==", "dev": true, "dependencies": { + "@jridgewell/trace-mapping": "^0.3.15", "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" + "graceful-fs": "^4.2.9" }, "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/source-map/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/test-result": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", - "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.3.1.tgz", + "integrity": "sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==", "dev": true, "dependencies": { - "@jest/console": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/console": "^29.3.1", + "@jest/types": "^29.3.1", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" }, "engines": { - "node": ">= 10.14.2" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/test-sequencer": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", - "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz", + "integrity": "sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==", "dev": true, "dependencies": { - "@jest/test-result": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3" + "@jest/test-result": "^29.3.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.3.1", + "slash": "^3.0.0" }, "engines": { - "node": ">= 10.14.2" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/transform": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", - "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.3.1.tgz", + "integrity": "sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==", "dev": true, "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^26.6.2", - "babel-plugin-istanbul": "^6.0.0", + "@babel/core": "^7.11.6", + "@jest/types": "^29.3.1", + "@jridgewell/trace-mapping": "^0.3.15", + "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-util": "^26.6.2", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.3.1", + "jest-regex-util": "^29.2.0", + "jest-util": "^29.3.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" + "write-file-atomic": "^4.0.1" }, "engines": { - "node": ">= 10.14.2" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/transform/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -1284,29 +1956,40 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@jest/transform/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@jest/transform/node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, "engines": { - "node": ">=0.10.0" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", "dev": true, "dependencies": { + "@jest/schemas": "^29.0.0", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", - "@types/yargs": "^15.0.0", + "@types/yargs": "^17.0.8", "chalk": "^4.0.0" }, "engines": { - "node": ">= 10.14.2" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/types/node_modules/chalk": { @@ -1325,6 +2008,84 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@microsoft/tsdoc": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.14.2.tgz", + "integrity": "sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==", + "dev": true + }, + "node_modules/@microsoft/tsdoc-config": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.16.2.tgz", + "integrity": "sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==", + "dev": true, + "dependencies": { + "@microsoft/tsdoc": "0.14.2", + "ajv": "~6.12.6", + "jju": "~1.4.0", + "resolve": "~1.19.0" + } + }, + "node_modules/@microsoft/tsdoc-config/node_modules/resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dev": true, + "dependencies": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/@mikro-orm/core": { "version": "4.4.4", "resolved": "https://registry.npmjs.org/@mikro-orm/core/-/core-4.4.4.tgz", @@ -1431,12 +2192,12 @@ } }, "node_modules/@nodelib/fs.scandir": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", - "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "dependencies": { - "@nodelib/fs.stat": "2.0.4", + "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" }, "engines": { @@ -1444,21 +2205,21 @@ } }, "node_modules/@nodelib/fs.stat": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", - "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.walk": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", - "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "dependencies": { - "@nodelib/fs.scandir": "2.1.4", + "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" }, "engines": { @@ -1477,6 +2238,38 @@ "node": ">=10" } }, + "node_modules/@pkgr/utils": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.3.1.tgz", + "integrity": "sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "is-glob": "^4.0.3", + "open": "^8.4.0", + "picocolors": "^1.0.0", + "tiny-glob": "^0.2.9", + "tslib": "^2.4.0" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@pkgr/utils/node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", @@ -1562,19 +2355,25 @@ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", "dev": true }, + "node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", + "dev": true + }, "node_modules/@sinonjs/commons": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", - "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dev": true, "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", "dev": true, "dependencies": { "@sinonjs/commons": "^1.7.0" @@ -1632,9 +2431,9 @@ } }, "node_modules/@types/babel__core": { - "version": "7.1.12", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz", - "integrity": "sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ==", + "version": "7.1.20", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", + "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", "dev": true, "dependencies": { "@babel/parser": "^7.1.0", @@ -1645,18 +2444,18 @@ } }, "node_modules/@types/babel__generator": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz", - "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==", + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", "dev": true, "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz", - "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==", + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", "dev": true, "dependencies": { "@babel/parser": "^7.1.0", @@ -1664,9 +2463,9 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz", - "integrity": "sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", + "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", "dev": true, "dependencies": { "@babel/types": "^7.3.0" @@ -1791,9 +2590,9 @@ } }, "node_modules/@types/graceful-fs": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.4.tgz", - "integrity": "sha512-mWA/4zFQhfvOA8zWkXobwJvBD7vzcxgrOQ0J5CH1votGqdq9m7+FwtGaqyCZqC3NyyBkc9z4m+iry4LlqcMWJg==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", "dev": true, "dependencies": { "@types/node": "*" @@ -1865,20 +2664,64 @@ } }, "node_modules/@types/jest": { - "version": "26.0.20", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.20.tgz", - "integrity": "sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA==", + "version": "29.2.4", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.2.4.tgz", + "integrity": "sha512-PipFB04k2qTRPePduVLTRiPzQfvMeLwUN3Z21hsAKaB/W9IIzgB2pizCL466ftJlcyZqnHoC9ZHpxLGl3fS86A==", "dev": true, "dependencies": { - "jest-diff": "^26.0.0", - "pretty-format": "^26.0.0" + "expect": "^29.0.0", + "pretty-format": "^29.0.0" } }, - "node_modules/@types/keygrip": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", - "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==", - "dev": true + "node_modules/@types/jest/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@types/jest/node_modules/pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/keygrip": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", + "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==", + "dev": true }, "node_modules/@types/koa": { "version": "2.13.0", @@ -1965,12 +2808,6 @@ "@types/node": "*" } }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", - "dev": true - }, "node_modules/@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", @@ -1978,9 +2815,9 @@ "dev": true }, "node_modules/@types/prettier": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.6.tgz", - "integrity": "sha512-6gOkRe7OIioWAXfnO/2lFiv+SJichKVSys1mSsgyrYHSEjk8Ctv4tSR/Odvnu+HWlH2C8j53dahU03XmQdd5fA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", "dev": true }, "node_modules/@types/qs": { @@ -2006,9 +2843,9 @@ } }, "node_modules/@types/semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-+nVsLKlcUCeMzD2ufHEYuJ9a2ovstb6Dp52A5VsoKxDXgvE051XgHI/33I1EymwkRGQkwnA0LkhnUzituGs4EQ==" + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==" }, "node_modules/@types/serve-static": { "version": "1.13.9", @@ -2021,9 +2858,9 @@ } }, "node_modules/@types/stack-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz", - "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, "node_modules/@types/undertaker": { @@ -2080,101 +2917,128 @@ } }, "node_modules/@types/yargs": { - "version": "15.0.12", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.12.tgz", - "integrity": "sha512-f+fD/fQAo3BCbCDlrUpznF1A5Zp9rB0noS5vnoormHSIPFKL0Z2DcUJ3Gxp5ytH4uLRNxy7AwYUC9exZzqGMAw==", + "version": "17.0.17", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.17.tgz", + "integrity": "sha512-72bWxFKTK6uwWJAVT+3rF6Jo6RTojiJ27FQo8Rf60AL+VZbzoVPnMFhKsUnbjR8A3BTCYQ7Mv3hnl8T0A+CX9g==", "dev": true, "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", - "dev": true - }, - "node_modules/@wry/equality": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz", - "integrity": "sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==", - "dev": true, - "dependencies": { - "tslib": "^1.9.3" - } - }, - "node_modules/@wry/equality/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", "dev": true }, - "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.46.1.tgz", + "integrity": "sha512-YpzNv3aayRBwjs4J3oz65eVLXc9xx0PDbIRisHj+dYhvBn02MjYOD96P8YGiWEIFBrojaUjxvkaUpakD82phsA==", "dev": true, "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "@typescript-eslint/scope-manager": "5.46.1", + "@typescript-eslint/type-utils": "5.46.1", + "@typescript-eslint/utils": "5.46.1", + "debug": "^4.3.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" }, "engines": { - "node": ">= 0.6" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "node_modules/@typescript-eslint/eslint-plugin/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "ms": "2.1.2" }, "engines": { - "node": ">=0.4.0" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "node_modules/@typescript-eslint/eslint-plugin/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, "engines": { - "node": ">=0.4.0" + "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" } }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "node_modules/@typescript-eslint/parser": { + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.46.1.tgz", + "integrity": "sha512-RelQ5cGypPh4ySAtfIMBzBGyrNerQcmfA1oJvPj5f+H4jI59rl9xxpn4bonC0tQvUKOEN7eGBFWxFLK3Xepneg==", "dev": true, "dependencies": { - "debug": "4" + "@typescript-eslint/scope-manager": "5.46.1", + "@typescript-eslint/types": "5.46.1", + "@typescript-eslint/typescript-estree": "5.46.1", + "debug": "^4.3.4" }, "engines": { - "node": ">= 6.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/agent-base/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "node_modules/@typescript-eslint/parser/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -2188,30 +3052,60 @@ } } }, - "node_modules/agent-base/node_modules/ms": { + "node_modules/@typescript-eslint/parser/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/agentkeepalive": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.3.tgz", - "integrity": "sha512-wn8fw19xKZwdGPO47jivonaHRTd+nGOMP1z11sgGeQzDy2xd5FG0R67dIMcKHDE2cJ5y+YXV30XVGUBPRSY7Hg==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.46.1.tgz", + "integrity": "sha512-iOChVivo4jpwUdrJZyXSMrEIM/PvsbbDOX1y3UCKjSgWn+W89skxWaYXACQfxmIGhPVpRWK/VWPYc+bad6smIA==", "dev": true, "dependencies": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" + "@typescript-eslint/types": "5.46.1", + "@typescript-eslint/visitor-keys": "5.46.1" }, "engines": { - "node": ">= 8.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/agentkeepalive/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "node_modules/@typescript-eslint/type-utils": { + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.46.1.tgz", + "integrity": "sha512-V/zMyfI+jDmL1ADxfDxjZ0EMbtiVqj8LUGPAGyBkXXStWmCUErMpW873zEHsyguWCuq2iN4BrlWUkmuVj84yng==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.46.1", + "@typescript-eslint/utils": "5.46.1", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -2225,108 +3119,410 @@ } } }, - "node_modules/agentkeepalive/node_modules/ms": { + "node_modules/@typescript-eslint/type-utils/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/aggregate-error": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.0.tgz", - "integrity": "sha512-yKD9kEoJIR+2IFqhMwayIBgheLYbB3PS2OBhWae1L/ODTd/JF/30cW0bc9TqzRL3k4U41Dieu3BF4I29p8xesA==", + "node_modules/@typescript-eslint/type-utils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@typescript-eslint/type-utils/node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^3.2.0" + "tslib": "^1.8.1" }, "engines": { - "node": ">=8" + "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" } }, - "node_modules/aggregate-error/node_modules/indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "node_modules/@typescript-eslint/types": { + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.46.1.tgz", + "integrity": "sha512-Z5pvlCaZgU+93ryiYUwGwLl9AQVB/PQ1TsJ9NZ/gHzZjN7g9IAn6RSDkpCV8hqTwAiaj6fmCcKSQeBPlIpW28w==", "dev": true, "engines": { - "node": ">=4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.46.1.tgz", + "integrity": "sha512-j9W4t67QiNp90kh5Nbr1w92wzt+toiIsaVPnEblB2Ih2U9fqBTyqV9T3pYWZBRt6QoMh/zVWP59EpuCjc4VRBg==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "@typescript-eslint/types": "5.46.1", + "@typescript-eslint/visitor-keys": "5.46.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, + "dependencies": { + "ms": "2.1.2" + }, "engines": { - "node": ">=6" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "dependencies": { - "type-fest": "^0.11.0" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "node_modules/@typescript-eslint/typescript-estree/node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { - "ansi-wrap": "0.1.0" + "is-extglob": "^2.1.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, "engines": { - "node": ">=8" + "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" } }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@typescript-eslint/utils": { + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.46.1.tgz", + "integrity": "sha512-RBdBAGv3oEpFojaCYT4Ghn4775pdjvwfDOfQ2P6qzNVgQOVrnSPe5/Pb88kv7xzYQjoio0eKHKB9GJ16ieSxvA==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.46.1", + "@typescript-eslint/types": "5.46.1", + "@typescript-eslint/typescript-estree": "5.46.1", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" }, "engines": { - "node": ">=8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.46.1.tgz", + "integrity": "sha512-jczZ9noovXwy59KjRTk1OftT78pwygdcmCuBf8yMoWt/8O8l+6x2LSEze0E4TeepXK4MezW3zGSyoDRZK7Y9cg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.46.1", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@wry/equality": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz", + "integrity": "sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==", + "dev": true, + "dependencies": { + "tslib": "^1.9.3" + } + }, + "node_modules/@wry/equality/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agent-base/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/agent-base/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/agentkeepalive": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.3.tgz", + "integrity": "sha512-wn8fw19xKZwdGPO47jivonaHRTd+nGOMP1z11sgGeQzDy2xd5FG0R67dIMcKHDE2cJ5y+YXV30XVGUBPRSY7Hg==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/agentkeepalive/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/agentkeepalive/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/aggregate-error": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.0.tgz", + "integrity": "sha512-yKD9kEoJIR+2IFqhMwayIBgheLYbB3PS2OBhWae1L/ODTd/JF/30cW0bc9TqzRL3k4U41Dieu3BF4I29p8xesA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^3.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/aggregate-error/node_modules/indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "dependencies": { + "type-fest": "^0.11.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "dev": true, + "dependencies": { + "ansi-wrap": "0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/ansi-wrap": { @@ -2811,6 +4007,25 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", "dev": true }, + "node_modules/array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array-initial": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", @@ -2877,6 +4092,12 @@ "node": ">=0.10.0" } }, + "node_modules/array-timsort": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", + "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", + "dev": true + }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -2895,22 +4116,22 @@ "node": ">=0.10.0" } }, - "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "node_modules/array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", "dev": true, "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, "engines": { - "node": ">=0.8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/assign-symbols": { @@ -3012,47 +4233,31 @@ "node": ">= 4.5.0" } }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, "node_modules/babel-jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", - "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.3.1.tgz", + "integrity": "sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==", "dev": true, "dependencies": { - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/babel__core": "^7.1.7", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^26.6.2", + "@jest/transform": "^29.3.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.2.0", "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", + "graceful-fs": "^4.2.9", "slash": "^3.0.0" }, "engines": { - "node": ">= 10.14.2" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.8.0" } }, "node_modules/babel-jest/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -3066,15 +4271,15 @@ } }, "node_modules/babel-plugin-istanbul": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", - "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-instrument": "^5.0.4", "test-exclude": "^6.0.0" }, "engines": { @@ -3082,18 +4287,18 @@ } }, "node_modules/babel-plugin-jest-hoist": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", - "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz", + "integrity": "sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA==", "dev": true, "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", + "@types/babel__core": "^7.1.14", "@types/babel__traverse": "^7.0.6" }, "engines": { - "node": ">= 10.14.2" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/babel-preset-current-node-syntax": { @@ -3120,16 +4325,16 @@ } }, "node_modules/babel-preset-jest": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", - "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz", + "integrity": "sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA==", "dev": true, "dependencies": { - "babel-plugin-jest-hoist": "^26.6.2", + "babel-plugin-jest-hoist": "^29.2.0", "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { - "node": ">= 10.14.2" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { "@babel/core": "^7.0.0" @@ -3216,15 +4421,6 @@ } ] }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -3336,11 +4532,33 @@ "node": ">=8" } }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true + "node_modules/browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } }, "node_modules/bs-logger": { "version": "0.2.6", @@ -3420,15 +4638,6 @@ "node": ">=4" } }, - "node_modules/builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/busboy": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", @@ -3547,23 +4756,21 @@ "node": ">=6" } }, - "node_modules/capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", + "node_modules/caniuse-lite": { + "version": "1.0.30001439", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001439.tgz", + "integrity": "sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A==", "dev": true, - "dependencies": { - "rsvp": "^4.8.4" - }, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] }, "node_modules/chalk": { "version": "3.0.0", @@ -3618,15 +4825,18 @@ } }, "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz", + "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==", + "dev": true, + "engines": { + "node": ">=8" + } }, "node_modules/cjs-module-lexer": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", - "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", "dev": true }, "node_modules/class-utils": { @@ -3738,6 +4948,43 @@ "node": ">=6" } }, + "node_modules/clear-module": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/clear-module/-/clear-module-4.1.2.tgz", + "integrity": "sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw==", + "dev": true, + "dependencies": { + "parent-module": "^2.0.0", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clear-module/node_modules/parent-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-2.0.0.tgz", + "integrity": "sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==", + "dev": true, + "dependencies": { + "callsites": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clear-module/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -3985,7 +5232,7 @@ "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, "engines": { "iojs": ">= 1.0.0", @@ -4088,10 +5335,26 @@ "node": ">= 6" } }, - "node_modules/compare-versions": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", - "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", + "node_modules/comment-json": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", + "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", + "dev": true, + "dependencies": { + "array-timsort": "^1.0.3", + "core-util-is": "^1.0.3", + "esprima": "^4.0.1", + "has-own-prop": "^2.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/comment-json/node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, "node_modules/component-emitter": { @@ -4120,6 +5383,29 @@ "typedarray": "^0.0.6" } }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true + }, "node_modules/content-disposition": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", @@ -4259,186 +5545,270 @@ "node": ">= 8" } }, - "node_modules/cssfilter": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", - "integrity": "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4=", - "dev": true - }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "node_modules/cspell": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/cspell/-/cspell-6.17.0.tgz", + "integrity": "sha512-R1TXu1p2vON6rHXxZAUPbdf+v+ckPhWiEb3apq2PyxLSjzMiZDm2ThIwRcsQaMLLZyFOD+J3SHj0lZi1Qoaa8w==", "dev": true, "dependencies": { - "cssom": "~0.3.6" + "@cspell/cspell-pipe": "6.17.0", + "chalk": "^4.1.2", + "commander": "^9.4.1", + "cspell-gitignore": "6.17.0", + "cspell-glob": "6.17.0", + "cspell-lib": "6.17.0", + "fast-json-stable-stringify": "^2.1.0", + "file-entry-cache": "^6.0.1", + "fs-extra": "^10.1.0", + "get-stdin": "^8.0.0", + "glob": "^8.0.3", + "imurmurhash": "^0.1.4", + "semver": "^7.3.8", + "strip-ansi": "^6.0.1", + "vscode-uri": "^3.0.6" + }, + "bin": { + "cspell": "bin.js" }, "engines": { - "node": ">=8" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/streetsidesoftware/cspell?sponsor=1" } }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "node_modules/cspell-dictionary": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-6.17.0.tgz", + "integrity": "sha512-jUb/kIR2glYliRem11kCu7gaXUcHKp8L2G73LmzIULx+UKRgTa/100FXqm5lZUWnCaIznMmaA2QtutP+xYy5AQ==", "dev": true, "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" + "@cspell/cspell-pipe": "6.17.0", + "@cspell/cspell-types": "6.17.0", + "cspell-trie-lib": "6.17.0", + "fast-equals": "^4.0.3", + "gensequence": "^4.0.2" + }, + "engines": { + "node": ">=14" } }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "node_modules/cspell-gitignore": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-6.17.0.tgz", + "integrity": "sha512-SDyPv6LqBebvoTKFP+ewh51gvmv1z8JDg7llumUFH2u1WoiMZBLLOL2pAa9UM0f6eEzBC1iS6nWQ+20VJx2yQA==", "dev": true, "dependencies": { - "assert-plus": "^1.0.0" + "cspell-glob": "6.17.0", + "find-up": "^5.0.0" + }, + "bin": { + "cspell-gitignore": "bin.js" }, "engines": { - "node": ">=0.10" + "node": ">=14" } }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "node_modules/cspell-gitignore/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/cspell-gitignore/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { - "ms": "2.0.0" + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "node_modules/cspell-gitignore/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/decimal.js": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", - "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==", - "dev": true - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "node_modules/cspell-glob": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-6.17.0.tgz", + "integrity": "sha512-iKz2CvUU1HXuNJfxYRwSQFck3pCl9EhTx2qIR0lKf4gccCR89p44qxIR98nTbX1OF89lhfH6sUHtzkJ3nPWh+A==", "dev": true, + "dependencies": { + "micromatch": "^4.0.5" + }, "engines": { - "node": ">=0.10" + "node": ">=14" } }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", - "dev": true - }, - "node_modules/deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "node_modules/cspell-grammar": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-6.17.0.tgz", + "integrity": "sha512-3B9QmKWOjAPzLYqesLP2niIbo6Yvb4rodjIwFXUvL3vmMZF4c9HFU/JVTTerLxrwh3DH8u6Mac52RzUurOJ15Q==", "dev": true, + "dependencies": { + "@cspell/cspell-pipe": "6.17.0", + "@cspell/cspell-types": "6.17.0" + }, + "bin": { + "cspell-grammar": "bin.js" + }, "engines": { - "node": ">=0.10.0" + "node": ">=14" } }, - "node_modules/default-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "node_modules/cspell-io": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-6.17.0.tgz", + "integrity": "sha512-cofZlvKzXP3QytGM6OlREQIXLFcSdEKOFubSVHkRvAVX3IqeQnKo4oVF85C6McjwXTrJ1OH+SDP0vcpn6mKqTg==", "dev": true, "dependencies": { - "kind-of": "^5.0.2" + "@cspell/cspell-service-bus": "6.17.0", + "node-fetch": "^2.6.7" }, "engines": { - "node": ">=0.10.0" + "node": ">=14" } }, - "node_modules/default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", + "node_modules/cspell-io/node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, "engines": { - "node": ">= 0.10" + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "node_modules/cspell-io/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/cspell-io/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/cspell-io/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "node_modules/cspell-lib": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-6.17.0.tgz", + "integrity": "sha512-oZNkm0UhRa4nkoYPij23z7cbVXFPVHs7SdGC6IAVc71uz44nLNeC3e8+UnTErOU7nlROvjp9k3G90DEwej1TqQ==", "dev": true, "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "@cspell/cspell-bundled-dicts": "6.17.0", + "@cspell/cspell-pipe": "6.17.0", + "@cspell/cspell-types": "6.17.0", + "@cspell/strong-weak-map": "6.17.0", + "clear-module": "^4.1.2", + "comment-json": "^4.2.3", + "configstore": "^5.0.1", + "cosmiconfig": "^8.0.0", + "cspell-dictionary": "6.17.0", + "cspell-glob": "6.17.0", + "cspell-grammar": "6.17.0", + "cspell-io": "6.17.0", + "cspell-trie-lib": "6.17.0", + "fast-equals": "^4.0.3", + "find-up": "^5.0.0", + "fs-extra": "^10.1.0", + "gensequence": "^4.0.2", + "import-fresh": "^3.3.0", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0", + "vscode-languageserver-textdocument": "^1.0.7", + "vscode-uri": "^3.0.6" }, "engines": { - "node": ">=0.10.0" + "node": ">=14.6" } }, - "node_modules/del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", + "node_modules/cspell-lib/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/cspell-lib/node_modules/cosmiconfig": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", + "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", "dev": true, "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/cspell-lib/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { "node": ">=10" @@ -4447,316 +5817,290 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "node_modules/cspell-lib/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, "engines": { - "node": ">=0.4.0" + "node": ">=12" } }, - "node_modules/denque": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz", - "integrity": "sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ==", + "node_modules/cspell-lib/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "engines": { - "node": ">=0.10" + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "node_modules/cspell-lib/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/deprecated-decorator": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz", - "integrity": "sha1-AJZjF7ehL+kvPMgx91g68ym4bDc=", - "dev": true - }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "node_modules/detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "node_modules/cspell-lib/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "node_modules/cspell-lib/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/dicer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", - "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", + "node_modules/cspell-trie-lib": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-6.17.0.tgz", + "integrity": "sha512-hmyZHhemWYLjjEDItAhgAF0tuL2iiQg+5PzUmELKIBSWEsmFdfxh1xWCmo1q0+vzVML+0Ms2cspiGyS9y/CF7A==", "dev": true, "dependencies": { - "streamsearch": "0.1.2" + "@cspell/cspell-pipe": "6.17.0", + "@cspell/cspell-types": "6.17.0", + "fs-extra": "^10.1.0", + "gensequence": "^4.0.2" }, "engines": { - "node": ">=4.5.0" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" + "node": ">=14" } }, - "node_modules/diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", + "node_modules/cspell-trie-lib/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, "engines": { - "node": ">= 10.14.2" + "node": ">=12" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/cspell/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" + "balanced-match": "^1.0.0" } }, - "node_modules/doctrine": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz", - "integrity": "sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM=", + "node_modules/cspell/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "esutils": "^1.1.6", - "isarray": "0.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/doctrine/node_modules/esutils": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz", - "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=", + "node_modules/cspell/node_modules/commander": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", + "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": "^12.20.0 || >=14" } }, - "node_modules/doctrine/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "node_modules/cspell/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, "dependencies": { - "webidl-conversions": "^5.0.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "node_modules/cspell/node_modules/glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==", + "node_modules/cspell/node_modules/minimatch": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", + "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "node_modules/cssfilter": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", + "integrity": "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4=", + "dev": true + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", "dev": true, "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" + "es5-ext": "^0.10.50", + "type": "^1.0.1" } }, - "node_modules/each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { - "is-plain-object": "^2.0.1", - "object.defaults": "^1.1.0" + "ms": "2.0.0" } }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/editions": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.4.tgz", - "integrity": "sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg==", + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true, "engines": { - "node": ">=0.8" + "node": ">=0.10" } }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", "dev": true }, - "node_modules/emittery": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", - "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" + "node": ">=4.0.0" } }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "node_modules/deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", "dev": true, "engines": { - "node": ">= 0.8" + "node": ">=0.10.0" } }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "node_modules/default-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", + "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", "dev": true, - "optional": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "kind-of": "^5.0.2" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "node_modules/default-resolution": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", + "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1" - }, "engines": { - "node": ">=8.6" + "node": ">= 0.10" } }, - "node_modules/err-code": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", - "dev": true - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" + "engines": { + "node": ">=8" } }, - "node_modules/es-abstract": { - "version": "1.18.0-next.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", - "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.1", - "object-inspect": "^1.9.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.3", - "string.prototype.trimstart": "^1.0.3" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { "node": ">= 0.4" @@ -4765,1380 +6109,1368 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "dev": true, - "dependencies": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" + "node": ">=0.10.0" } }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "node_modules/del": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", "dev": true, "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true, - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" + "engines": { + "node": ">=0.4.0" } }, - "node_modules/es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "node_modules/denque": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz", + "integrity": "sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ==", "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" + "engines": { + "node": ">=0.10" } }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", "dev": true, "engines": { - "node": ">=6" + "node": ">= 0.6" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "node_modules/deprecated-decorator": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz", + "integrity": "sha1-AJZjF7ehL+kvPMgx91g68ym4bDc=", "dev": true }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", "dev": true, "engines": { - "node": ">=0.8.0" + "node": ">=0.10.0" } }, - "node_modules/escaya": { - "version": "0.0.61", - "resolved": "https://registry.npmjs.org/escaya/-/escaya-0.0.61.tgz", - "integrity": "sha512-WLLmvdG72Z0pCq8XUBd03GEJlAiMceXFanjdQeEzeSiuV1ZgrJqbkU7ZEe/hu0OsBlg5wLlySEeOvfzcGoO8mg==", + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, "engines": { - "node": ">=6.0.0" + "node": ">=8" } }, - "node_modules/escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "node_modules/dicer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", + "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", "dev": true, "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" + "streamsearch": "0.1.2" }, "engines": { - "node": ">=4.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" + "node": ">=4.5.0" } }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, - "optional": true, "engines": { - "node": ">=0.10.0" + "node": ">=0.3.1" } }, - "node_modules/esm": { - "version": "3.2.25", - "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", - "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", + "node_modules/diff-sequences": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.3.1.tgz", + "integrity": "sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==", "dev": true, "engines": { - "node": ">=6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "dependencies": { + "path-type": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, "engines": { - "node": ">=4.0" + "node": ">=8" } }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "node_modules/dot-prop/node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true, + "node_modules/dotenv": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", + "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==", + "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/eventemitter3": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", - "dev": true + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } }, - "node_modules/events": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", - "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==", + "node_modules/each-props": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", + "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.1", + "object.defaults": "^1.1.0" + } + }, + "node_modules/editions": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.4.tgz", + "integrity": "sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg==", "dev": true, "engines": { - "node": ">=0.8.x" + "node": ">=0.8" } }, - "node_modules/exec-sh": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", - "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==", + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", "dev": true }, - "node_modules/execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "node_modules/electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", "dev": true, "engines": { - "node": ">= 0.8.0" + "node": ">= 0.8" } }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, + "optional": true, "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" + "iconv-lite": "^0.6.2" } }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", "dev": true, + "optional": true, "dependencies": { - "is-descriptor": "^0.1.0" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" + "once": "^1.4.0" } }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "node_modules/enhanced-resolve": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", "dev": true, "dependencies": { - "kind-of": "^3.0.2" + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=10.13.0" } }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, "dependencies": { - "is-buffer": "^1.1.5" + "ansi-colors": "^4.1.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8.6" } }, - "node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, "engines": { - "node": ">=0.10.0" + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "node_modules/err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "dev": true + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" + "is-arrayish": "^0.2.1" } }, - "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "node_modules/es-abstract": { + "version": "1.20.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.5.tgz", + "integrity": "sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "unbox-primitive": "^1.0.2" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/expand-brackets/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "has": "^1.0.3" } }, - "node_modules/expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "dependencies": { - "homedir-polyfill": "^1.0.1" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/expect": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", - "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", + "node_modules/es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", "dev": true, "dependencies": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - }, - "engines": { - "node": ">= 10.14.2" + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" } }, - "node_modules/express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "dev": true, "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" } }, - "node_modules/ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", "dev": true, "dependencies": { - "type": "^2.0.0" + "d": "^1.0.1", + "ext": "^1.1.2" } }, - "node_modules/ext/node_modules/type": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.3.0.tgz", - "integrity": "sha512-rgPIqOdfK/4J9FhiVrZ3cveAjRRo5rsQBAIhnylX874y1DX/kEKSVdLsnuHB6l1KTjHyU01VjiMBHgU2adejyg==", - "dev": true + "node_modules/es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", "dev": true }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, "engines": { - "node": ">=0.10.0" + "node": ">=0.8.0" } }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "node_modules/escaya": { + "version": "0.0.61", + "resolved": "https://registry.npmjs.org/escaya/-/escaya-0.0.61.tgz", + "integrity": "sha512-WLLmvdG72Z0pCq8XUBd03GEJlAiMceXFanjdQeEzeSiuV1ZgrJqbkU7ZEe/hu0OsBlg5wLlySEeOvfzcGoO8mg==", "dev": true, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, "engines": { - "node": ">=0.10.0" + "node": ">=6.0.0" } }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "node_modules/eslint": { + "version": "8.30.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.30.0.tgz", + "integrity": "sha512-MGADB39QqYuzEGov+F/qb18r4i7DohCDOfatHaxI2iGlPuC65bwG2gxgO+7DkyL38dRFaRH7RaRAgU6JKL9rMQ==", "dev": true, "dependencies": { - "is-descriptor": "^1.0.0" + "@eslint/eslintrc": "^1.4.0", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" }, "engines": { - "node": ">=0.10.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "node_modules/eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", "dev": true, "dependencies": { - "is-extendable": "^0.1.0" + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" }, "engines": { - "node": ">=0.10.0" + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.2" } }, - "node_modules/extglob/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "node_modules/eslint-config-airbnb-base/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "engines": { - "node": ">=0.10.0" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "node_modules/eslint-config-airbnb-typescript": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-17.0.0.tgz", + "integrity": "sha512-elNiuzD0kPAPTXjFWg+lE24nMdHMtuxgYoD30OyMD6yrW1AhFZPAg27VX7d3tzOErw+dgJTNWfRSDqEcXb4V0g==", "dev": true, "dependencies": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" + "eslint-config-airbnb-base": "^15.0.0" }, - "engines": { - "node": ">= 0.10" + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^5.13.0", + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.3" } }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", - "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "node_modules/eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", - "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" + "bin": { + "eslint-config-prettier": "bin/cli.js" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "eslint": ">=7.0.0" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "node_modules/fastq": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.0.tgz", - "integrity": "sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==", + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", "dev": true, "dependencies": { - "reusify": "^1.0.4" + "debug": "^3.2.7", + "resolve": "^1.20.0" } }, - "node_modules/fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { - "bser": "2.1.1" + "ms": "^2.1.1" } }, - "node_modules/figlet": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.5.0.tgz", - "integrity": "sha512-ZQJM4aifMpz6H19AW1VqvZ7l4pOE9p7i/3LyxgO2kp+PO/VcDYNqIHEMtkccqIhTXMKci4kjueJr/iCQEaT/Ww==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } + "node_modules/eslint-import-resolver-node/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "node_modules/eslint-import-resolver-typescript": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.2.tgz", + "integrity": "sha512-zX4ebnnyXiykjhcBvKIf5TNvt8K7yX6bllTRZ14MiurKPjDpCAZujlszTdB8pcNXhZcOf+god4s9SjQa5GnytQ==", "dev": true, "dependencies": { - "escape-string-regexp": "^1.0.5" + "debug": "^4.3.4", + "enhanced-resolve": "^5.10.0", + "get-tsconfig": "^4.2.0", + "globby": "^13.1.2", + "is-core-module": "^2.10.0", + "is-glob": "^4.0.3", + "synckit": "^0.8.4" }, "engines": { - "node": ">=8" + "node": "^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*" } }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "node_modules/eslint-import-resolver-typescript/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { - "to-regex-range": "^5.0.1" + "ms": "2.1.2" }, "engines": { - "node": ">=8" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "node_modules/eslint-import-resolver-typescript/node_modules/globby": { + "version": "13.1.3", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.3.tgz", + "integrity": "sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==", "dev": true, "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" }, "engines": { - "node": ">= 0.8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/eslint-import-resolver-typescript/node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "is-extglob": "^2.1.1" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/find-versions": { + "node_modules/eslint-import-resolver-typescript/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/eslint-import-resolver-typescript/node_modules/slash": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz", - "integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true, - "dependencies": { - "semver-regex": "^3.1.2" - }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "node_modules/eslint-module-utils": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", "dev": true, "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" + "debug": "^3.2.7" }, "engines": { - "node": ">= 0.10" + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, - "node_modules/findup-sync/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" + "ms": "^2.1.1" } }, - "node_modules/findup-sync/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "node_modules/eslint-module-utils/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", "dev": true, "dependencies": { - "is-extendable": "^0.1.0" + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, - "node_modules/findup-sync/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "esutils": "^2.0.2" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/findup-sync/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "node_modules/eslint-plugin-import/node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { - "is-extendable": "^0.1.0" + "is-extglob": "^2.1.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/findup-sync/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "node_modules/eslint-plugin-jest": { + "version": "27.1.7", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.1.7.tgz", + "integrity": "sha512-0QVzf+og4YI1Qr3UoprkqqhezAZjFffdi62b0IurkCXMqPtRW84/UT4CKsYT80h/D82LA9avjO/80Ou1LdgbaQ==", "dev": true, + "dependencies": { + "@typescript-eslint/utils": "^5.10.0" + }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^5.0.0", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } } }, - "node_modules/findup-sync/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "node_modules/eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", "dev": true, "dependencies": { - "kind-of": "^3.0.2" + "prettier-linter-helpers": "^1.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } } }, - "node_modules/findup-sync/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "node_modules/eslint-plugin-tsdoc": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/eslint-plugin-tsdoc/-/eslint-plugin-tsdoc-0.2.17.tgz", + "integrity": "sha512-xRmVi7Zx44lOBuYqG8vzTXuL6IdGOeF9nHX17bjJ8+VE6fsxpdGem0/SBTmAwgYMKYB1WBkqRJVQ+n8GK041pA==", "dev": true, "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" + "@microsoft/tsdoc": "0.14.2", + "@microsoft/tsdoc-config": "0.16.2" } }, - "node_modules/findup-sync/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8.0.0" } }, - "node_modules/findup-sync/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "eslint-visitor-keys": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" } }, - "node_modules/findup-sync/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true, - "dependencies": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - }, "engines": { - "node": ">= 0.10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">= 0.10" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "node_modules/eslint/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "node_modules/eslint/node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "dependencies": { - "is-callable": "^1.1.3" + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, "dependencies": { - "for-in": "^1.0.1" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">=0.10.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "engines": { - "node": "*" + "node": ">=4.0" } }, - "node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">= 6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, "engines": { - "node": ">= 0.6" + "node": ">=10.13.0" } }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "node_modules/eslint/node_modules/globals": { + "version": "13.19.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", + "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", "dev": true, "dependencies": { - "map-cache": "^0.2.2" + "type-fest": "^0.20.2" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-capacitor": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-2.0.4.tgz", - "integrity": "sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA==", - "dev": true, - "engines": { - "node": ">=8.5" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "node_modules/eslint/node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "is-extglob": "^2.1.1" }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "dependencies": { - "minipass": "^3.0.0" + "argparse": "^2.0.1" }, - "engines": { - "node": ">= 8" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", + "node_modules/eslint/node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "dependencies": { - "graceful-fs": "^4.1.11", - "through2": "^2.0.3" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" }, "engines": { - "node": ">= 0.10" + "node": ">= 0.8.0" } }, - "node_modules/fs-mkdirp-stream/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], + "p-locate": "^5.0.0" + }, "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "node_modules/eslint/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "node_modules/eslint/node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, + "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" + }, "engines": { - "node": ">=6.9.0" + "node": ">= 0.8.0" } }, - "node_modules/get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "node_modules/get-intrinsic": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", - "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "dev": true - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "node_modules/eslint/node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, "engines": { - "node": ">=8.0.0" + "node": ">= 0.8.0" } }, - "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "node_modules/eslint/node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "dependencies": { - "pump": "^3.0.0" + "prelude-ls": "^1.2.1" }, "engines": { - "node": ">=8" + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "node_modules/esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/getopts": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/getopts/-/getopts-2.2.5.tgz", - "integrity": "sha512-9jb7AW5p3in+IiJWhQiZmmwkpLaR/ccTWdWQCtZM66HJcHHLegowh4q4tSD7gouUyeNvFWRavfK9GXosQHDpFA==", - "dev": true - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "node_modules/espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", "dev": true, "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" }, "engines": { - "node": "*" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://opencollective.com/eslint" } }, - "node_modules/glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "node_modules/espree/node_modules/acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", "dev": true, - "dependencies": { - "is-glob": "^4.0.1" + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": ">= 6" + "node": ">=0.4.0" } }, - "node_modules/glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, - "dependencies": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", - "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, "engines": { - "node": ">= 0.10" + "node": ">=4" } }, - "node_modules/glob-stream/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" } }, - "node_modules/glob-stream/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=4.0" } }, - "node_modules/glob-watcher": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", - "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "dependencies": { - "anymatch": "^2.0.0", - "async-done": "^1.2.0", - "chokidar": "^2.0.0", - "is-negated-glob": "^1.0.0", - "just-debounce": "^1.0.0", - "normalize-path": "^3.0.0", - "object.defaults": "^1.1.0" + "estraverse": "^5.2.0" }, "engines": { - "node": ">= 0.10" + "node": ">=4.0" } }, - "node_modules/glob-watcher/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" + "engines": { + "node": ">=4.0" } }, - "node_modules/glob-watcher/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, "engines": { - "node": ">=0.10.0" + "node": ">=4.0" } }, - "node_modules/glob-watcher/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/glob-watcher/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.6" } }, - "node_modules/glob-watcher/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "node_modules/eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", + "dev": true + }, + "node_modules/events": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", + "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==", "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=0.8.x" } }, - "node_modules/glob-watcher/node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", + "node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "dev": true, "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" }, - "optionalDependencies": { - "fsevents": "^1.2.7" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/glob-watcher/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.8.0" } }, - "node_modules/glob-watcher/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "dependencies": { - "is-extendable": "^0.1.0" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/glob-watcher/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" + "is-descriptor": "^0.1.0" }, "engines": { - "node": ">= 4.0" - } - }, - "node_modules/glob-watcher/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "node": ">=0.10.0" } }, - "node_modules/glob-watcher/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { - "is-extglob": "^2.1.0" + "is-extendable": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/glob-watcher/node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "dependencies": { - "binary-extensions": "^1.0.0" + "kind-of": "^3.0.2" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/glob-watcher/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/glob-watcher/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "dependencies": { "kind-of": "^3.0.2" @@ -6147,7 +7479,7 @@ "node": ">=0.10.0" } }, - "node_modules/glob-watcher/node_modules/kind-of": { + "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", @@ -6159,779 +7491,800 @@ "node": ">=0.10.0" } }, - "node_modules/glob-watcher/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/glob-watcher/node_modules/micromatch/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/expand-brackets/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/glob-watcher/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", "dev": true, "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" + "homedir-polyfill": "^1.0.1" }, "engines": { - "node": ">=0.10" + "node": ">=0.10.0" } }, - "node_modules/glob-watcher/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "node_modules/expect": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.3.1.tgz", + "integrity": "sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==", "dev": true, "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "@jest/expect-utils": "^29.3.1", + "jest-get-type": "^29.2.0", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, + "node_modules/express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dev": true, "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10.0" } }, - "node_modules/global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "node_modules/ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", "dev": true, "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" + "type": "^2.0.0" + } + }, + "node_modules/ext/node_modules/type": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.3.0.tgz", + "integrity": "sha512-rgPIqOdfK/4J9FhiVrZ3cveAjRRo5rsQBAIhnylX874y1DX/kEKSVdLsnuHB6l1KTjHyU01VjiMBHgU2adejyg==", + "dev": true + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "dependencies": { - "isexe": "^2.0.0" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, - "bin": { - "which": "bin/which" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/globby": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz", - "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==", + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" + "is-extendable": "^0.1.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/glogg": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", - "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", + "node_modules/extglob/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", "dev": true, "dependencies": { - "sparkles": "^1.0.0" + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" }, "engines": { "node": ">= 0.10" } }, - "node_modules/graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "node_modules/graphql": { - "version": "15.5.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.0.tgz", - "integrity": "sha512-OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA==", - "engines": { - "node": ">= 10.x" - } + "node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true }, - "node_modules/graphql-extensions": { - "version": "0.12.8", - "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.12.8.tgz", - "integrity": "sha512-xjsSaB6yKt9jarFNNdivl2VOx52WySYhxPgf8Y16g6GKZyAzBoIFiwyGw5PJDlOSUa6cpmzn6o7z8fVMbSAbkg==", + "node_modules/fast-equals": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-4.0.3.tgz", + "integrity": "sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "dependencies": { - "@apollographql/apollo-tools": "^0.4.3", - "apollo-server-env": "^3.0.0", - "apollo-server-types": "^0.6.3" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" }, "engines": { - "node": ">=6.0" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" + "node": ">=8.6.0" } }, - "node_modules/graphql-query-complexity": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/graphql-query-complexity/-/graphql-query-complexity-0.7.2.tgz", - "integrity": "sha512-+VgmrfxGEjHI3zuojWOR8bsz7Ycz/BZjNjxnlUieTz5DsB92WoIrYCSZdWG7UWZ3rfcA1Gb2Nf+wB80GsaZWuQ==", - "dependencies": { - "lodash.get": "^4.4.2" - }, - "peerDependencies": { - "graphql": "^0.13.0 || ^14.0.0 || ^15.0.0" - } + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, - "node_modules/graphql-redis-subscriptions": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/graphql-redis-subscriptions/-/graphql-redis-subscriptions-2.3.1.tgz", - "integrity": "sha512-ztS3ZXBSoPJ8Q0/o7PG2iLO6QWq2tlJrukiBJCjgMccRv1I3lt3HmLjiH2CbDjPhpoINttZNoytQbxE0OE/UpA==", + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fastq": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.0.tgz", + "integrity": "sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==", "dev": true, "dependencies": { - "iterall": "^1.3.0" - }, - "optionalDependencies": { - "ioredis": "^4.17.3" - }, - "peerDependencies": { - "graphql-subscriptions": "^1.0.0" + "reusify": "^1.0.4" } }, - "node_modules/graphql-subscriptions": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.0.tgz", - "integrity": "sha512-uXvp729fztqwa7HFUFaAqKwNMwwOfsvu4HwOu7/35Cd44bNrMPCn97mNGN0ybuuZE36CPXBTaW/4U/xyOS4D9w==", + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, "dependencies": { - "iterall": "^1.3.0" - }, - "peerDependencies": { - "graphql": "^0.10.5 || ^0.11.3 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" + "bser": "2.1.1" } }, - "node_modules/graphql-tag": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.11.0.tgz", - "integrity": "sha512-VmsD5pJqWJnQZMUeRwrDhfgoyqcfwEkvtpANqcoUG8/tOLkwNgU9mzub/Mc78OJMhHjx7gfAMTxzdG43VGg3bA==", + "node_modules/figlet": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.5.0.tgz", + "integrity": "sha512-ZQJM4aifMpz6H19AW1VqvZ7l4pOE9p7i/3LyxgO2kp+PO/VcDYNqIHEMtkccqIhTXMKci4kjueJr/iCQEaT/Ww==", "dev": true, - "peerDependencies": { - "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" + "engines": { + "node": ">= 0.4.0" } }, - "node_modules/graphql-tools": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.8.tgz", - "integrity": "sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg==", + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "dependencies": { - "apollo-link": "^1.2.14", - "apollo-utilities": "^1.0.1", - "deprecated-decorator": "^0.1.6", - "iterall": "^1.1.3", - "uuid": "^3.1.0" + "escape-string-regexp": "^1.0.5" }, - "peerDependencies": { - "graphql": "^0.13.0 || ^14.0.0 || ^15.0.0" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/graphql-tools/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, - "bin": { - "uuid": "bin/uuid" + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", "dev": true, "optional": true }, - "node_modules/gulp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", - "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "dependencies": { - "glob-watcher": "^5.0.3", - "gulp-cli": "^2.2.0", - "undertaker": "^1.2.1", - "vinyl-fs": "^3.0.0" - }, - "bin": { - "gulp": "bin/gulp.js" + "to-regex-range": "^5.0.1" }, "engines": { - "node": ">= 0.10" + "node": ">=8" } }, - "node_modules/gulp-cli": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", - "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "dev": true, "dependencies": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.4.0", - "isobject": "^3.0.1", - "liftoff": "^3.1.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.2.0", - "yargs": "^7.1.0" - }, - "bin": { - "gulp": "bin/gulp.js" + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" }, "engines": { - "node": ">= 0.10" + "node": ">= 0.8" } }, - "node_modules/gulp-cli/node_modules/ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "dependencies": { - "ansi-wrap": "^0.1.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/gulp-replace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulp-replace/-/gulp-replace-1.0.0.tgz", - "integrity": "sha512-lgdmrFSI1SdhNMXZQbrC75MOl1UjYWlOWNbNRnz+F/KHmgxt3l6XstBoAYIdadwETFyG/6i+vWUSCawdC3pqOw==", + "node_modules/findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", "dev": true, "dependencies": { - "istextorbinary": "2.2.1", - "readable-stream": "^2.0.1", - "replacestream": "^4.0.0" + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" }, "engines": { - "node": ">=0.10" + "node": ">= 0.10" } }, - "node_modules/gulp-shell": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/gulp-shell/-/gulp-shell-0.8.0.tgz", - "integrity": "sha512-wHNCgmqbWkk1c6Gc2dOL5SprcoeujQdeepICwfQRo91DIylTE7a794VEE+leq3cE2YDoiS5ulvRfKVIEMazcTQ==", + "node_modules/findup-sync/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "dependencies": { - "chalk": "^3.0.0", - "fancy-log": "^1.3.3", - "lodash.template": "^4.5.0", - "plugin-error": "^1.0.1", - "through2": "^3.0.1", - "tslib": "^1.10.0" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "engines": { - "node": ">=10.0.0" + "node": ">=0.10.0" } }, - "node_modules/gulp-shell/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/gulp-typescript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/gulp-typescript/-/gulp-typescript-5.0.1.tgz", - "integrity": "sha512-YuMMlylyJtUSHG1/wuSVTrZp60k1dMEFKYOvDf7OvbAJWrDtxxD4oZon4ancdWwzjj30ztiidhe4VXJniF0pIQ==", + "node_modules/findup-sync/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { - "ansi-colors": "^3.0.5", - "plugin-error": "^1.0.1", - "source-map": "^0.7.3", - "through2": "^3.0.0", - "vinyl": "^2.1.0", - "vinyl-fs": "^3.0.3" - }, - "engines": { - "node": ">= 8" + "is-extendable": "^0.1.0" }, - "peerDependencies": { - "typescript": "~2.7.1 || >=2.8.0-dev || >=2.9.0-dev || ~3.0.0 || >=3.0.0-dev || >=3.1.0-dev || >= 3.2.0-dev || >= 3.3.0-dev" - } - }, - "node_modules/gulp-typescript/node_modules/ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true, "engines": { - "node": ">=6" - } - }, - "node_modules/gulpclass": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/gulpclass/-/gulpclass-0.2.0.tgz", - "integrity": "sha512-S2p0SgnVLjBbIEw5tHbBV6Wm6abD+leA5xZG6ukf9M+j1I/8zIeKPby9GLWnI90671YRk+lXbvEUROKaZXo8NA==", - "dev": true, - "dependencies": { - "@types/gulp": "^4.0.5", - "@types/merge2": "^1.1.4", - "@types/node": "*", - "gulp": "^4.0.0", - "merge2": "^1.2.2" + "node": ">=0.10.0" } }, - "node_modules/gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "node_modules/findup-sync/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "dependencies": { - "glogg": "^1.0.0" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "engines": { - "node": ">= 0.10" + "node": ">=0.10.0" } }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "node_modules/findup-sync/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", + "node_modules/findup-sync/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "node_modules/findup-sync/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "dependencies": { - "function-bind": "^1.1.1" + "kind-of": "^3.0.2" }, "engines": { - "node": ">= 0.4.0" + "node": ">=0.10.0" } }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "node_modules/findup-sync/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { - "ansi-regex": "^2.0.0" + "is-buffer": "^1.1.5" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "node_modules/findup-sync/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/findup-sync/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "node_modules/findup-sync/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, - "engines": { - "node": ">= 0.4" + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "node_modules/fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", "dev": true, "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "node_modules/flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, - "node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, "dependencies": { - "kind-of": "^3.0.2" + "flatted": "^3.1.0", + "rimraf": "^3.0.2" }, "engines": { - "node": ">=0.10.0" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "node_modules/flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", "dev": true, "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" } }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" + "is-callable": "^1.1.3" } }, - "node_modules/highlight.js": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.6.0.tgz", - "integrity": "sha512-8mlRcn5vk/r4+QcqerapwBYTe+iPL5ih6xrNylxrnBdHQiijDETfXX7VIxC3UiCRiINBJfANBAsPzAvRQj8RpQ==", + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true, "engines": { - "node": "*" + "node": ">=0.10.0" } }, - "node_modules/homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "node_modules/for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", "dev": true, "dependencies": { - "parse-passwd": "^1.0.0" + "for-in": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", "dev": true, "dependencies": { - "whatwg-encoding": "^1.0.5" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" }, "engines": { - "node": ">=10" + "node": ">= 6" } }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "node_modules/http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "node_modules/forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, "engines": { "node": ">= 0.6" } }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" + "map-cache": "^0.2.2" }, "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, - "node_modules/http-proxy-agent/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", "dev": true, - "dependencies": { - "ms": "2.1.2" - }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">= 0.6" } }, - "node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "node_modules/fs-capacitor": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-2.0.4.tgz", + "integrity": "sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA==", + "dev": true, + "engines": { + "node": ">=8.5" + } }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" + "node": ">=10" } }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, "dependencies": { - "agent-base": "6", - "debug": "4" + "minipass": "^3.0.0" }, "engines": { - "node": ">= 6" + "node": ">= 8" } }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "node_modules/fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", "dev": true, "dependencies": { - "ms": "2.1.2" + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">= 0.10" } }, - "node_modules/https-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "node_modules/fs-mkdirp-stream/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, - "engines": { - "node": ">=8.12.0" + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, - "dependencies": { - "ms": "^2.0.0" + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/husky": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.8.tgz", - "integrity": "sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow==", + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", "dev": true, - "hasInstallScript": true, "dependencies": { - "chalk": "^4.0.0", - "ci-info": "^2.0.0", - "compare-versions": "^3.6.0", - "cosmiconfig": "^7.0.0", - "find-versions": "^4.0.0", - "opencollective-postinstall": "^2.0.2", - "pkg-dir": "^5.0.0", - "please-upgrade-node": "^3.2.0", - "slash": "^3.0.0", - "which-pm-runs": "^1.0.0" - }, - "bin": { - "husky-run": "bin/run.js", - "husky-upgrade": "lib/upgrader/bin.js" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/husky" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/husky/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/husky/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/gensequence": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gensequence/-/gensequence-4.0.3.tgz", + "integrity": "sha512-izr+MKqJKjexkvLiPGhW96elQX8TuUR/su/xzILxjqzU1RDz1n1ZbqwDUnNFaRcq0gFR3oQfNH2JOH4Je1x/QA==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "node_modules/get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "dev": true, "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "dev": true + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stdin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", + "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", + "dev": true, "engines": { "node": ">=10" }, @@ -6939,386 +8292,378 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/husky/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, "dependencies": { - "p-locate": "^5.0.0" + "pump": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/husky/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "dev": true, "dependencies": { - "yocto-queue": "^0.1.0" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/husky/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/get-tsconfig": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.2.0.tgz", + "integrity": "sha512-X8u8fREiYOE6S8hLbq99PeykTDoLVnxvF4DjWKJmz9xy2nNRdUcV8ZN9tniJFeKyTU3qnC9lL8n4Chd6LmVKHg==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/getopts": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/getopts/-/getopts-2.2.5.tgz", + "integrity": "sha512-9jb7AW5p3in+IiJWhQiZmmwkpLaR/ccTWdWQCtZM66HJcHHLegowh4q4tSD7gouUyeNvFWRavfK9GXosQHDpFA==", + "dev": true + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dependencies": { - "p-limit": "^3.0.2" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=10" + "node": "*" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/husky/node_modules/pkg-dir": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", - "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { - "find-up": "^5.0.0" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=10" + "node": ">= 6" } }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "node_modules/glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", "dev": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "node_modules/glob-stream/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, - "engines": { - "node": ">= 4" + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" } }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "node_modules/glob-stream/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "is-extglob": "^2.1.0" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/import-local": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "node_modules/glob-watcher": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", + "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", "dev": true, "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" + "anymatch": "^2.0.0", + "async-done": "^1.2.0", + "chokidar": "^2.0.0", + "is-negated-glob": "^1.0.0", + "just-debounce": "^1.0.0", + "normalize-path": "^3.0.0", + "object.defaults": "^1.1.0" }, "engines": { - "node": ">=8" + "node": ">= 0.10" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "node_modules/glob-watcher/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, - "engines": { - "node": ">=0.8.19" + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" } }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "node_modules/glob-watcher/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "node_modules/glob-watcher/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true, "engines": { - "node": ">= 0.10" + "node": ">=0.10.0" } }, - "node_modules/invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "node_modules/glob-watcher/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/ioredis": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-4.23.0.tgz", - "integrity": "sha512-R5TDCODwnEH3J3A5TSoB17+6a+SeJTtIOW6vsy5Q1yag/AM8FejHjZC5R2O1QepSXV8hwOnGSm/4buJc/LeXTQ==", + "node_modules/glob-watcher/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { - "cluster-key-slot": "^1.1.0", - "debug": "^4.1.1", - "denque": "^1.1.0", - "lodash.defaults": "^4.2.0", - "lodash.flatten": "^4.4.0", - "p-map": "^2.1.0", - "redis-commands": "1.7.0", - "redis-errors": "^1.2.0", - "redis-parser": "^3.0.0", - "standard-as-callback": "^2.0.1" + "is-extendable": "^0.1.0" }, "engines": { - "node": ">=6" + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", + "dev": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/ioredis" + "optionalDependencies": { + "fsevents": "^1.2.7" } }, - "node_modules/ioredis/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "node_modules/glob-watcher/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "dependencies": { - "ms": "2.1.2" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=0.10.0" } }, - "node_modules/ioredis/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/ioredis/node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "node_modules/glob-watcher/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "node_modules/ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "node_modules/glob-watcher/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, "engines": { - "node": ">=4" + "node": ">= 4.0" } }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "node_modules/glob-watcher/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, - "engines": { - "node": ">= 0.10" + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" } }, - "node_modules/is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "node_modules/glob-watcher/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "dependencies": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" + "is-extglob": "^2.1.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "node_modules/glob-watcher/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "dependencies": { - "kind-of": "^6.0.0" + "binary-extensions": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/glob-watcher/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "node_modules/glob-watcher/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "dependencies": { - "binary-extensions": "^2.0.0" + "kind-of": "^3.0.2" }, "engines": { - "node": ">=8" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" + "node": ">=0.10.0" } }, - "node_modules/is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "node_modules/glob-watcher/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { - "has": "^1.0.3" + "is-buffer": "^1.1.5" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "node_modules/glob-watcher/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "dependencies": { - "kind-of": "^6.0.0" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/is-data-descriptor/node_modules/kind-of": { + "node_modules/glob-watcher/node_modules/micromatch/node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", @@ -7327,1891 +8672,1581 @@ "node": ">=0.10.0" } }, - "node_modules/is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "node_modules/glob-watcher/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-descriptor/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": ">=0.10" } }, - "node_modules/is-docker": { + "node_modules/glob-watcher/node_modules/to-regex-range": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", - "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, - "optional": true, - "bin": { - "is-docker": "cli.js" + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "node_modules/global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", "dev": true, "dependencies": { - "is-plain-object": "^2.0.4" + "ini": "^1.3.4" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", "dev": true, + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", "dev": true, "dependencies": { - "is-extglob": "^2.1.1" + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/is-invalid-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz", - "integrity": "sha1-MHqFWzzxqTi0TqcNLGEQYFNxTzQ=", + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "dependencies": { - "is-glob": "^2.0.0" + "isexe": "^2.0.0" }, - "engines": { - "node": ">=0.10.0" + "bin": { + "which": "bin/which" } }, - "node_modules/is-invalid-path/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/is-invalid-path/node_modules/is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "node_modules/globalyzer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", + "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", + "dev": true + }, + "node_modules/globby": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz", + "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==", "dev": true, "dependencies": { - "is-extglob": "^1.0.0" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", "dev": true }, - "node_modules/is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "node_modules/glogg": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", + "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", "dev": true, + "dependencies": { + "sparkles": "^1.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, - "node_modules/is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dev": true, - "engines": { - "node": ">= 0.4" + "dependencies": { + "get-intrinsic": "^1.1.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true, + "node_modules/graphql": { + "version": "15.5.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.0.tgz", + "integrity": "sha512-OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA==", "engines": { - "node": ">=6" + "node": ">= 10.x" } }, - "node_modules/is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", + "node_modules/graphql-extensions": { + "version": "0.12.8", + "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.12.8.tgz", + "integrity": "sha512-xjsSaB6yKt9jarFNNdivl2VOx52WySYhxPgf8Y16g6GKZyAzBoIFiwyGw5PJDlOSUa6cpmzn6o7z8fVMbSAbkg==", "dev": true, + "dependencies": { + "@apollographql/apollo-tools": "^0.4.3", + "apollo-server-env": "^3.0.0", + "apollo-server-types": "^0.6.3" + }, "engines": { - "node": ">=8" + "node": ">=6.0" + }, + "peerDependencies": { + "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" } }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, + "node_modules/graphql-query-complexity": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/graphql-query-complexity/-/graphql-query-complexity-0.7.2.tgz", + "integrity": "sha512-+VgmrfxGEjHI3zuojWOR8bsz7Ycz/BZjNjxnlUieTz5DsB92WoIrYCSZdWG7UWZ3rfcA1Gb2Nf+wB80GsaZWuQ==", "dependencies": { - "isobject": "^3.0.1" + "lodash.get": "^4.4.2" }, - "engines": { - "node": ">=0.10.0" + "peerDependencies": { + "graphql": "^0.13.0 || ^14.0.0 || ^15.0.0" } }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", - "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=", - "dev": true - }, - "node_modules/is-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", - "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", + "node_modules/graphql-redis-subscriptions": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/graphql-redis-subscriptions/-/graphql-redis-subscriptions-2.3.1.tgz", + "integrity": "sha512-ztS3ZXBSoPJ8Q0/o7PG2iLO6QWq2tlJrukiBJCjgMccRv1I3lt3HmLjiH2CbDjPhpoINttZNoytQbxE0OE/UpA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.1" + "iterall": "^1.3.0" }, - "engines": { - "node": ">= 0.4" + "optionalDependencies": { + "ioredis": "^4.17.3" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "graphql-subscriptions": "^1.0.0" } }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node_modules/graphql-subscriptions": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.0.tgz", + "integrity": "sha512-uXvp729fztqwa7HFUFaAqKwNMwwOfsvu4HwOu7/35Cd44bNrMPCn97mNGN0ybuuZE36CPXBTaW/4U/xyOS4D9w==", + "dependencies": { + "iterall": "^1.3.0" + }, + "peerDependencies": { + "graphql": "^0.10.5 || ^0.11.3 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" } }, - "node_modules/is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "node_modules/graphql-tag": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.11.0.tgz", + "integrity": "sha512-VmsD5pJqWJnQZMUeRwrDhfgoyqcfwEkvtpANqcoUG8/tOLkwNgU9mzub/Mc78OJMhHjx7gfAMTxzdG43VGg3bA==", "dev": true, - "dependencies": { - "is-unc-path": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "peerDependencies": { + "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" } }, - "node_modules/is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "node_modules/graphql-tag-pluck": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/graphql-tag-pluck/-/graphql-tag-pluck-0.8.7.tgz", + "integrity": "sha512-yuWcQislvBPHorFQzmZ9/yY0nPD1rn1kBNOr6iPXzT+iJ/i/pciq8Z7ilnVJAGKaJXV58ovD+AWWYYjX6IFF9g==", "dev": true, - "engines": { - "node": ">=8" + "peer": true, + "dependencies": { + "@babel/parser": "^7.4.4", + "@babel/traverse": "^7.4.4", + "@babel/types": "^7.4.4", + "source-map-support": "^0.5.12" } }, - "node_modules/is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "node_modules/graphql-tools": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.8.tgz", + "integrity": "sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg==", "dev": true, "dependencies": { - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" + "apollo-link": "^1.2.14", + "apollo-utilities": "^1.0.1", + "deprecated-decorator": "^0.1.6", + "iterall": "^1.1.3", + "uuid": "^3.1.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "graphql": "^0.13.0 || ^14.0.0 || ^15.0.0" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "node_modules/graphql-tools/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } }, - "node_modules/is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "node_modules/gulp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", + "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", "dev": true, "dependencies": { - "unc-path-regex": "^0.1.2" + "glob-watcher": "^5.0.3", + "gulp-cli": "^2.2.0", + "undertaker": "^1.2.1", + "vinyl-fs": "^3.0.0" + }, + "bin": { + "gulp": "bin/gulp.js" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, - "node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "node_modules/is-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", + "node_modules/gulp-cli": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", + "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", "dev": true, + "dependencies": { + "ansi-colors": "^1.0.1", + "archy": "^1.0.0", + "array-sort": "^1.0.0", + "color-support": "^1.1.3", + "concat-stream": "^1.6.0", + "copy-props": "^2.0.1", + "fancy-log": "^1.3.2", + "gulplog": "^1.0.0", + "interpret": "^1.4.0", + "isobject": "^3.0.1", + "liftoff": "^3.1.0", + "matchdep": "^2.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "replace-homedir": "^1.0.0", + "semver-greatest-satisfied-range": "^1.1.0", + "v8flags": "^3.2.0", + "yargs": "^7.1.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, - "node_modules/is-valid-path": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", - "integrity": "sha1-EQ+f90w39mPh7HkV60UfLbk6yd8=", + "node_modules/gulp-cli/node_modules/ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", "dev": true, "dependencies": { - "is-invalid-path": "^0.1.0" + "ansi-wrap": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "node_modules/gulp-replace": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulp-replace/-/gulp-replace-1.0.0.tgz", + "integrity": "sha512-lgdmrFSI1SdhNMXZQbrC75MOl1UjYWlOWNbNRnz+F/KHmgxt3l6XstBoAYIdadwETFyG/6i+vWUSCawdC3pqOw==", "dev": true, + "dependencies": { + "istextorbinary": "2.2.1", + "readable-stream": "^2.0.1", + "replacestream": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=0.10" } }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "node_modules/gulp-shell": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/gulp-shell/-/gulp-shell-0.8.0.tgz", + "integrity": "sha512-wHNCgmqbWkk1c6Gc2dOL5SprcoeujQdeepICwfQRo91DIylTE7a794VEE+leq3cE2YDoiS5ulvRfKVIEMazcTQ==", "dev": true, - "optional": true, "dependencies": { - "is-docker": "^2.0.0" + "chalk": "^3.0.0", + "fancy-log": "^1.3.3", + "lodash.template": "^4.5.0", + "plugin-error": "^1.0.1", + "through2": "^3.0.1", + "tslib": "^1.10.0" }, "engines": { - "node": ">=8" + "node": ">=10.0.0" } }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "node_modules/gulp-shell/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "node_modules/gulp-typescript": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/gulp-typescript/-/gulp-typescript-5.0.1.tgz", + "integrity": "sha512-YuMMlylyJtUSHG1/wuSVTrZp60k1dMEFKYOvDf7OvbAJWrDtxxD4oZon4ancdWwzjj30ztiidhe4VXJniF0pIQ==", "dev": true, + "dependencies": { + "ansi-colors": "^3.0.5", + "plugin-error": "^1.0.1", + "source-map": "^0.7.3", + "through2": "^3.0.0", + "vinyl": "^2.1.0", + "vinyl-fs": "^3.0.3" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 8" + }, + "peerDependencies": { + "typescript": "~2.7.1 || >=2.8.0-dev || >=2.9.0-dev || ~3.0.0 || >=3.0.0-dev || >=3.1.0-dev || >= 3.2.0-dev || >= 3.3.0-dev" } }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "node_modules/gulp-typescript/node_modules/ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "node_modules/gulpclass": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/gulpclass/-/gulpclass-0.2.0.tgz", + "integrity": "sha512-S2p0SgnVLjBbIEw5tHbBV6Wm6abD+leA5xZG6ukf9M+j1I/8zIeKPby9GLWnI90671YRk+lXbvEUROKaZXo8NA==", "dev": true, "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "@types/gulp": "^4.0.5", + "@types/merge2": "^1.1.4", + "@types/node": "*", + "gulp": "^4.0.0", + "merge2": "^1.2.2" } }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "node_modules/gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", "dev": true, "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" + "glogg": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">= 0.10" } }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" + "function-bind": "^1.1.1" }, "engines": { - "node": ">=8" + "node": ">= 0.4.0" } }, - "node_modules/istanbul-lib-source-maps/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "dependencies": { - "ms": "2.1.2" + "ansi-regex": "^2.0.0" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=0.10.0" } }, - "node_modules/istanbul-lib-source-maps/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/istextorbinary": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.2.1.tgz", - "integrity": "sha512-TS+hoFl8Z5FAFMK38nhBkdLt44CclNRgDHWeMgsV8ko3nDlr/9UI2Sf839sW7enijf8oKsZYXRvM8g0it9Zmcw==", + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "binaryextensions": "2", - "editions": "^1.3.3", - "textextensions": "2" - }, "engines": { - "node": ">=0.12" + "node": ">=8" } }, - "node_modules/iterall": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", - "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==" - }, - "node_modules/jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", - "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", + "node_modules/has-own-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", + "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", "dev": true, - "dependencies": { - "@jest/core": "^26.6.3", - "import-local": "^3.0.2", - "jest-cli": "^26.6.3" - }, - "bin": { - "jest": "bin/jest.js" - }, "engines": { - "node": ">= 10.14.2" + "node": ">=8" } }, - "node_modules/jest-changed-files": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", - "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", "dev": true, "dependencies": { - "@jest/types": "^26.6.2", - "execa": "^4.0.0", - "throat": "^5.0.0" + "get-intrinsic": "^1.1.1" }, - "engines": { - "node": ">= 10.14.2" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, - "dependencies": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" - }, - "bin": { - "jest": "bin/jest.js" - }, "engines": { - "node": ">= 10.14.2" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-cli/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "has-symbols": "^1.0.2" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-cli/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/jest-cli/node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">=0.10.0" } }, - "node_modules/jest-cli/node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/jest-cli/node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "node_modules/jest-cli/node_modules/y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "dev": true - }, - "node_modules/jest-cli/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" + "kind-of": "^3.0.2" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/jest-cli/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "is-buffer": "^1.1.5" }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/jest-config": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", - "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", - "dev": true, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, "dependencies": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.6.3", - "@jest/types": "^26.6.2", - "babel-jest": "^26.6.3", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-node": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.6.3", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2" + "is-buffer": "^1.1.5" }, "engines": { - "node": ">= 10.14.2" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } + "node": ">=0.10.0" } }, - "node_modules/jest-config/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "node_modules/highlight.js": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.6.0.tgz", + "integrity": "sha512-8mlRcn5vk/r4+QcqerapwBYTe+iPL5ih6xrNylxrnBdHQiijDETfXX7VIxC3UiCRiINBJfANBAsPzAvRQj8RpQ==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": "*" } }, - "node_modules/jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", "dev": true, "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" + "parse-passwd": "^1.0.0" }, "engines": { - "node": ">= 10.14.2" + "node": ">=0.10.0" } }, - "node_modules/jest-diff/node_modules/chalk": { + "node_modules/hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-cache-semantics": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true }, - "node_modules/jest-docblock": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", - "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", + "node_modules/http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", "dev": true, "dependencies": { - "detect-newline": "^3.0.0" + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" }, "engines": { - "node": ">= 10.14.2" + "node": ">= 0.6" } }, - "node_modules/jest-each": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", - "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "dev": true, "dependencies": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2" + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">= 10.14.2" + "node": ">= 6" } }, - "node_modules/jest-each/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "ms": "2.1.2" }, "engines": { - "node": ">=10" + "node": ">=6.0" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/jest-environment-jsdom": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", - "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "dev": true, "dependencies": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2", - "jsdom": "^16.4.0" + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">= 10.14.2" + "node": ">= 6" } }, - "node_modules/jest-environment-node": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", - "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "dependencies": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" + "ms": "2.1.2" }, "engines": { - "node": ">= 10.14.2" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "dev": true, "engines": { - "node": ">= 10.14.2" + "node": ">=8.12.0" } }, - "node_modules/jest-haste-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", - "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "dev": true, "dependencies": { - "@jest/types": "^26.6.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" - }, - "engines": { - "node": ">= 10.14.2" - }, - "optionalDependencies": { - "fsevents": "^2.1.2" + "ms": "^2.0.0" } }, - "node_modules/jest-jasmine2": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", - "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", + "node_modules/husky": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.2.tgz", + "integrity": "sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==", "dev": true, - "dependencies": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^26.6.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2", - "throat": "^5.0.0" + "bin": { + "husky": "lib/bin.js" }, "engines": { - "node": ">= 10.14.2" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" } }, - "node_modules/jest-jasmine2/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "safer-buffer": ">= 2.1.2 < 3" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=0.10.0" } }, - "node_modules/jest-leak-detector": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", - "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.2.tgz", + "integrity": "sha512-m1MJSy4Z2NAcyhoYpxQeBsc1ZdNQwYjN0wGbLBlnVArdJ90Gtr8IhNSfZZcCoR0fM/0E0BJ0mf1KnLNDOCJP4w==", "dev": true, - "dependencies": { - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, "engines": { - "node": ">= 10.14.2" + "node": ">= 4" } }, - "node_modules/jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": ">= 10.14.2" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-message-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", - "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dependencies": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.2" + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", + "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "side-channel": "^1.0.4" }, "engines": { - "node": ">= 10.14.2" + "node": ">= 0.4" } }, - "node_modules/jest-message-util/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ioredis": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-4.23.0.tgz", + "integrity": "sha512-R5TDCODwnEH3J3A5TSoB17+6a+SeJTtIOW6vsy5Q1yag/AM8FejHjZC5R2O1QepSXV8hwOnGSm/4buJc/LeXTQ==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "cluster-key-slot": "^1.1.0", + "debug": "^4.1.1", + "denque": "^1.1.0", + "lodash.defaults": "^4.2.0", + "lodash.flatten": "^4.4.0", + "p-map": "^2.1.0", + "redis-commands": "1.7.0", + "redis-errors": "^1.2.0", + "redis-parser": "^3.0.0", + "standard-as-callback": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=6" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/ioredis" } }, - "node_modules/jest-mock": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", - "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", + "node_modules/ioredis/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "dependencies": { - "@jest/types": "^26.6.2", - "@types/node": "*" + "ms": "2.1.2" }, "engines": { - "node": ">= 10.14.2" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "node_modules/ioredis/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/ioredis/node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", "dev": true, "engines": { "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } } }, - "node_modules/jest-regex-util": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", - "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", + "node_modules/ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true, "engines": { - "node": ">= 10.14.2" + "node": ">= 0.10" } }, - "node_modules/jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", - "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", "dev": true, "dependencies": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" }, "engines": { - "node": ">= 10.14.2" + "node": ">=0.10.0" } }, - "node_modules/jest-resolve-dependencies": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", - "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", + "node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "dependencies": { - "@jest/types": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-snapshot": "^26.6.2" + "kind-of": "^6.0.0" }, "engines": { - "node": ">= 10.14.2" + "node": ">=0.10.0" } }, - "node_modules/jest-resolve/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" + "node": ">=0.10.0" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-runner": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", - "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "dependencies": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.7.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-docblock": "^26.0.0", - "jest-haste-map": "^26.6.2", - "jest-leak-detector": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "source-map-support": "^0.5.6", - "throat": "^5.0.0" + "binary-extensions": "^2.0.0" }, "engines": { - "node": ">= 10.14.2" + "node": ">=8" } }, - "node_modules/jest-runner/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-runtime": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", - "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", - "dev": true, - "dependencies": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/globals": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^0.6.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^15.4.1" - }, - "bin": { - "jest-runtime": "bin/jest-runtime.js" - }, - "engines": { - "node": ">= 10.14.2" - } + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true }, - "node_modules/jest-runtime/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-runtime/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dev": true, "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-runtime/node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">=0.10.0" } }, - "node_modules/jest-runtime/node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/jest-runtime/node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "node_modules/jest-runtime/node_modules/y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "dev": true - }, - "node_modules/jest-runtime/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/jest-runtime/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "node_modules/is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, "engines": { - "node": ">=6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-serializer": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", - "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", + "node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.4" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" }, "engines": { - "node": ">= 10.14.2" + "node": ">=0.10.0" } }, - "node_modules/jest-snapshot": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", - "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", + "node_modules/is-descriptor/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, - "dependencies": { - "@babel/types": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.0.0", - "chalk": "^4.0.0", - "expect": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-haste-map": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "natural-compare": "^1.4.0", - "pretty-format": "^26.6.2", - "semver": "^7.3.2" - }, "engines": { - "node": ">= 10.14.2" + "node": ">=0.10.0" } }, - "node_modules/jest-snapshot/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "node_modules/is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", + "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "bin": { + "is-docker": "cli.js" }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", - "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", + "node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "dependencies": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" + "is-plain-object": "^2.0.4" }, "engines": { - "node": ">= 10.14.2" + "node": ">=0.10.0" } }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=0.10.0" } }, - "node_modules/jest-validate": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", - "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "camelcase": "^6.0.0", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "leven": "^3.1.0", - "pretty-format": "^26.6.2" - }, "engines": { - "node": ">= 10.14.2" + "node": ">=8" } }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, - "node_modules/jest-validate/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "is-extglob": "^2.1.1" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=0.10.0" } }, - "node_modules/jest-watcher": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", - "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", + "node_modules/is-invalid-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz", + "integrity": "sha1-MHqFWzzxqTi0TqcNLGEQYFNxTzQ=", "dev": true, "dependencies": { - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^26.6.2", - "string-length": "^4.0.1" + "is-glob": "^2.0.0" }, "engines": { - "node": ">= 10.14.2" + "node": ">=0.10.0" } }, - "node_modules/jest-watcher/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "node_modules/is-invalid-path/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=0.10.0" } }, - "node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "node_modules/is-invalid-path/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" + "is-extglob": "^1.0.0" }, "engines": { - "node": ">= 10.13.0" + "node": ">=0.10.0" } }, - "node_modules/joi": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.3.0.tgz", - "integrity": "sha512-Qh5gdU6niuYbUIUV5ejbsMiiFmBdw8Kcp8Buj2JntszCkCfxJ9Cz76OtHxOZMPXrt5810iDIXs+n1nNVoquHgg==", + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", + "dev": true + }, + "node_modules/is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", "dev": true, - "dependencies": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.0", - "@sideway/formula": "^3.0.0", - "@sideway/pinpoint": "^2.0.0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/joiful": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/joiful/-/joiful-3.0.0.tgz", - "integrity": "sha512-NBFIWwN77+fgwwm88dyhcoMceBlaar5y5SVaHJzD7fmM4kvKUsjNh/nU0Bdv9zBYDe57nIPVBdSQXYgOKGHnCQ==", + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true, - "dependencies": { - "joi": "17.3.0" - }, "engines": { - "node": ">=8.10", - "npm": ">=3.10.10", - "yarn": ">=1.13.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=0.12.0" } }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "node_modules/jsdom": { - "version": "16.4.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz", - "integrity": "sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==", - "dev": true, - "dependencies": { - "abab": "^2.0.3", - "acorn": "^7.1.1", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.2.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.0", - "domexception": "^2.0.1", - "escodegen": "^1.14.1", - "html-encoding-sniffer": "^2.0.1", - "is-potential-custom-element-name": "^1.0.0", - "nwsapi": "^2.2.0", - "parse5": "5.1.1", - "request": "^2.88.2", - "request-promise-native": "^1.0.8", - "saxes": "^5.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^3.0.1", - "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.0.0", - "ws": "^7.2.3", - "xml-name-validator": "^3.0.0" + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jsdom/node_modules/ws": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz", - "integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==", + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true, "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 - } + "node": ">=0.10.0" } }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "node_modules/json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "dependencies": { - "universalify": "^2.0.0" + "isobject": "^3.0.1" }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, - "engines": [ - "node >=0.6.0" - ], "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/just-debounce": { + "node_modules/is-regexp": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", - "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=", - "dev": true - }, - "node_modules/kareem": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.1.tgz", - "integrity": "sha512-l3hLhffs9zqoDe8zjmb/mAN4B8VT3L56EUvKNqLFVs9YlFA+zx7ke1DO8STAdDyYNkeSo1nKmjuvQeI12So8Xw==", - "dev": true - }, - "node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", "dev": true, + "dependencies": { + "is-unc-path": "^1.0.0" + }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/knex": { - "version": "0.21.17", - "resolved": "https://registry.npmjs.org/knex/-/knex-0.21.17.tgz", - "integrity": "sha512-kAt58lRwjzqwedApKF7luYPa7HsLb0oDiczwKrkZcekIzTmSow5YGK149S2C8HjH63R3NcOBo9+1rjvWnC1Paw==", + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", "dev": true, "dependencies": { - "colorette": "1.2.1", - "commander": "^6.2.0", - "debug": "4.3.1", - "esm": "^3.2.25", - "getopts": "2.2.5", - "interpret": "^2.2.0", - "liftoff": "3.1.0", - "lodash": "^4.17.20", - "pg-connection-string": "2.4.0", - "tarn": "^3.0.1", - "tildify": "2.0.0", - "v8flags": "^3.2.0" - }, - "bin": { - "knex": "bin/cli.js" + "call-bind": "^1.0.2" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true, "engines": { - "node": ">=10" - }, - "peerDependencies": { - "mssql": "^6.2.1", - "mysql": "^2.18.1", - "mysql2": "^2.1.0", - "pg": "^8.3.0", - "sqlite3": "^5.0.0" - }, - "peerDependenciesMeta": { - "mssql": { - "optional": true - }, - "mysql": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "pg": { - "optional": true - }, - "sqlite3": { - "optional": true - } + "node": ">=8" } }, - "node_modules/knex/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, "dependencies": { - "ms": "2.1.2" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=6.0" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/knex/node_modules/interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "node_modules/is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", "dev": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, "engines": { - "node": ">= 0.10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/knex/node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, - "node_modules/knex/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/last-run": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", "dev": true, "dependencies": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" + "unc-path-regex": "^0.1.2" }, "engines": { - "node": ">= 0.10" + "node": ">=0.10.0" } }, - "node_modules/lazystream": { + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "node_modules/is-valid-glob": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", "dev": true, - "dependencies": { - "readable-stream": "^2.0.5" - }, "engines": { - "node": ">= 0.6.3" + "node": ">=0.10.0" } }, - "node_modules/lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "node_modules/is-valid-path": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", + "integrity": "sha1-EQ+f90w39mPh7HkV60UfLbk6yd8=", "dev": true, "dependencies": { - "invert-kv": "^1.0.0" + "is-invalid-path": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/lead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, "dependencies": { - "flush-write-stream": "^1.0.2" + "call-bind": "^1.0.2" }, - "engines": { - "node": ">= 0.10" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "is-docker": "^2.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/libphonenumber-js": { - "version": "1.9.7", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.7.tgz", - "integrity": "sha512-mDY7fCe6dXd1ZUvYr3Q0ZaoqZ1DVXDSjcqa3AMGyudEd0Tyf8PoHkQ+9NucIBy9C/wFITPwL3Ef9SA148q20Cw==", + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, - "node_modules/liftoff": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", - "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, - "dependencies": { - "extend": "^3.0.0", - "findup-sync": "^3.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - }, "engines": { - "node": ">= 0.8" + "node": ">=0.10.0" } }, - "node_modules/lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/lint-staged": { - "version": "10.5.4", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz", - "integrity": "sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==", + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, "dependencies": { - "chalk": "^4.1.0", - "cli-truncate": "^2.1.0", - "commander": "^6.2.0", - "cosmiconfig": "^7.0.0", - "debug": "^4.2.0", - "dedent": "^0.7.0", - "enquirer": "^2.3.6", - "execa": "^4.1.0", - "listr2": "^3.2.2", - "log-symbols": "^4.0.0", - "micromatch": "^4.0.2", - "normalize-path": "^3.0.0", - "please-upgrade-node": "^3.2.0", - "string-argv": "0.3.1", - "stringify-object": "^3.3.0" + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, "bin": { - "lint-staged": "bin/lint-staged.js" - }, - "funding": { - "url": "https://opencollective.com/lint-staged" + "semver": "bin/semver.js" } }, - "node_modules/lint-staged/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", "supports-color": "^7.1.0" }, "engines": { - "node": ">=10" + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "engines": { + "node": ">=10" } }, - "node_modules/lint-staged/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "node_modules/istanbul-lib-source-maps/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -9225,178 +10260,170 @@ } } }, - "node_modules/lint-staged/node_modules/ms": { + "node_modules/istanbul-lib-source-maps/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/listr2": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.2.3.tgz", - "integrity": "sha512-vUb80S2dSUi8YxXahO8/I/s29GqnOL8ozgHVLjfWQXa03BNEeS1TpBLjh2ruaqq5ufx46BRGvfymdBSuoXET5w==", + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "cli-truncate": "^2.1.0", - "figures": "^3.2.0", - "indent-string": "^4.0.0", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rxjs": "^6.6.3", - "through": "^2.3.8" - }, "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" + "node": ">=0.10.0" } }, - "node_modules/listr2/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "node_modules/istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=8" } }, - "node_modules/load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "node_modules/istextorbinary": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.2.1.tgz", + "integrity": "sha512-TS+hoFl8Z5FAFMK38nhBkdLt44CclNRgDHWeMgsV8ko3nDlr/9UI2Sf839sW7enijf8oKsZYXRvM8g0it9Zmcw==", "dev": true, "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "binaryextensions": "2", + "editions": "^1.3.3", + "textextensions": "2" }, "engines": { - "node": ">=0.10.0" + "node": ">=0.12" } }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "node_modules/iterall": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", + "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==" + }, + "node_modules/jest": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.3.1.tgz", + "integrity": "sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==", "dev": true, "dependencies": { - "error-ex": "^1.2.0" + "@jest/core": "^29.3.1", + "@jest/types": "^29.3.1", + "import-local": "^3.0.2", + "jest-cli": "^29.3.1" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/load-json-file/node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "node_modules/jest-changed-files": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.2.0.tgz", + "integrity": "sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA==", "dev": true, "dependencies": { - "is-utf8": "^0.2.0" + "execa": "^5.0.0", + "p-limit": "^3.1.0" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/jest-changed-files/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "dependencies": { - "p-locate": "^4.1.0" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "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" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true - }, - "node_modules/lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true - }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", - "dev": true - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", - "dev": true - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", - "dev": true - }, - "node_modules/lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "node_modules/jest-changed-files/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, - "dependencies": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "node_modules/jest-changed-files/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, - "dependencies": { - "lodash._reinterpolate": "^3.0.0" + "engines": { + "node": ">=10.17.0" } }, - "node_modules/lodash.xorby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.xorby/-/lodash.xorby-4.7.0.tgz", - "integrity": "sha1-nBmm+fBjputT3QPBtocXmYAUY9c=", - "dev": true - }, - "node_modules/log-symbols": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", - "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", + "node_modules/jest-circus": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.3.1.tgz", + "integrity": "sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==", "dev": true, "dependencies": { - "chalk": "^4.0.0" + "@jest/environment": "^29.3.1", + "@jest/expect": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.3.1", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", + "p-limit": "^3.1.0", + "pretty-format": "^29.3.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -9409,2361 +10436,2716 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "node_modules/jest-circus/node_modules/pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", "dev": true, "dependencies": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "node_modules/jest-circus/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/jest-cli": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.3.1.tgz", + "integrity": "sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==", "dev": true, "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" + "@jest/core": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/loglevel": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", - "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">= 0.6.0" + "node": ">=10" }, "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/loglevel" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", - "dev": true - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "node_modules/jest-cli/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "dependencies": { - "yallist": "^3.0.2" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "node_modules/jest-cli/node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/jest-cli/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "dependencies": { - "semver": "^6.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "node_modules/jest-cli/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "engines": { + "node": ">=10" } }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/make-fetch-happen": { - "version": "8.0.12", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.12.tgz", - "integrity": "sha512-cBD7yM72ltWEV+xlLlbimnh5qHwr+thAb/cZLiaZhicVVPVN63BikBvL5OR68+8+z2fvBOgck628vGJ2ulgF6g==", + "node_modules/jest-cli/node_modules/yargs": { + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", "dev": true, "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.0.5", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^5.0.0", - "ssri": "^8.0.0" + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" }, "engines": { - "node": ">= 10" + "node": ">=12" } }, - "node_modules/make-fetch-happen/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/jest-cli/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, "engines": { - "node": ">=10" + "node": ">=12" } }, - "node_modules/make-fetch-happen/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "node_modules/jest-config": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.3.1.tgz", + "integrity": "sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==", "dev": true, "dependencies": { - "kind-of": "^6.0.2" + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.3.1", + "@jest/types": "^29.3.1", + "babel-jest": "^29.3.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.3.1", + "jest-environment-node": "^29.3.1", + "jest-get-type": "^29.2.0", + "jest-regex-util": "^29.2.0", + "jest-resolve": "^29.3.1", + "jest-runner": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.3.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "node_modules/make-iterator/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "node_modules/jest-config/node_modules/pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", "dev": true, "dependencies": { - "tmpl": "1.0.x" + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "node_modules/jest-config/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "node_modules/jest-config/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/jest-diff": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.3.1.tgz", + "integrity": "sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==", "dev": true, "dependencies": { - "object-visit": "^1.0.0" + "chalk": "^4.0.0", + "diff-sequences": "^29.3.1", + "jest-get-type": "^29.2.0", + "pretty-format": "^29.3.1" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/matchdep/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "node_modules/jest-diff/node_modules/pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", "dev": true, "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/matchdep/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "node_modules/jest-diff/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/jest-docblock": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.2.0.tgz", + "integrity": "sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A==", "dev": true, "dependencies": { - "is-extendable": "^0.1.0" + "detect-newline": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/matchdep/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "node_modules/jest-each": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.3.1.tgz", + "integrity": "sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==", "dev": true, "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "@jest/types": "^29.3.1", + "chalk": "^4.0.0", + "jest-get-type": "^29.2.0", + "jest-util": "^29.3.1", + "pretty-format": "^29.3.1" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/matchdep/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "is-extendable": "^0.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/matchdep/node_modules/findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "node_modules/jest-each/node_modules/pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", "dev": true, "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, "engines": { - "node": ">= 0.10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/matchdep/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "node_modules/jest-each/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/matchdep/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "node_modules/jest-each/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/jest-environment-node": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.3.1.tgz", + "integrity": "sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==", "dev": true, "dependencies": { - "is-extglob": "^2.1.0" + "@jest/environment": "^29.3.1", + "@jest/fake-timers": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "jest-mock": "^29.3.1", + "jest-util": "^29.3.1" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/matchdep/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "node_modules/jest-get-type": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz", + "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.3.1.tgz", + "integrity": "sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==", "dev": true, "dependencies": { - "kind-of": "^3.0.2" + "@jest/types": "^29.3.1", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.2.0", + "jest-util": "^29.3.1", + "jest-worker": "^29.3.1", + "micromatch": "^4.0.4", + "walker": "^1.0.8" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" } }, - "node_modules/matchdep/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "node_modules/jest-leak-detector": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz", + "integrity": "sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA==", "dev": true, "dependencies": { - "is-buffer": "^1.1.5" + "jest-get-type": "^29.2.0", + "pretty-format": "^29.3.1" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/matchdep/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/jest-leak-detector/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/matchdep/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "node_modules/jest-leak-detector/node_modules/pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", "dev": true, "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/matchdep/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "node_modules/jest-leak-detector/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/jest-matcher-utils": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz", + "integrity": "sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==", "dev": true, "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "chalk": "^4.0.0", + "jest-diff": "^29.3.1", + "jest-get-type": "^29.2.0", + "pretty-format": "^29.3.1" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/memory-pager": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", - "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "node_modules/jest-matcher-utils/node_modules/pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", "dev": true, - "optional": true - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "dependencies": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "node_modules/jest-matcher-utils/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "engines": { - "node": ">= 8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "node_modules/jest-matcher-utils/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/jest-message-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.3.1.tgz", + "integrity": "sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==", "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.3.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.3.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, "engines": { - "node": ">= 0.6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "node_modules/jest-message-util/node_modules/pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", "dev": true, - "bin": { - "mime": "cli.js" + "dependencies": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, "engines": { - "node": ">=4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", + "node_modules/jest-message-util/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/mime-types": { - "version": "2.1.28", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", - "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", + "node_modules/jest-message-util/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/jest-mock": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.3.1.tgz", + "integrity": "sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==", "dev": true, "dependencies": { - "mime-db": "1.45.0" + "@jest/types": "^29.3.1", + "@types/node": "*", + "jest-util": "^29.3.1" }, "engines": { - "node": ">= 0.6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, "engines": { "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } } }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, + "node_modules/jest-regex-util": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.2.0.tgz", + "integrity": "sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==", + "dev": true, "engines": { - "node": "*" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "node_modules/minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "node_modules/jest-resolve": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.3.1.tgz", + "integrity": "sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.3.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "node_modules/jest-resolve-dependencies": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz", + "integrity": "sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==", "dev": true, "dependencies": { - "minipass": "^3.0.0" + "jest-regex-util": "^29.2.0", + "jest-snapshot": "^29.3.1" }, "engines": { - "node": ">= 8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/minipass-fetch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.2.tgz", - "integrity": "sha512-/i4fX1ss+Dtwyk++OsAI6SEV+eE1dvI6W+0hORdjfruQ7VD5uYTetJIHcEMjWiEiszWjn2aAtP1CB/Q4KfeoYA==", + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, - "optionalDependencies": { - "encoding": "^0.1.12" + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "node_modules/jest-runner": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.3.1.tgz", + "integrity": "sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==", "dev": true, "dependencies": { - "minipass": "^3.0.0" + "@jest/console": "^29.3.1", + "@jest/environment": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.2.0", + "jest-environment-node": "^29.3.1", + "jest-haste-map": "^29.3.1", + "jest-leak-detector": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-resolve": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-util": "^29.3.1", + "jest-watcher": "^29.3.1", + "jest-worker": "^29.3.1", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" }, "engines": { - "node": ">= 8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "minipass": "^3.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "node_modules/jest-runner/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runner/node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, "dependencies": { - "minipass": "^3.0.0" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.3.1.tgz", + "integrity": "sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.3.1", + "@jest/fake-timers": "^29.3.1", + "@jest/globals": "^29.3.1", + "@jest/source-map": "^29.2.0", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-mock": "^29.3.1", + "jest-regex-util": "^29.2.0", + "jest-resolve": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/minipass/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/minizlib/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "node_modules/jest-snapshot": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.3.1.tgz", + "integrity": "sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==", "dev": true, "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.3.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.3.1", + "jest-get-type": "^29.2.0", + "jest-haste-map": "^29.3.1", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", + "natural-compare": "^1.4.0", + "pretty-format": "^29.3.1", + "semver": "^7.3.5" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/mongodb": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.3.tgz", - "integrity": "sha512-rOZuR0QkodZiM+UbQE5kDsJykBqWi0CL4Ec2i1nrGrUI3KO11r6Fbxskqmq3JK2NH7aW4dcccBuUujAP0ERl5w==", + "node_modules/jest-snapshot/node_modules/pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", "dev": true, "dependencies": { - "bl": "^2.2.1", - "bson": "^1.1.4", - "denque": "^1.4.1", - "require_optional": "^1.0.1", - "safe-buffer": "^5.1.2" + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, "engines": { - "node": ">=4" - }, - "optionalDependencies": { - "saslprep": "^1.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" }, - "peerDependenciesMeta": { - "aws4": { - "optional": true - }, - "bson-ext": { - "optional": true - }, - "kerberos": { - "optional": true - }, - "mongodb-client-encryption": { - "optional": true - }, - "mongodb-extjson": { - "optional": true - }, - "snappy": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/mongoose": { - "version": "5.10.18", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.10.18.tgz", - "integrity": "sha512-vaLUzBpUxqacoCqP/xXWMg/uVwCDrlc8LvYjDXCf8hdApvX/CXa0HLa7v2ieFaVd5Fgv3W2QXODLoC4Z/abbNw==", + "node_modules/jest-snapshot/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/jest-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", "dev": true, "dependencies": { - "bson": "^1.1.4", - "kareem": "2.3.1", - "mongodb": "3.6.3", - "mongoose-legacy-pluralize": "1.0.2", - "mpath": "0.7.0", - "mquery": "3.2.2", - "ms": "2.1.2", - "regexp-clone": "1.0.0", - "safe-buffer": "5.2.1", - "sift": "7.0.1", - "sliced": "1.0.1" + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" }, "engines": { - "node": ">=4.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mongoose" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/mongoose-legacy-pluralize": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", - "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==", + "node_modules/jest-validate": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.3.1.tgz", + "integrity": "sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==", "dev": true, - "peerDependencies": { - "mongoose": "*" + "dependencies": { + "@jest/types": "^29.3.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.2.0", + "leven": "^3.1.0", + "pretty-format": "^29.3.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/mongoose/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/mongoose/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/mpath": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.7.0.tgz", - "integrity": "sha512-Aiq04hILxhz1L+f7sjGyn7IxYzWm1zLNNXcfhDtx04kZ2Gk7uvFdgZ8ts1cWa/6d0TQmag2yR8zSGZUmp0tFNg==", + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=4.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/mquery": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.2.tgz", - "integrity": "sha512-XB52992COp0KP230I3qloVUbkLUxJIu328HBP2t2EsxSFtf4W1HPSOBWOXf1bqxK4Xbb66lfMJ+Bpfd9/yZE1Q==", + "node_modules/jest-validate/node_modules/pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", "dev": true, "dependencies": { - "bluebird": "3.5.1", - "debug": "3.1.0", - "regexp-clone": "^1.0.0", - "safe-buffer": "5.1.2", - "sliced": "1.0.1" + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, "engines": { - "node": ">=4.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/mquery/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "node_modules/jest-validate/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "dependencies": { - "ms": "2.0.0" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "node_modules/jest-validate/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, - "node_modules/mute-stdout": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", - "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", + "node_modules/jest-watcher": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.3.1.tgz", + "integrity": "sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==", "dev": true, + "dependencies": { + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.3.1", + "string-length": "^4.0.1" + }, "engines": { - "node": ">= 0.10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "dev": true, - "optional": true - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "node_modules/jest-worker": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", + "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", "dev": true, "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "@types/node": "*", + "jest-util": "^29.3.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/nanomatch/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/natural-compare": { + "node_modules/jju": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", "dev": true }, - "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "node_modules/joi": { + "version": "17.3.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.3.0.tgz", + "integrity": "sha512-Qh5gdU6niuYbUIUV5ejbsMiiFmBdw8Kcp8Buj2JntszCkCfxJ9Cz76OtHxOZMPXrt5810iDIXs+n1nNVoquHgg==", "dev": true, - "engines": { - "node": ">= 0.6" + "dependencies": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.0", + "@sideway/formula": "^3.0.0", + "@sideway/pinpoint": "^2.0.0" } }, - "node_modules/next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node_modules/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "node_modules/joiful": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/joiful/-/joiful-3.0.0.tgz", + "integrity": "sha512-NBFIWwN77+fgwwm88dyhcoMceBlaar5y5SVaHJzD7fmM4kvKUsjNh/nU0Bdv9zBYDe57nIPVBdSQXYgOKGHnCQ==", "dev": true, + "dependencies": { + "joi": "17.3.0" + }, "engines": { - "node": "4.x || >=6.0.0" + "node": ">=8.10", + "npm": ">=3.10.10", + "yarn": ">=1.13.0" } }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node_modules/node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "node_modules/js-sdsl": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", + "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", "dev": true, - "engines": { - "node": ">=0.10.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" } }, - "node_modules/node-notifier": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz", - "integrity": "sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==", - "dev": true, - "optional": true, - "dependencies": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.2", - "shellwords": "^0.1.1", - "uuid": "^8.3.0", - "which": "^2.0.2" - } + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, "bin": { - "semver": "bin/semver" + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/now-and-later": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", - "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.2.tgz", + "integrity": "sha512-46Tk9JiOL2z7ytNQWFLpj99RZkVgeHf87yGQKsIkaPz1qSH9UczKH1rO7K3wgRselo0tYMUNfecYpm/p1vC7tQ==", "dev": true, - "dependencies": { - "once": "^1.3.2" + "bin": { + "json5": "lib/cli.js" }, "engines": { - "node": ">= 0.10" + "node": ">=6" } }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "node_modules/jsonc-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, "dependencies": { - "path-key": "^3.0.0" + "universalify": "^2.0.0" }, - "engines": { - "node": ">=8" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "node_modules/just-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", + "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=", + "dev": true }, - "node_modules/nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "node_modules/kareem": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.1.tgz", + "integrity": "sha512-l3hLhffs9zqoDe8zjmb/mAN4B8VT3L56EUvKNqLFVs9YlFA+zx7ke1DO8STAdDyYNkeSo1nKmjuvQeI12So8Xw==", "dev": true }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true, "engines": { - "node": "*" + "node": ">=0.10.0" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "node_modules/knex": { + "version": "0.21.17", + "resolved": "https://registry.npmjs.org/knex/-/knex-0.21.17.tgz", + "integrity": "sha512-kAt58lRwjzqwedApKF7luYPa7HsLb0oDiczwKrkZcekIzTmSow5YGK149S2C8HjH63R3NcOBo9+1rjvWnC1Paw==", "dev": true, "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "colorette": "1.2.1", + "commander": "^6.2.0", + "debug": "4.3.1", + "esm": "^3.2.25", + "getopts": "2.2.5", + "interpret": "^2.2.0", + "liftoff": "3.1.0", + "lodash": "^4.17.20", + "pg-connection-string": "2.4.0", + "tarn": "^3.0.1", + "tildify": "2.0.0", + "v8flags": "^3.2.0" + }, + "bin": { + "knex": "bin/cli.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "peerDependencies": { + "mssql": "^6.2.1", + "mysql": "^2.18.1", + "mysql2": "^2.1.0", + "pg": "^8.3.0", + "sqlite3": "^5.0.0" + }, + "peerDependenciesMeta": { + "mssql": { + "optional": true + }, + "mysql": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "pg": { + "optional": true + }, + "sqlite3": { + "optional": true + } } }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "node_modules/knex/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "dependencies": { - "is-descriptor": "^0.1.0" + "ms": "2.1.2" }, "engines": { - "node": ">=0.10.0" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/object-copy/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "node_modules/knex/node_modules/interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, - "node_modules/object-copy/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "node_modules/knex/node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/knex/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/last-run": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", + "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", "dev": true, "dependencies": { - "kind-of": "^3.0.2" + "default-resolution": "^2.0.0", + "es6-weak-map": "^2.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, - "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "node_modules/lazystream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", + "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", "dev": true, "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "readable-stream": "^2.0.5" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.6.3" } }, - "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "node_modules/lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, + "dependencies": { + "invert-kv": "^1.0.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "node_modules/lead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", "dev": true, "dependencies": { - "is-buffer": "^1.1.5" + "flush-write-stream": "^1.0.2" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, - "node_modules/object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=6" } }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "node_modules/libphonenumber-js": { + "version": "1.9.7", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.7.tgz", + "integrity": "sha512-mDY7fCe6dXd1ZUvYr3Q0ZaoqZ1DVXDSjcqa3AMGyudEd0Tyf8PoHkQ+9NucIBy9C/wFITPwL3Ef9SA148q20Cw==", + "dev": true + }, + "node_modules/liftoff": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", + "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", "dev": true, + "dependencies": { + "extend": "^3.0.0", + "findup-sync": "^3.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + }, "engines": { - "node": ">= 0.4" + "node": ">= 0.8" } }, - "node_modules/object-path": { - "version": "0.11.5", - "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.5.tgz", - "integrity": "sha512-jgSbThcoR/s+XumvGMTMf81QVBmah+/Q7K7YduKeKVWL7N111unR2d6pZZarSk6kY/caeNxUDyxOvMWyzoU2eg==", + "node_modules/lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "node_modules/linkify-it": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", + "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", "dev": true, - "engines": { - "node": ">= 10.12.0" + "dependencies": { + "uc.micro": "^1.0.1" } }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "node_modules/lint-staged": { + "version": "10.5.4", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz", + "integrity": "sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==", "dev": true, "dependencies": { - "isobject": "^3.0.0" + "chalk": "^4.1.0", + "cli-truncate": "^2.1.0", + "commander": "^6.2.0", + "cosmiconfig": "^7.0.0", + "debug": "^4.2.0", + "dedent": "^0.7.0", + "enquirer": "^2.3.6", + "execa": "^4.1.0", + "listr2": "^3.2.2", + "log-symbols": "^4.0.0", + "micromatch": "^4.0.2", + "normalize-path": "^3.0.0", + "please-upgrade-node": "^3.2.0", + "string-argv": "0.3.1", + "stringify-object": "^3.3.0" }, - "engines": { - "node": ">=0.10.0" + "bin": { + "lint-staged": "bin/lint-staged.js" + }, + "funding": { + "url": "https://opencollective.com/lint-staged" } }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "node_modules/lint-staged/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "node_modules/lint-staged/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "dependencies": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" + "ms": "2.1.2" }, "engines": { - "node": ">=0.10.0" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/object.getownpropertydescriptors": { + "node_modules/lint-staged/node_modules/ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", - "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/listr2": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.2.3.tgz", + "integrity": "sha512-vUb80S2dSUi8YxXahO8/I/s29GqnOL8ozgHVLjfWQXa03BNEeS1TpBLjh2ruaqq5ufx46BRGvfymdBSuoXET5w==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2" + "chalk": "^4.1.0", + "cli-truncate": "^2.1.0", + "figures": "^3.2.0", + "indent-string": "^4.0.0", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rxjs": "^6.6.3", + "through": "^2.3.8" }, "engines": { - "node": ">= 0.8" + "node": ">=10.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" } }, - "node_modules/object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "node_modules/listr2/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "dependencies": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "dependencies": { - "isobject": "^3.0.1" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/object.reduce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", + "node_modules/load-json-file/node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "dependencies": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" + "error-ex": "^1.2.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "node_modules/load-json-file/node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "dependencies": { - "ee-first": "1.1.1" + "is-utf8": "^0.2.0" }, "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" + "node": ">=0.10.0" } }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "dependencies": { - "mimic-fn": "^2.1.0" + "p-locate": "^4.1.0" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/opencollective-postinstall": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", - "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", - "dev": true, - "bin": { - "opencollective-postinstall": "index.js" - } + "node_modules/lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true }, - "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "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" - }, - "engines": { - "node": ">= 0.8.0" - } + "node_modules/lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "dev": true }, - "node_modules/ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", + "node_modules/lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", + "dev": true + }, + "node_modules/lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", + "dev": true + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "node_modules/lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", "dev": true, "dependencies": { - "readable-stream": "^2.0.1" + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" } }, - "node_modules/os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "node_modules/lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", "dev": true, "dependencies": { - "lcid": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "lodash._reinterpolate": "^3.0.0" } }, - "node_modules/p-each-series": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", - "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/lodash.xorby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.xorby/-/lodash.xorby-4.7.0.tgz", + "integrity": "sha1-nBmm+fBjputT3QPBtocXmYAUY9c=", + "dev": true }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "node_modules/log-symbols": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", + "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", "dev": true, + "dependencies": { + "chalk": "^4.0.0" + }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "dependencies": { - "p-try": "^2.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-map": { + "node_modules/log-update/node_modules/slice-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "dependencies": { - "aggregate-error": "^3.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "node_modules/loglevel": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", + "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", "dev": true, "engines": { - "node": ">=6" + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" } }, - "node_modules/packet-reader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", - "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==", + "node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", "dev": true }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "dependencies": { - "callsites": "^3.0.0" + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" }, "engines": { - "node": ">=6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parent-require": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parent-require/-/parent-require-1.0.0.tgz", - "integrity": "sha1-dGoWdjgIOoYLDu9nMssn7UbDKXc=", + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "engines": { - "node": ">= 0.4.0" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/make-fetch-happen": { + "version": "8.0.12", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.12.tgz", + "integrity": "sha512-cBD7yM72ltWEV+xlLlbimnh5qHwr+thAb/cZLiaZhicVVPVN63BikBvL5OR68+8+z2fvBOgck628vGJ2ulgF6g==", "dev": true, "dependencies": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" + "agentkeepalive": "^4.1.3", + "cacache": "^15.0.5", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^5.0.0", + "ssri": "^8.0.0" }, "engines": { - "node": ">=0.8" + "node": ">= 10" } }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "node_modules/make-fetch-happen/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" + "yallist": "^4.0.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10" } }, - "node_modules/parse-node-version": { + "node_modules/make-fetch-happen/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/make-iterator": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, "engines": { - "node": ">= 0.10" + "node": ">=0.10.0" } }, - "node_modules/parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "node_modules/make-iterator/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", - "dev": true - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, "dependencies": { - "parse5": "^6.0.1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "engines": { - "node": ">= 0.8" + "tmpl": "1.0.5" } }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dependencies": { + "object-visit": "^1.0.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/markdown-it": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz", + "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "argparse": "^2.0.1", + "entities": "~3.0.1", + "linkify-it": "^4.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" } }, - "node_modules/path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "node_modules/markdown-it/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "node_modules/markdownlint": { + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.26.2.tgz", + "integrity": "sha512-2Am42YX2Ex5SQhRq35HxYWDfz1NLEOZWWN25nqd2h3AHRKsGRE+Qg1gt1++exW792eXTrR4jCNHfShfWk9Nz8w==", "dev": true, "dependencies": { - "path-root-regex": "^0.1.0" + "markdown-it": "13.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=14" } }, - "node_modules/path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "node_modules/markdownlint-cli": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.32.2.tgz", + "integrity": "sha512-xmJT1rGueUgT4yGNwk6D0oqQr90UJ7nMyakXtqjgswAkEhYYqjHew9RY8wDbOmh2R270IWjuKSeZzHDEGPAUkQ==", "dev": true, + "dependencies": { + "commander": "~9.4.0", + "get-stdin": "~9.0.0", + "glob": "~8.0.3", + "ignore": "~5.2.0", + "js-yaml": "^4.1.0", + "jsonc-parser": "~3.1.0", + "markdownlint": "~0.26.2", + "markdownlint-rule-helpers": "~0.17.2", + "minimatch": "~5.1.0", + "run-con": "~1.2.11" + }, + "bin": { + "markdownlint": "markdownlint.js" + }, "engines": { - "node": ">=0.10.0" + "node": ">=14" } }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "node_modules/markdownlint-cli/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "node_modules/markdownlint-cli/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "balanced-match": "^1.0.0" } }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "node_modules/pg": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.5.1.tgz", - "integrity": "sha512-9wm3yX9lCfjvA98ybCyw2pADUivyNWT/yIP4ZcDVpMN0og70BUWYEGXPCTAQdGTAqnytfRADb7NERrY1qxhIqw==", + "node_modules/markdownlint-cli/node_modules/commander": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", + "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", "dev": true, - "dependencies": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.4.0", - "pg-pool": "^3.2.2", - "pg-protocol": "^1.4.0", - "pg-types": "^2.1.0", - "pgpass": "1.x" - }, "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "pg-native": ">=2.0.0" - }, - "peerDependenciesMeta": { - "pg-native": { - "optional": true - } + "node": "^12.20.0 || >=14" } }, - "node_modules/pg-connection-string": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.4.0.tgz", - "integrity": "sha512-3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ==", - "dev": true - }, - "node_modules/pg-int8": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", - "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "node_modules/markdownlint-cli/node_modules/get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", "dev": true, "engines": { - "node": ">=4.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pg-pool": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.2.2.tgz", - "integrity": "sha512-ORJoFxAlmmros8igi608iVEbQNNZlp89diFVx6yV5v+ehmpMY9sK6QgpmgoXbmkNaBAx8cOOZh9g80kJv1ooyA==", + "node_modules/markdownlint-cli/node_modules/glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", "dev": true, - "peerDependencies": { - "pg": ">=8.0" + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/pg-protocol": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.4.0.tgz", - "integrity": "sha512-El+aXWcwG/8wuFICMQjM5ZSAm6OWiJicFdNYo+VY3QP+8vI4SvLIWVe51PppTzMhikUJR+PsyIFKqfdXPz/yxA==", - "dev": true - }, - "node_modules/pg-types": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", - "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "node_modules/markdownlint-cli/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "dependencies": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" + "argparse": "^2.0.1" }, - "engines": { - "node": ">=4" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/pgpass": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz", - "integrity": "sha512-YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==", + "node_modules/markdownlint-cli/node_modules/minimatch": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", + "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", "dev": true, "dependencies": { - "split2": "^3.1.1" + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" } }, - "node_modules/picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "node_modules/markdownlint-rule-helpers": { + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.17.2.tgz", + "integrity": "sha512-XaeoW2NYSlWxMCZM2B3H7YTG6nlaLfkEZWMBhr4hSPlq9MuY2sy83+Xr89jXOqZMZYjvi5nBCGoFh7hHoPKZmA==", "dev": true, "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "node": ">=12" } }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "node_modules/matchdep": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", + "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", "dev": true, + "dependencies": { + "findup-sync": "^2.0.0", + "micromatch": "^3.0.4", + "resolve": "^1.4.0", + "stack-trace": "0.0.10" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10.0" } }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "node_modules/matchdep/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/pinkie-promise": { + "node_modules/matchdep/node_modules/braces/node_modules/extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { - "pinkie": "^2.0.0" + "is-extendable": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "node_modules/matchdep/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "dependencies": { - "node-modules-regexp": "^1.0.0" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", - "dev": true, - "dependencies": { - "semver-compare": "^1.0.0" - } - }, - "node_modules/plugin-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", - "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", + "node_modules/matchdep/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { - "ansi-colors": "^1.0.1", - "arr-diff": "^4.0.0", - "arr-union": "^3.1.0", - "extend-shallow": "^3.0.2" + "is-extendable": "^0.1.0" }, "engines": { - "node": ">= 0.10" + "node": ">=0.10.0" } }, - "node_modules/plugin-error/node_modules/ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "node_modules/matchdep/node_modules/findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", "dev": true, "dependencies": { - "ansi-wrap": "^0.1.0" + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, - "node_modules/posix-character-classes": { + "node_modules/matchdep/node_modules/is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/postgres-array": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", - "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/postgres-bytea": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", - "integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=", + "node_modules/matchdep/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/postgres-date": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", - "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "node_modules/matchdep/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/postgres-interval": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", - "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "node_modules/matchdep/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { - "xtend": "^4.0.0" + "is-buffer": "^1.1.5" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "node_modules/matchdep/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", + "node_modules/matchdep/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, - "bin": { - "prettier": "bin-prettier.js" + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "engines": { - "node": ">=10.13.0" + "node": ">=0.10.0" } }, - "node_modules/pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "node_modules/matchdep/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "dependencies": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "engines": { - "node": ">= 10" + "node": ">=0.10.0" } }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "dev": true + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true, "engines": { - "node": ">= 0.8" + "node": ">= 0.6" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "node_modules/memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "dev": true, + "optional": true }, - "node_modules/promise-inflight": { + "node_modules/merge-descriptors": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", "dev": true }, - "node_modules/promise-retry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", - "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, - "dependencies": { - "err-code": "^1.0.0", - "retry": "^0.10.0" - }, "engines": { - "node": ">=0.12" + "node": ">= 8" } }, - "node_modules/promise-retry/node_modules/retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", "dev": true, "engines": { - "node": "*" + "node": ">= 0.6" } }, - "node_modules/prompts": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", - "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==", + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { - "node": ">= 6" + "node": ">=8.6" } }, - "node_modules/proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, - "dependencies": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.1" + "bin": { + "mime": "cli.js" }, "engines": { - "node": ">= 0.10" + "node": ">=4" } }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "node_modules/mime-db": { + "version": "1.45.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", + "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "engines": { + "node": ">= 0.6" } }, - "node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "node_modules/mime-types": { + "version": "2.1.28", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", + "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", "dev": true, "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" + "mime-db": "1.45.0" + }, + "engines": { + "node": ">= 0.6" } }, - "node_modules/pumpify/node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, "engines": { "node": ">=6" } }, - "node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, "engines": { - "node": ">=0.6" + "node": "*" } }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "node_modules/minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", "dev": true, - "engines": { - "node": ">= 0.6" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "node_modules/minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", "dev": true, "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "yallist": "^4.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">=8" } }, - "node_modules/raw-body/node_modules/http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "dev": true, "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" + "minipass": "^3.0.0" }, "engines": { - "node": ">= 0.6" + "node": ">= 8" } }, - "node_modules/raw-body/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/react-is": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", - "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", - "dev": true - }, - "node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "node_modules/minipass-fetch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.2.tgz", + "integrity": "sha512-/i4fX1ss+Dtwyk++OsAI6SEV+eE1dvI6W+0hORdjfruQ7VD5uYTetJIHcEMjWiEiszWjn2aAtP1CB/Q4KfeoYA==", "dev": true, "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" }, "engines": { "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" } }, - "node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" + "minipass": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, "engines": { - "node": ">=8" - } - }, - "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "node": ">= 8" } }, - "node_modules/readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, "dependencies": { - "picomatch": "^2.2.1" + "minipass": "^3.0.0" }, "engines": { - "node": ">=8.10.0" + "node": ">=8" } }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "dev": true, "dependencies": { - "resolve": "^1.1.6" + "minipass": "^3.0.0" }, "engines": { - "node": ">= 0.10" + "node": ">=8" } }, - "node_modules/redis-commands": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz", - "integrity": "sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==", + "node_modules/minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "node_modules/redis-errors": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", - "integrity": "sha1-62LSrbFeTq9GEMBK/hUpOEJQq60=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/redis-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", - "integrity": "sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ=", + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, "dependencies": { - "redis-errors": "^1.0.0" + "minipass": "^3.0.0", + "yallist": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">= 8" } }, - "node_modules/reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/regexp-clone": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", - "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==", - "dev": true - }, - "node_modules/remove-bom-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", - "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, - "dependencies": { - "is-buffer": "^1.1.5", - "is-utf8": "^0.2.1" + "bin": { + "mkdirp": "bin/cmd.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/remove-bom-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", + "node_modules/mongodb": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.3.tgz", + "integrity": "sha512-rOZuR0QkodZiM+UbQE5kDsJykBqWi0CL4Ec2i1nrGrUI3KO11r6Fbxskqmq3JK2NH7aW4dcccBuUujAP0ERl5w==", "dev": true, "dependencies": { - "remove-bom-buffer": "^3.0.0", - "safe-buffer": "^5.1.0", - "through2": "^2.0.3" + "bl": "^2.2.1", + "bson": "^1.1.4", + "denque": "^1.4.1", + "require_optional": "^1.0.1", + "safe-buffer": "^5.1.2" }, "engines": { - "node": ">= 0.10" - } - }, - "node_modules/remove-bom-stream/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true + "node": ">=4" + }, + "optionalDependencies": { + "saslprep": "^1.0.0" + }, + "peerDependenciesMeta": { + "aws4": { + "optional": true + }, + "bson-ext": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "mongodb-extjson": { + "optional": true + }, + "snappy": { + "optional": true + } + } }, - "node_modules/repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "node_modules/mongoose": { + "version": "5.10.18", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.10.18.tgz", + "integrity": "sha512-vaLUzBpUxqacoCqP/xXWMg/uVwCDrlc8LvYjDXCf8hdApvX/CXa0HLa7v2ieFaVd5Fgv3W2QXODLoC4Z/abbNw==", "dev": true, + "dependencies": { + "bson": "^1.1.4", + "kareem": "2.3.1", + "mongodb": "3.6.3", + "mongoose-legacy-pluralize": "1.0.2", + "mpath": "0.7.0", + "mquery": "3.2.2", + "ms": "2.1.2", + "regexp-clone": "1.0.0", + "safe-buffer": "5.2.1", + "sift": "7.0.1", + "sliced": "1.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mongoose" } }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "node_modules/mongoose-legacy-pluralize": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", + "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==", "dev": true, - "engines": { - "node": ">=0.10" + "peerDependencies": { + "mongoose": "*" } }, - "node_modules/replace-ext": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "node_modules/mongoose/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/mongoose/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/mpath": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.7.0.tgz", + "integrity": "sha512-Aiq04hILxhz1L+f7sjGyn7IxYzWm1zLNNXcfhDtx04kZ2Gk7uvFdgZ8ts1cWa/6d0TQmag2yR8zSGZUmp0tFNg==", "dev": true, "engines": { - "node": ">= 0.10" + "node": ">=4.0.0" } }, - "node_modules/replace-homedir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", + "node_modules/mquery": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.2.tgz", + "integrity": "sha512-XB52992COp0KP230I3qloVUbkLUxJIu328HBP2t2EsxSFtf4W1HPSOBWOXf1bqxK4Xbb66lfMJ+Bpfd9/yZE1Q==", "dev": true, "dependencies": { - "homedir-polyfill": "^1.0.1", - "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" + "bluebird": "3.5.1", + "debug": "3.1.0", + "regexp-clone": "^1.0.0", + "safe-buffer": "5.1.2", + "sliced": "1.0.1" }, "engines": { - "node": ">= 0.10" + "node": ">=4.0.0" } }, - "node_modules/replacestream": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/replacestream/-/replacestream-4.0.3.tgz", - "integrity": "sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA==", + "node_modules/mquery/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "dependencies": { - "escape-string-regexp": "^1.0.3", - "object-assign": "^4.0.1", - "readable-stream": "^2.0.2" + "ms": "2.0.0" } }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dev": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true }, - "node_modules/request-promise-core": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", - "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "node_modules/mute-stdout": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", + "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", "dev": true, - "dependencies": { - "lodash": "^4.17.19" - }, "engines": { - "node": ">=0.10.0" - }, - "peerDependencies": { - "request": "^2.34" + "node": ">= 0.10" } }, - "node_modules/request-promise-core/node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "node_modules/mvdan-sh": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/mvdan-sh/-/mvdan-sh-0.10.1.tgz", + "integrity": "sha512-kMbrH0EObaKmK3nVRKUIIya1dpASHIEusM13S4V1ViHFuxuNxCo+arxoa6j/dbV22YBGjl7UKJm9QQKJ2Crzhg==", "dev": true }, - "node_modules/request-promise-native": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", - "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", - "deprecated": "request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142", + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", "dev": true, "dependencies": { - "request-promise-core": "1.1.4", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - }, - "engines": { - "node": ">=0.12.0" - }, - "peerDependencies": { - "request": "^2.34" + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" } }, - "node_modules/request-promise-native/node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "node_modules/nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", "dev": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } + "optional": true }, - "node_modules/request/node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "engines": { - "node": ">= 0.12" + "node": ">=0.10.0" } }, - "node_modules/request/node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "node_modules/nanomatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "engines": { - "node": ">=0.6" + "node": ">=0.10.0" } }, - "node_modules/request/node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", "dev": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, "engines": { - "node": ">=0.8" + "node": ">= 0.6" } }, - "node_modules/request/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } + "node_modules/next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true }, - "node_modules/require_optional": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", - "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", + "node_modules/node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", "dev": true, - "dependencies": { - "resolve-from": "^2.0.0", - "semver": "^5.1.0" + "engines": { + "node": "4.x || >=6.0.0" } }, - "node_modules/require_optional/node_modules/resolve-from": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", + "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "node_modules/require_optional/node_modules/semver": { + "node_modules/normalize-package-data/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", @@ -11772,2308 +13154,2149 @@ "semver": "bin/semver" } }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "node_modules/resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "node_modules/now-and-later": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", "dev": true, "dependencies": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" + "once": "^1.3.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 0.10" } }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "dependencies": { - "resolve-from": "^5.0.0" + "path-key": "^3.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true, - "dependencies": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/resolve-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "dependencies": { - "value-or-function": "^3.0.0" + "is-descriptor": "^0.1.0" }, "engines": { - "node": ">= 0.10" + "node": ">=0.10.0" } }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "node_modules/object-copy/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "kind-of": "^3.0.2" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "node_modules/object-copy/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, "engines": { - "node": ">=0.12" + "node": ">=0.10.0" } }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, "engines": { - "node": ">= 4" + "node": ">=0.10.0" } }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true, "engines": { - "iojs": ">=1.0.0", "node": ">=0.10.0" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" + "is-buffer": "^1.1.5" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, "engines": { - "node": "6.* || >= 7.*" + "node": ">= 0.4" } }, - "node_modules/run-parallel": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", - "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", + "node_modules/object-path": { + "version": "0.11.5", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.5.tgz", + "integrity": "sha512-jgSbThcoR/s+XumvGMTMf81QVBmah+/Q7K7YduKeKVWL7N111unR2d6pZZarSk6kY/caeNxUDyxOvMWyzoU2eg==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "engines": { + "node": ">= 10.12.0" + } }, - "node_modules/rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "dependencies": { - "tslib": "^1.9.0" + "isobject": "^3.0.0" }, "engines": { - "npm": ">=2.0.0" + "node": ">=0.10.0" } }, - "node_modules/rxjs/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, "dependencies": { - "ret": "~0.1.10" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/sane": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", + "node_modules/object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", "dev": true, "dependencies": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - }, - "bin": { - "sane": "src/cli.js" + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" }, "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/sane/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" + "node": ">=0.10.0" } }, - "node_modules/sane/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "node_modules/object.entries": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", "dev": true, "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/sane/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", + "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", "dev": true, "dependencies": { - "is-extendable": "^0.1.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/sane/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "node_modules/object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", "dev": true, "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" }, "engines": { - "node": ">=4.8" + "node": ">=0.10.0" } }, - "node_modules/sane/node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "isobject": "^3.0.1" }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/sane/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "node_modules/object.reduce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", + "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", "dev": true, "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/sane/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "node_modules/object.values": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", "dev": true, "dependencies": { - "is-extendable": "^0.1.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/sane/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", "dev": true, "dependencies": { - "pump": "^3.0.0" + "ee-first": "1.1.1" }, "engines": { - "node": ">=6" + "node": ">= 0.8" } }, - "node_modules/sane/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" } }, - "node_modules/sane/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "dependencies": { - "kind-of": "^3.0.2" + "mimic-fn": "^2.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/sane/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "node_modules/open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", "dev": true, "dependencies": { - "is-buffer": "^1.1.5" + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/sane/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "node_modules/ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "readable-stream": "^2.0.1" } }, - "node_modules/sane/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "dev": true, + "dependencies": { + "lcid": "^1.0.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/sane/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/sane/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "dependencies": { - "remove-trailing-separator": "^1.0.1" + "p-limit": "^2.2.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/sane/node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "dependencies": { - "path-key": "^2.0.0" + "p-try": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/sane/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/sane/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, - "bin": { - "semver": "bin/semver" + "engines": { + "node": ">=6" } }, - "node_modules/sane/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "node_modules/packet-reader": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", + "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==", + "dev": true + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "dependencies": { - "shebang-regex": "^1.0.0" + "callsites": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/sane/node_modules/shebang-regex": { + "node_modules/parent-require": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "resolved": "https://registry.npmjs.org/parent-require/-/parent-require-1.0.0.tgz", + "integrity": "sha1-dGoWdjgIOoYLDu9nMssn7UbDKXc=", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4.0" } }, - "node_modules/sane/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", "dev": true, "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=0.8" } }, - "node_modules/sane/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "dependencies": { - "isexe": "^2.0.0" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" }, - "bin": { - "which": "bin/which" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/saslprep": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", - "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", "dev": true, - "optional": true, - "dependencies": { - "sparse-bitfield": "^3.0.3" - }, "engines": { - "node": ">=6" + "node": ">= 0.10" } }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", "dev": true, - "dependencies": { - "xmlchars": "^2.2.0" - }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "dev": true + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "parse5": "^6.0.1" } }, - "node_modules/semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", "dev": true }, - "node_modules/semver-greatest-satisfied-range": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true, - "dependencies": { - "sver-compat": "^1.5.0" - }, "engines": { - "node": ">= 0.10" + "node": ">= 0.8" } }, - "node_modules/semver-regex": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.2.tgz", - "integrity": "sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA==", + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true }, - "node_modules/semver/node_modules/yallist": { + "node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/send/node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "node_modules/serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "dev": true, - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", "dev": true, "dependencies": { - "is-extendable": "^0.1.0" + "path-root-regex": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/set-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", "dev": true }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, "engines": { "node": ">=8" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "node_modules/pg": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.5.1.tgz", + "integrity": "sha512-9wm3yX9lCfjvA98ybCyw2pADUivyNWT/yIP4ZcDVpMN0og70BUWYEGXPCTAQdGTAqnytfRADb7NERrY1qxhIqw==", "dev": true, + "dependencies": { + "buffer-writer": "2.0.0", + "packet-reader": "1.0.0", + "pg-connection-string": "^2.4.0", + "pg-pool": "^3.2.2", + "pg-protocol": "^1.4.0", + "pg-types": "^2.1.0", + "pgpass": "1.x" + }, "engines": { - "node": ">=8" + "node": ">= 8.0.0" + }, + "peerDependencies": { + "pg-native": ">=2.0.0" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } } }, - "node_modules/shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true, - "optional": true - }, - "node_modules/sift": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz", - "integrity": "sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g==", - "dev": true - }, - "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "node_modules/pg-connection-string": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.4.0.tgz", + "integrity": "sha512-3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ==", "dev": true }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "node_modules/pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", "dev": true, "engines": { - "node": ">=8" + "node": ">=4.0.0" } }, - "node_modules/slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "node_modules/pg-pool": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.2.2.tgz", + "integrity": "sha512-ORJoFxAlmmros8igi608iVEbQNNZlp89diFVx6yV5v+ehmpMY9sK6QgpmgoXbmkNaBAx8cOOZh9g80kJv1ooyA==", "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=8" + "peerDependencies": { + "pg": ">=8.0" } }, - "node_modules/sliced": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", - "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=", + "node_modules/pg-protocol": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.4.0.tgz", + "integrity": "sha512-El+aXWcwG/8wuFICMQjM5ZSAm6OWiJicFdNYo+VY3QP+8vI4SvLIWVe51PppTzMhikUJR+PsyIFKqfdXPz/yxA==", "dev": true }, - "node_modules/smart-buffer": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", - "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", - "dev": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "node_modules/pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", "dev": true, "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "node_modules/pgpass": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz", + "integrity": "sha512-YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==", "dev": true, "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" + "split2": "^3.1.1" } }, - "node_modules/snapdragon-node/node_modules/define-property": { + "node_modules/picocolors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "dependencies": { - "kind-of": "^3.2.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/snapdragon/node_modules/extend-shallow": { + "node_modules/pinkie-promise": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "dependencies": { - "is-extendable": "^0.1.0" + "pinkie": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 6" } }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "dependencies": { - "is-buffer": "^1.1.5" + "find-up": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/snapdragon/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "node_modules/please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", "dev": true, "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" + "semver-compare": "^1.0.0" } }, - "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "node_modules/plugin-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", "dev": true, "dependencies": { - "is-buffer": "^1.1.5" + "ansi-colors": "^1.0.1", + "arr-diff": "^4.0.0", + "arr-union": "^3.1.0", + "extend-shallow": "^3.0.2" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "node_modules/plugin-error/node_modules/ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "ansi-wrap": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/snapdragon/node_modules/is-extendable": { + "node_modules/posix-character-classes": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/snapdragon/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, + "node_modules/postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/socks": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.5.1.tgz", - "integrity": "sha512-oZCsJJxapULAYJaEYBSzMcz8m3jqgGrHaGhkmU/o/PQfFWYWxkAaA0UMGImb6s6tEXfKi959X6VJjMMQ3P6TTQ==", + "node_modules/postgres-bytea": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", + "integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=", "dev": true, - "dependencies": { - "ip": "^1.1.5", - "smart-buffer": "^4.1.0" - }, "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" + "node": ">=0.10.0" } }, - "node_modules/socks-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", - "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", + "node_modules/postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4", - "socks": "^2.3.3" - }, "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, - "node_modules/socks-proxy-agent/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "node_modules/postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", "dev": true, "dependencies": { - "ms": "2.1.2" + "xtend": "^4.0.0" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=0.10.0" } }, - "node_modules/socks-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "node_modules/prettier": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", + "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, "engines": { - "node": ">= 8" + "node": ">=10.13.0" } }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "node_modules/prettier-plugin-sh": { + "version": "0.12.8", + "resolved": "https://registry.npmjs.org/prettier-plugin-sh/-/prettier-plugin-sh-0.12.8.tgz", + "integrity": "sha512-VOq8h2Gn5UzrCIKm4p/nAScXJbN09HdyFDknAcxt6Qu/tv/juu9bahxSrcnM9XWYA+Spz1F1ANJ4LhfwB7+Q1Q==", "dev": true, "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "mvdan-sh": "^0.10.1", + "sh-syntax": "^0.3.6", + "synckit": "^0.8.1" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + }, + "peerDependencies": { + "prettier": "^2.0.0" } }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 10" } }, - "node_modules/source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "node_modules/sparkles": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", + "node_modules/pretty-format/node_modules/@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + }, "engines": { - "node": ">= 0.10" + "node": ">= 10.14.2" } }, - "node_modules/sparse-bitfield": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", - "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", + "node_modules/pretty-format/node_modules/@types/yargs": { + "version": "15.0.14", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", + "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", "dev": true, - "optional": true, "dependencies": { - "memory-pager": "^1.0.2" + "@types/yargs-parser": "*" } }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "node_modules/pretty-format/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "engines": { + "node": ">= 0.8" } }, - "node_modules/spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "node_modules/promise-retry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", "dev": true, "dependencies": { - "extend-shallow": "^3.0.0" + "err-code": "^1.0.0", + "retry": "^0.10.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=0.12" } }, - "node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "node_modules/promise-retry/node_modules/retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", "dev": true, - "dependencies": { - "readable-stream": "^3.0.0" + "engines": { + "node": "*" } }, - "node_modules/split2/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" }, "engines": { "node": ">= 6" } }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/sqlstring": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.2.tgz", - "integrity": "sha512-vF4ZbYdKS8OnoJAWBmMxCQDkiEBkGQYU7UZPtL8flbDRSNkhaXvRJ279ZtI6M+zDaQovVU4tuRgzK5fVhvFAhg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "node_modules/proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", "dev": true, "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, - "node_modules/ssri": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", - "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", - "dev": true, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "dev": true, - "engines": { - "node": "*" + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" } }, - "node_modules/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", + "node_modules/pumpify/node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "dev": true, "dependencies": { - "escape-string-regexp": "^2.0.0" - }, + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, "engines": { - "node": ">=10" + "node": ">=6" } }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.6" } }, - "node_modules/standard-as-callback": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.0.1.tgz", - "integrity": "sha512-NQOxSeB8gOI5WjSaxjBgog2QFw55FV8TkS6Y07BiB3VJ8xNTvUYm0wl0s8ObgQ5NhdpnNfigMIKjgPESzgr4tg==", - "dev": true + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", "dev": true, "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.8" } }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "node_modules/raw-body/node_modules/http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", "dev": true, "dependencies": { - "is-descriptor": "^0.1.0" + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.6" } }, - "node_modules/static-extend/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "node_modules/raw-body/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/react-is": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", + "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", + "dev": true + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, "dependencies": { - "kind-of": "^3.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8.10.0" } }, - "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "dev": true, "dependencies": { - "is-buffer": "^1.1.5" + "resolve": "^1.1.6" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, - "node_modules/static-extend/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "node_modules/redis-commands": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz", + "integrity": "sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==", + "dev": true + }, + "node_modules/redis-errors": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", + "integrity": "sha1-62LSrbFeTq9GEMBK/hUpOEJQq60=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/redis-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", + "integrity": "sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ=", "dev": true, "dependencies": { - "kind-of": "^3.0.2" + "redis-errors": "^1.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "node_modules/reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "dev": true + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "dependencies": { - "is-buffer": "^1.1.5" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "node_modules/regexp-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", + "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==", + "dev": true + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" } }, - "node_modules/stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "node_modules/remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", "dev": true, + "dependencies": { + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/stoppable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", - "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", - "dev": true, - "engines": { - "node": ">=4", - "npm": ">=6" + "node_modules/remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", + "dev": true, + "dependencies": { + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" } }, - "node_modules/stream-exhaust": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", - "dev": true + "node_modules/remove-bom-stream/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", "dev": true }, - "node_modules/streamsearch": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", - "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=", + "node_modules/repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", "dev": true, "engines": { - "node": ">=0.8.0" + "node": ">=0.10.0" } }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" + "engines": { + "node": ">=0.10" } }, - "node_modules/string-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", + "node_modules/replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", "dev": true, "engines": { - "node": ">=0.6.19" + "node": ">= 0.10" } }, - "node_modules/string-length": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.1.tgz", - "integrity": "sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw==", + "node_modules/replace-homedir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", + "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", "dev": true, "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" + "homedir-polyfill": "^1.0.1", + "is-absolute": "^1.0.0", + "remove-trailing-separator": "^1.1.0" }, "engines": { - "node": ">=10" + "node": ">= 0.10" } }, - "node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "node_modules/replacestream": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/replacestream/-/replacestream-4.0.3.tgz", + "integrity": "sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" + "escape-string-regexp": "^1.0.3", + "object-assign": "^4.0.1", + "readable-stream": "^2.0.2" } }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "node_modules/require_optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", + "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "resolve-from": "^2.0.0", + "semver": "^5.1.0" } }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "node_modules/require_optional/node_modules/resolve-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "node_modules/require_optional/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dev": true, "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" }, - "engines": { - "node": ">=4" + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "dependencies": { - "ansi-regex": "^5.0.0" + "resolve-from": "^5.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", "dev": true, + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, "engines": { - "node": ">=6" + "node": ">=4" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "node_modules/resolve-global": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", + "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", "dev": true, + "dependencies": { + "global-dirs": "^0.1.1" + }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/subscriptions-transport-ws": { - "version": "0.9.18", - "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz", - "integrity": "sha512-tztzcBTNoEbuErsVQpTN2xUNN/efAZXyCyL5m3x4t6SKrEiTL2N8SaKWBFWM4u56pL79ULif3zjyeq+oV+nOaA==", + "node_modules/resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", "dev": true, "dependencies": { - "backo2": "^1.0.2", - "eventemitter3": "^3.1.0", - "iterall": "^1.2.1", - "symbol-observable": "^1.0.4", - "ws": "^5.2.0" + "value-or-function": "^3.0.0" }, - "peerDependencies": { - "graphql": ">=0.10.0" + "engines": { + "node": ">= 0.10" } }, - "node_modules/subscriptions-transport-ws/node_modules/ws": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", - "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true + }, + "node_modules/resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", "dev": true, - "dependencies": { - "async-limiter": "~1.0.0" + "engines": { + "node": ">=10" } }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" }, "engines": { "node": ">=8" } }, - "node_modules/supports-hyperlinks": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", - "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==", + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, "engines": { - "node": ">=8" + "node": ">=0.12" } }, - "node_modules/sver-compat": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", - "dev": true, - "dependencies": { - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "node_modules/tar": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", - "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", "dev": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, "engines": { - "node": ">= 10" + "node": ">= 4" } }, - "node_modules/tar/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/tarn": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tarn/-/tarn-3.0.1.tgz", - "integrity": "sha512-6usSlV9KyHsspvwu2duKH+FMUhqJnAh6J5J/4MITl8s94iSUQTLkJggdiewKv4RyARQccnigV48Z+khiuVZDJw==", + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, "engines": { - "node": ">=8.0.0" + "iojs": ">=1.0.0", + "node": ">=0.10.0" } }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" + "glob": "^7.1.3" }, - "engines": { - "node": ">=8" + "bin": { + "rimraf": "bin.js" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "node_modules/run-con": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.2.11.tgz", + "integrity": "sha512-NEMGsUT+cglWkzEr4IFK21P4Jca45HqiAbIIZIBdX5+UZTB24Mb/21iNGgz9xZa8tL6vbW7CXmq7MFN42+VjNQ==", "dev": true, "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" + "deep-extend": "^0.6.0", + "ini": "~3.0.0", + "minimist": "^1.2.6", + "strip-json-comments": "~3.1.1" }, - "engines": { - "node": ">=8" + "bin": { + "run-con": "cli.js" } }, - "node_modules/textextensions": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.6.0.tgz", - "integrity": "sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==", + "node_modules/run-con/node_modules/ini": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz", + "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==", "dev": true, "engines": { - "node": ">=0.8" - }, - "funding": { - "url": "https://bevry.me/fund" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { - "any-promise": "^1.0.0" + "queue-microtask": "^1.2.2" } }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "node_modules/rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", "dev": true, "dependencies": { - "thenify": ">= 3.1.0 < 4" + "tslib": "^1.9.0" }, "engines": { - "node": ">=0.8" + "npm": ">=2.0.0" } }, - "node_modules/throat": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", - "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", + "node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, - "node_modules/through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" - } - }, - "node_modules/through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "dependencies": { - "through2": "~2.0.0", - "xtend": "~4.0.0" + "ret": "~0.1.10" } }, - "node_modules/through2-filter/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", "dev": true, "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/tildify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz", - "integrity": "sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==", - "dev": true, - "engines": { - "node": ">=8" - } + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true }, - "node_modules/time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "node_modules/saslprep": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", "dev": true, + "optional": true, + "dependencies": { + "sparse-bitfield": "^3.0.3" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/tmpl": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", - "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, - "node_modules/to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", - "dev": true, + "node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dependencies": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "engines": { - "node": ">=4" - } + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "node_modules/semver-greatest-satisfied-range": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", + "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", "dev": true, "dependencies": { - "kind-of": "^3.0.2" + "sver-compat": "^1.5.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dependencies": { - "is-buffer": "^1.1.5" + "yallist": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", "dev": true, "dependencies": { - "is-number": "^7.0.0" + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" }, "engines": { - "node": ">=8.0" + "node": ">= 0.8.0" } }, - "node_modules/to-through": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", + "node_modules/send/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", "dev": true, "dependencies": { - "through2": "^2.0.3" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" }, "engines": { - "node": ">= 0.10" - } - }, - "node_modules/to-through/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "node": ">= 0.8.0" } }, - "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true, - "engines": { - "node": ">=0.6" - } + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true }, - "node_modules/tough-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", - "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, "dependencies": { - "ip-regex": "^2.1.0", - "psl": "^1.1.28", - "punycode": "^2.1.1" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/tr46": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", - "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { - "punycode": "^2.1.1" + "is-extendable": "^0.1.0" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/ts-invariant": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz", - "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==", + "node_modules/set-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true, - "dependencies": { - "tslib": "^1.9.3" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/ts-invariant/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", "dev": true }, - "node_modules/ts-jest": { - "version": "26.5.2", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.2.tgz", - "integrity": "sha512-bwyJ2zJieSugf7RB+o8fgkMeoMVMM2KPDE0UklRLuACxjwJsOrZNo6chrcScmK33YavPSwhARffy8dZx5LJdUQ==", + "node_modules/sh-syntax": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/sh-syntax/-/sh-syntax-0.3.7.tgz", + "integrity": "sha512-xIB/uRniZ9urxAuXp1Ouh/BKSI1VK8RSqfwGj7cV57HvGrFo3vHdJfv8Tdp/cVcxJgXQTkmHr5mG5rqJW8r4wQ==", "dev": true, "dependencies": { - "@types/jest": "26.x", - "bs-logger": "0.x", - "buffer-from": "1.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^26.1.0", - "json5": "2.x", - "lodash": "4.x", - "make-error": "1.x", - "mkdirp": "1.x", - "semver": "7.x", - "yargs-parser": "20.x" - }, - "bin": { - "ts-jest": "cli.js" + "tslib": "^2.4.0" }, "engines": { - "node": ">= 10" + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, - "peerDependencies": { - "jest": ">=26 <27", - "typescript": ">=3.8 <5.0" + "funding": { + "url": "https://opencollective.com/unts" } }, - "node_modules/ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, "dependencies": { - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" }, "bin": { - "ts-node": "dist/bin.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "typescript": ">=2.7" + "sha.js": "bin.js" } }, - "node_modules/tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" - }, - "node_modules/tslint": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", - "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", - "deprecated": "TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.", + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.3", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.13.0", - "tsutils": "^2.29.0" - }, - "bin": { - "tslint": "bin/tslint" + "shebang-regex": "^3.0.0" }, "engines": { - "node": ">=4.8.0" - }, - "peerDependencies": { - "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev" + "node": ">=8" } }, - "node_modules/tslint-config-prettier": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz", - "integrity": "sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg==", + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, - "bin": { - "tslint-config-prettier-check": "bin/check.js" - }, "engines": { - "node": ">=4.0.0" + "node": ">=8" } }, - "node_modules/tslint-eslint-rules": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", - "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, "dependencies": { - "doctrine": "0.7.2", - "tslib": "1.9.0", - "tsutils": "^3.0.0" + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" }, - "peerDependencies": { - "tslint": "^5.0.0", - "typescript": "^2.2.0 || ^3.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/tslint-eslint-rules/node_modules/tslib": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", - "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", + "node_modules/sift": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz", + "integrity": "sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g==", + "dev": true + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, - "node_modules/tslint-eslint-rules/node_modules/tsutils": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.20.0.tgz", - "integrity": "sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg==", + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, "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" + "node": ">=8" } }, - "node_modules/tslint/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", "dev": true, "dependencies": { - "color-convert": "^1.9.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/tslint/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/sliced": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", + "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=", + "dev": true + }, + "node_modules/smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, "engines": { - "node": ">=4" + "node": ">= 6.0.0", + "npm": ">= 3.0.0" } }, - "node_modules/tslint/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, "dependencies": { - "color-name": "1.1.3" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/tslint/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/tslint/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/tslint/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/tslint/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "dependencies": { - "minimist": "^1.2.5" + "is-descriptor": "^1.0.0" }, - "bin": { - "mkdirp": "bin/cmd.js" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/tslint/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, - "bin": { - "semver": "bin/semver" + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/tslint/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "is-buffer": "^1.1.5" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/tslint/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "dependencies": { - "tslib": "^1.8.1" + "is-descriptor": "^0.1.0" }, - "peerDependencies": { - "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { - "safe-buffer": "^5.0.1" + "is-extendable": "^0.1.0" }, "engines": { - "node": "*" + "node": ">=0.10.0" } }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true - }, - "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "node_modules/snapdragon/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "dependencies": { - "prelude-ls": "~1.1.2" + "kind-of": "^3.0.2" }, "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "node_modules/snapdragon/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "kind-of": "^3.0.2" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "is-buffer": "^1.1.5" }, "engines": { - "node": ">= 0.6" + "node": ">=0.10.0" } }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "dependencies": { - "is-typedarray": "^1.0.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/typedi": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/typedi/-/typedi-0.10.0.tgz", - "integrity": "sha512-v3UJF8xm68BBj6AF4oQML3ikrfK2c9EmZUyLOfShpJuItAqVBHWP/KtpGinkSsIiP6EZyyb6Z3NXyW9dgS9X1w==", - "dev": true - }, - "node_modules/typeorm": { - "version": "0.2.31", - "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.2.31.tgz", - "integrity": "sha512-dVvCEVHH48DG0QPXAKfo0l6ecQrl3A8ucGP4Yw4myz4YEDMProebTQo8as83uyES+nrwCbu3qdkL4ncC2+qcMA==", + "node_modules/snapdragon/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true, - "dependencies": { - "@sqltools/formatter": "1.2.2", - "app-root-path": "^3.0.0", - "buffer": "^5.5.0", - "chalk": "^4.1.0", - "cli-highlight": "^2.1.10", - "debug": "^4.1.1", - "dotenv": "^8.2.0", - "glob": "^7.1.6", - "js-yaml": "^3.14.0", - "mkdirp": "^1.0.4", - "reflect-metadata": "^0.1.13", - "sha.js": "^2.4.11", - "tslib": "^1.13.0", - "xml2js": "^0.4.23", - "yargonaut": "^1.1.2", - "yargs": "^16.0.3" - }, - "bin": { - "typeorm": "cli.js" - }, - "funding": { - "url": "https://opencollective.com/typeorm" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/typeorm-typedi-extensions": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/typeorm-typedi-extensions/-/typeorm-typedi-extensions-0.4.1.tgz", - "integrity": "sha512-05hWktQ4zuXzTTUO3ao56yOezlvUuZhH2NRS//m0SOGCAJoVlfPTMHcmDaMSQy/lMfAwPWoIyn+sfK7ONzTdXQ==", + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true, - "peerDependencies": { - "typedi": ">=0.10.0", - "typeorm": ">=0.2.30" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/typeorm/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "node_modules/socks": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.5.1.tgz", + "integrity": "sha512-oZCsJJxapULAYJaEYBSzMcz8m3jqgGrHaGhkmU/o/PQfFWYWxkAaA0UMGImb6s6tEXfKi959X6VJjMMQ3P6TTQ==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "ip": "^1.1.5", + "smart-buffer": "^4.1.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">= 10.13.0", + "npm": ">= 3.0.0" } }, - "node_modules/typeorm/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "node_modules/socks-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", + "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4", + "socks": "^2.3.3" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/typeorm/node_modules/debug": { + "node_modules/socks-proxy-agent/node_modules/debug": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", @@ -14090,1523 +15313,2634 @@ } } }, - "node_modules/typeorm/node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/typeorm/node_modules/ms": { + "node_modules/socks-proxy-agent/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/typeorm/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/typeorm/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">= 8" } }, - "node_modules/typeorm/node_modules/y18n": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", - "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, - "node_modules/typeorm/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "dev": true, "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "node_modules/typescript": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.2.tgz", - "integrity": "sha512-tbb+NVrLfnsJy3M59lsDgrzWIflR4d4TIUjz+heUnHZwdF7YsrMTKoRERiIvI2lvBG95dfpLxB21WZhys1bgaQ==", + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, "engines": { - "node": ">=4.2.0" + "node": ">=0.10.0" } }, - "node_modules/unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "node_modules/source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "node_modules/sparkles": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", + "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, - "node_modules/undertaker": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", - "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", + "node_modules/sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", "dev": true, + "optional": true, "dependencies": { - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "bach": "^1.0.0", - "collection-map": "^1.0.0", - "es6-weak-map": "^2.0.1", - "fast-levenshtein": "^1.0.0", - "last-run": "^1.1.0", - "object.defaults": "^1.0.0", - "object.reduce": "^1.0.0", - "undertaker-registry": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" + "memory-pager": "^1.0.2" } }, - "node_modules/undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "dev": true, - "engines": { - "node": ">= 0.10" + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/undertaker/node_modules/fast-levenshtein": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", - "integrity": "sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk=", + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", "dev": true }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/union-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "node_modules/spdx-license-ids": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "dev": true + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, + "dependencies": { + "extend-shallow": "^3.0.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", "dev": true, "dependencies": { - "unique-slug": "^2.0.0" + "readable-stream": "^3.0.0" } }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "node_modules/split2/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "dependencies": { - "imurmurhash": "^0.1.4" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/unique-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", - "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", - "dev": true, - "dependencies": { - "json-stable-stringify-without-jsonify": "^1.0.1", - "through2-filter": "^3.0.0" - } + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "node_modules/sqlstring": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.2.tgz", + "integrity": "sha512-vF4ZbYdKS8OnoJAWBmMxCQDkiEBkGQYU7UZPtL8flbDRSNkhaXvRJ279ZtI6M+zDaQovVU4tuRgzK5fVhvFAhg==", "dev": true, "engines": { - "node": ">= 10.0.0" + "node": ">= 0.6" } }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "node_modules/ssri": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", + "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, "engines": { - "node": ">= 0.8" + "node": ">= 8" } }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", "dev": true, - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": "*" } }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "escape-string-regexp": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/standard-as-callback": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.0.1.tgz", + "integrity": "sha512-NQOxSeB8gOI5WjSaxjBgog2QFw55FV8TkS6Y07BiB3VJ8xNTvUYm0wl0s8ObgQ5NhdpnNfigMIKjgPESzgr4tg==", + "dev": true + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "dependencies": { - "isarray": "1.0.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "node_modules/static-extend/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, "engines": { - "node": ">=4", - "yarn": "*" + "node": ">=0.10.0" } }, - "node_modules/uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { - "punycode": "^2.1.0" + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "dev": true - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "node_modules/static-extend/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/util.promisify": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz", - "integrity": "sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==", + "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "for-each": "^0.3.3", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.1" + "is-buffer": "^1.1.5" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, "engines": { - "node": ">= 0.4.0" + "node": ">=0.10.0" } }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true, - "bin": { - "uuid": "dist/bin/uuid" + "engines": { + "node": ">= 0.6" } }, - "node_modules/v8-to-istanbul": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", - "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", + "node_modules/stoppable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", + "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, "engines": { - "node": ">=10.10.0" + "node": ">=4", + "npm": ">=6" } }, - "node_modules/v8flags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", - "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "node_modules/stream-exhaust": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", + "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", + "dev": true + }, + "node_modules/stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "node_modules/streamsearch": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=", "dev": true, - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, "engines": { - "node": ">= 0.10" + "node": ">=0.8.0" } }, - "node_modules/valid-url": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", - "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=", - "dev": true - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "safe-buffer": "~5.1.0" } }, - "node_modules/validator": { - "version": "13.5.2", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.5.2.tgz", - "integrity": "sha512-mD45p0rvHVBlY2Zuy3F3ESIe1h5X58GPfAtslBjY7EtTqGquZTj+VX/J4RnHWN8FKq0C9WRVt1oWAcytWRuYLQ==", + "node_modules/string-argv": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", + "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", "dev": true, "engines": { - "node": ">= 0.10" + "node": ">=0.6.19" } }, - "node_modules/value-or-function": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, "engines": { - "node": ">= 0.10" + "node": ">=10" } }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, "engines": { - "node": ">= 0.8" + "node": ">=8" } }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", "dev": true, - "engines": [ - "node >=0.6.0" - ], "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/vinyl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", - "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", "dev": true, "dependencies": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, - "engines": { - "node": ">= 0.10" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", "dev": true, "dependencies": { - "fs-mkdirp-stream": "^1.0.0", - "glob-stream": "^6.1.0", - "graceful-fs": "^4.0.0", - "is-valid-glob": "^1.0.0", - "lazystream": "^1.0.0", - "lead": "^1.0.0", - "object.assign": "^4.0.4", - "pumpify": "^1.3.5", - "readable-stream": "^2.3.3", - "remove-bom-buffer": "^3.0.0", - "remove-bom-stream": "^1.2.0", - "resolve-options": "^1.1.0", - "through2": "^2.0.0", - "to-through": "^2.0.0", - "value-or-function": "^3.0.0", - "vinyl": "^2.0.0", - "vinyl-sourcemap": "^1.1.0" + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" }, "engines": { - "node": ">= 0.10" + "node": ">=4" } }, - "node_modules/vinyl-fs/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/vinyl-sourcemap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, - "dependencies": { - "append-buffer": "^1.0.2", - "convert-source-map": "^1.5.0", - "graceful-fs": "^4.1.6", - "normalize-path": "^2.1.1", - "now-and-later": "^2.0.0", - "remove-bom-buffer": "^3.0.0", - "vinyl": "^2.0.0" - }, "engines": { - "node": ">= 0.10" + "node": ">=8" } }, - "node_modules/vinyl-sourcemap/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, - "dependencies": { - "browser-process-hrtime": "^1.0.0" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "node_modules/subscriptions-transport-ws": { + "version": "0.9.18", + "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz", + "integrity": "sha512-tztzcBTNoEbuErsVQpTN2xUNN/efAZXyCyL5m3x4t6SKrEiTL2N8SaKWBFWM4u56pL79ULif3zjyeq+oV+nOaA==", "dev": true, "dependencies": { - "xml-name-validator": "^3.0.0" + "backo2": "^1.0.2", + "eventemitter3": "^3.1.0", + "iterall": "^1.2.1", + "symbol-observable": "^1.0.4", + "ws": "^5.2.0" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "graphql": ">=0.10.0" } }, - "node_modules/walker": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "node_modules/subscriptions-transport-ws/node_modules/ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", "dev": true, "dependencies": { - "makeerror": "1.0.x" + "async-limiter": "~1.0.0" } }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, "engines": { - "node": ">=10.4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "node_modules/sver-compat": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", + "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", "dev": true, "dependencies": { - "iconv-lite": "0.4.24" + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" } }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true + "node_modules/symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/whatwg-url": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz", - "integrity": "sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==", + "node_modules/synckit": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.4.tgz", + "integrity": "sha512-Dn2ZkzMdSX827QbowGbU/4yjWuvNaCoScLLoMo/yKbu+P4GBR6cRGKZH27k6a9bRzdqcyd1DE96pQtQ6uNkmyw==", "dev": true, "dependencies": { - "lodash.sortby": "^4.7.0", - "tr46": "^2.0.2", - "webidl-conversions": "^6.1.0" + "@pkgr/utils": "^2.3.1", + "tslib": "^2.4.0" }, "engines": { - "node": ">=10" + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" } }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", + "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", "dev": true, "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" }, "engines": { - "node": ">= 8" + "node": ">= 10" } }, - "node_modules/which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, - "node_modules/which-pm-runs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", - "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "node_modules/tarn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tarn/-/tarn-3.0.1.tgz", + "integrity": "sha512-6usSlV9KyHsspvwu2duKH+FMUhqJnAh6J5J/4MITl8s94iSUQTLkJggdiewKv4RyARQccnigV48Z+khiuVZDJw==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8.0.0" } }, - "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" }, "engines": { "node": ">=8" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "node_modules/textextensions": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.6.0.tgz", + "integrity": "sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==", "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "engines": { + "node": ">=0.8" + }, + "funding": { + "url": "https://bevry.me/fund" } }, - "node_modules/ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", "dev": true, "dependencies": { - "async-limiter": "~1.0.0" + "any-promise": "^1.0.0" } }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", "dev": true, "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" + "thenify": ">= 3.1.0 < 4" }, "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "dev": true, - "engines": { - "node": ">=4.0" + "node": ">=0.8" } }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, - "node_modules/xss": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.8.tgz", - "integrity": "sha512-3MgPdaXV8rfQ/pNn16Eio6VXYPTkqwa0vc7GkiymmY/DqR1SE/7VPAAVZz1GJsJFrllMYO3RHfEaiUGjab6TNw==", + "node_modules/through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", "dev": true, "dependencies": { - "commander": "^2.20.3", - "cssfilter": "0.0.10" - }, - "bin": { - "xss": "bin/xss" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/xss/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" + "inherits": "^2.0.4", + "readable-stream": "2 || 3" } }, - "node_modules/y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", - "dev": true - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yaml": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", - "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", + "node_modules/through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", "dev": true, - "engines": { - "node": ">= 6" + "dependencies": { + "through2": "~2.0.0", + "xtend": "~4.0.0" } }, - "node_modules/yargonaut": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/yargonaut/-/yargonaut-1.1.4.tgz", - "integrity": "sha512-rHgFmbgXAAzl+1nngqOcwEljqHGG9uUZoPjsdZEs1w5JW9RXYzrSvH/u70C1JE5qFi0qjsdhnUX/dJRpWqitSA==", + "node_modules/through2-filter/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "dependencies": { - "chalk": "^1.1.1", - "figlet": "^1.1.1", - "parent-require": "^1.0.0" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, - "node_modules/yargonaut/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "node_modules/tildify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz", + "integrity": "sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/yargonaut/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "node_modules/time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/yargonaut/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "node_modules/tiny-glob": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", + "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", "dev": true, "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" + "globalyzer": "0.1.0", + "globrex": "^0.1.2" } }, - "node_modules/yargonaut/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", "dev": true, "dependencies": { - "ansi-regex": "^2.0.0" + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/yargonaut/node_modules/supports-color": { + "node_modules/to-fast-properties": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true, "engines": { - "node": ">=0.8.0" + "node": ">=4" } }, - "node_modules/yargs": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.1.tgz", - "integrity": "sha512-huO4Fr1f9PmiJJdll5kwoS2e4GqzGSsMT3PPMpOwoVkOK8ckqAewMTZyA6LXVQWflleb/Z8oPBEvNsMft0XE+g==", + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "dependencies": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "5.0.0-security.0" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.6", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.6.tgz", - "integrity": "sha512-AP1+fQIWSM/sMiET8fyayjx/J+JmTPt2Mr0FkrgqB4todtfa53sOsrSAcIrJRD5XS20bKUwaDIuMkWKCEiQLKA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yargs/node_modules/camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true, + "kind-of": "^3.0.2" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/yargs/node_modules/find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "is-buffer": "^1.1.5" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "dependencies": { - "number-is-nan": "^1.0.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/yargs/node_modules/path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "dependencies": { - "pinkie-promise": "^2.0.0" + "is-number": "^7.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8.0" } }, - "node_modules/yargs/node_modules/path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "node_modules/to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", "dev": true, "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "through2": "^2.0.3" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, - "node_modules/yargs/node_modules/read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "node_modules/to-through/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=0.6" } }, - "node_modules/yargs/node_modules/read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "node_modules/ts-invariant": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz", + "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==", "dev": true, "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "tslib": "^1.9.3" } }, - "node_modules/yargs/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "node_modules/ts-invariant/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/ts-jest": { + "version": "29.0.3", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.0.3.tgz", + "integrity": "sha512-Ibygvmuyq1qp/z3yTh9QTwVVAbFdDy/+4BtIQR2sp6baF2SJU/8CKK/hhnGIDY2L90Az2jIqTwZPnN2p+BweiQ==", "dev": true, "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^29.0.0", + "json5": "^2.2.1", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "7.x", + "yargs-parser": "^21.0.1" + }, + "bin": { + "ts-jest": "cli.js" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } } }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "node_modules/ts-jest/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/ts-node": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", + "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", "dev": true, "dependencies": { - "ansi-regex": "^2.0.0" + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=10.0.0" + }, + "peerDependencies": { + "typescript": ">=2.7" } }, - "node_modules/yargs/node_modules/yargs-parser": { - "version": "5.0.0-security.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0-security.0.tgz", - "integrity": "sha512-T69y4Ps64LNesYxeYGYPvfoMTt/7y1XtfpIslUeK4um+9Hu7hlGoRtaDLvdXb7+/tfq4opVa2HRY5xGip022rQ==", + "node_modules/tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", "dev": true, "dependencies": { - "camelcase": "^3.0.0", - "object.assign": "^4.1.0" + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" } }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "dev": true, - "engines": { - "node": ">=6" + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" } }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/zen-observable": { - "version": "0.8.15", - "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", - "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==", + "node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", "dev": true }, - "node_modules/zen-observable-ts": { - "version": "0.8.21", - "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz", - "integrity": "sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==", + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, - "dependencies": { - "tslib": "^1.9.3", - "zen-observable": "^0.8.0" + "engines": { + "node": ">=4" } }, - "node_modules/zen-observable-ts/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - }, - "dependencies": { - "@apollo/federation": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@apollo/federation/-/federation-0.21.2.tgz", - "integrity": "sha512-ZQ2TcRv7QO/84+SKFQrhppg+s0EcwBfSPT27DcoLYfEj8tsNjbUmsyxiH5CE2NJtG0F8y520nIM8tQ9wUrePsg==", + "node_modules/type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", "dev": true, - "requires": { - "apollo-graphql": "^0.6.0", - "lodash.xorby": "^4.7.0" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@apollo/gateway": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/@apollo/gateway/-/gateway-0.23.2.tgz", - "integrity": "sha512-WGrlAzvBfvWGnwajlUowde2VXdkH5EtqgOLnwdYCB7FVMkLT8B/Qj6ePxK+Kbwonz7lcnEvNaL4rvF2ICGudWg==", + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, - "requires": { - "@apollo/federation": "^0.21.2", - "@apollo/query-planner-wasm": "^0.1.2", - "@types/node-fetch": "2.5.4", - "apollo-graphql": "^0.6.0", - "apollo-reporting-protobuf": "^0.6.0", - "apollo-server-caching": "^0.5.3", - "apollo-server-core": "^2.19.2", - "apollo-server-env": "^3.0.0", - "apollo-server-errors": "^2.4.2", - "apollo-server-types": "^0.6.3", - "loglevel": "^1.6.1", - "make-fetch-happen": "^8.0.0", - "pretty-format": "^26.0.0" + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" } }, - "@apollo/protobufjs": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.0.5.tgz", - "integrity": "sha512-ZtyaBH1icCgqwIGb3zrtopV2D5Q8yxibkJzlaViM08eOhTQc7rACdYu0pfORFfhllvdMZ3aq69vifYHszY4gNA==", + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "@types/node": "^10.1.0", - "long": "^4.0.0" - }, "dependencies": { - "@types/node": { - "version": "10.17.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.54.tgz", - "integrity": "sha512-c8Lm7+hXdSPmWH4B9z/P/xIXhFK3mCQin4yCYMd2p1qpMG5AfgyJuYZ+3q2dT7qLiMMMGMd5dnkFpdqJARlvtQ==", - "dev": true - } + "is-typedarray": "^1.0.0" } }, - "@apollo/query-planner-wasm": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@apollo/query-planner-wasm/-/query-planner-wasm-0.1.2.tgz", - "integrity": "sha512-djHcJXTOEZZec0M8ZhK3rGu/ZEAilgr6mu55X7JIxEJEI7Sq57e4r4Lbsfffx+fVxjDb2BK4mabsPHR4vVnG0Q==", + "node_modules/typedi": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/typedi/-/typedi-0.10.0.tgz", + "integrity": "sha512-v3UJF8xm68BBj6AF4oQML3ikrfK2c9EmZUyLOfShpJuItAqVBHWP/KtpGinkSsIiP6EZyyb6Z3NXyW9dgS9X1w==", "dev": true }, - "@apollographql/apollo-tools": { - "version": "0.4.9", - "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.4.9.tgz", - "integrity": "sha512-M50pk8oo3CGTu4waGOklIX3YtTZoPfWG9K/G9WB8NpyQGA1OwYTiBFv94XqUtKElTDoFwoMXpMQd3Wy5dINvxA==", + "node_modules/typeorm": { + "version": "0.2.31", + "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.2.31.tgz", + "integrity": "sha512-dVvCEVHH48DG0QPXAKfo0l6ecQrl3A8ucGP4Yw4myz4YEDMProebTQo8as83uyES+nrwCbu3qdkL4ncC2+qcMA==", "dev": true, - "requires": { - "apollo-env": "^0.6.6" - } - }, - "@apollographql/graphql-playground-html": { - "version": "1.6.26", - "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.26.tgz", - "integrity": "sha512-XAwXOIab51QyhBxnxySdK3nuMEUohhDsHQ5Rbco/V1vjlP75zZ0ZLHD9dTpXTN8uxKxopb2lUvJTq+M4g2Q0HQ==", - "dev": true, - "requires": { - "xss": "^1.0.6" + "dependencies": { + "@sqltools/formatter": "1.2.2", + "app-root-path": "^3.0.0", + "buffer": "^5.5.0", + "chalk": "^4.1.0", + "cli-highlight": "^2.1.10", + "debug": "^4.1.1", + "dotenv": "^8.2.0", + "glob": "^7.1.6", + "js-yaml": "^3.14.0", + "mkdirp": "^1.0.4", + "reflect-metadata": "^0.1.13", + "sha.js": "^2.4.11", + "tslib": "^1.13.0", + "xml2js": "^0.4.23", + "yargonaut": "^1.1.2", + "yargs": "^16.0.3" + }, + "bin": { + "typeorm": "cli.js" + }, + "funding": { + "url": "https://opencollective.com/typeorm" } }, - "@apollographql/graphql-upload-8-fork": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/@apollographql/graphql-upload-8-fork/-/graphql-upload-8-fork-8.1.3.tgz", - "integrity": "sha512-ssOPUT7euLqDXcdVv3Qs4LoL4BPtfermW1IOouaqEmj36TpHYDmYDIbKoSQxikd9vtMumFnP87OybH7sC9fJ6g==", + "node_modules/typeorm-typedi-extensions": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/typeorm-typedi-extensions/-/typeorm-typedi-extensions-0.4.1.tgz", + "integrity": "sha512-05hWktQ4zuXzTTUO3ao56yOezlvUuZhH2NRS//m0SOGCAJoVlfPTMHcmDaMSQy/lMfAwPWoIyn+sfK7ONzTdXQ==", "dev": true, - "requires": { - "@types/express": "*", - "@types/fs-capacitor": "*", - "@types/koa": "*", - "busboy": "^0.3.1", - "fs-capacitor": "^2.0.4", - "http-errors": "^1.7.3", - "object-path": "^0.11.4" + "peerDependencies": { + "typedi": ">=0.10.0", + "typeorm": ">=0.2.30" } }, - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "node_modules/typeorm/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "@babel/core": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.10.tgz", - "integrity": "sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.10", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.10", - "@babel/types": "^7.12.10", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, + "node_modules/typeorm/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "@babel/generator": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", - "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", + "node_modules/typeorm/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, - "requires": { - "@babel/types": "^7.12.11", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true } } }, - "@babel/helper-function-name": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", - "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", + "node_modules/typeorm/node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/types": "^7.12.11" + "engines": { + "node": "6.* || 8.* || >= 10.*" } }, - "@babel/helper-get-function-arity": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", - "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", - "dev": true, - "requires": { - "@babel/types": "^7.12.10" - } + "node_modules/typeorm/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/typeorm/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true }, - "@babel/helper-member-expression-to-functions": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", - "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", + "node_modules/typeorm/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "requires": { - "@babel/types": "^7.12.7" + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "@babel/helper-module-imports": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", - "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", + "node_modules/typeorm/node_modules/y18n": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", + "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", "dev": true, - "requires": { - "@babel/types": "^7.12.5" + "engines": { + "node": ">=10" } }, - "@babel/helper-module-transforms": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", - "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "node_modules/typeorm/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-simple-access": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/helper-validator-identifier": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", - "lodash": "^4.17.19" - }, "dependencies": { - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - } + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" } }, - "@babel/helper-optimise-call-expression": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz", - "integrity": "sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==", + "node_modules/typescript": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.2.tgz", + "integrity": "sha512-tbb+NVrLfnsJy3M59lsDgrzWIflR4d4TIUjz+heUnHZwdF7YsrMTKoRERiIvI2lvBG95dfpLxB21WZhys1bgaQ==", "dev": true, - "requires": { - "@babel/types": "^7.12.10" + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" } }, - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", "dev": true }, - "@babel/helper-replace-supers": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz", - "integrity": "sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==", + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.7", - "@babel/helper-optimise-call-expression": "^7.12.10", - "@babel/traverse": "^7.12.10", - "@babel/types": "^7.12.11" + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@babel/helper-simple-access": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", - "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", "dev": true, - "requires": { - "@babel/types": "^7.12.1" + "engines": { + "node": ">=0.10.0" } }, - "@babel/helper-split-export-declaration": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", - "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", + "node_modules/undertaker": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", + "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", "dev": true, - "requires": { - "@babel/types": "^7.12.11" + "dependencies": { + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "bach": "^1.0.0", + "collection-map": "^1.0.0", + "es6-weak-map": "^2.0.1", + "fast-levenshtein": "^1.0.0", + "last-run": "^1.1.0", + "object.defaults": "^1.0.0", + "object.reduce": "^1.0.0", + "undertaker-registry": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" } }, - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true - }, - "@babel/helpers": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", - "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", + "node_modules/undertaker-registry": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", + "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", "dev": true, - "requires": { - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.5", - "@babel/types": "^7.12.5" + "engines": { + "node": ">= 0.10" } }, - "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "node_modules/undertaker/node_modules/fast-levenshtein": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", + "integrity": "sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk=", + "dev": true + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "@babel/parser": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", - "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", - "dev": true - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "node_modules/union-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "engines": { + "node": ">=0.10.0" } }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "dependencies": { + "unique-slug": "^2.0.0" } }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", - "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "dependencies": { + "imurmurhash": "^0.1.4" } }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "node_modules/unique-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", + "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "dependencies": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "^3.0.0" } }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "engines": { + "node": ">= 10.0.0" } }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "engines": { + "node": ">= 0.8" } }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "engines": { + "node": ">=0.10.0" } }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", - "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "engines": { + "node": ">=4", + "yarn": "*" } }, - "@babel/template": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", - "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "@babel/traverse": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz", - "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==", + "node_modules/uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", "dev": true, - "requires": { - "@babel/code-frame": "^7.12.11", - "@babel/generator": "^7.12.11", - "@babel/helper-function-name": "^7.12.11", - "@babel/helper-split-export-declaration": "^7.12.11", - "@babel/parser": "^7.12.11", - "@babel/types": "^7.12.12", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - }, "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/util.promisify": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz", + "integrity": "sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "for-each": "^0.3.3", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/valid-url": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", + "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=", + "dev": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validator": { + "version": "13.5.2", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.5.2.tgz", + "integrity": "sha512-mD45p0rvHVBlY2Zuy3F3ESIe1h5X58GPfAtslBjY7EtTqGquZTj+VX/J4RnHWN8FKq0C9WRVt1oWAcytWRuYLQ==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/value-or-function": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vinyl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "dev": true, + "dependencies": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-fs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "dev": true, + "dependencies": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-fs/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", + "dev": true, + "dependencies": { + "append-buffer": "^1.0.2", + "convert-source-map": "^1.5.0", + "graceful-fs": "^4.1.6", + "normalize-path": "^2.1.1", + "now-and-later": "^2.0.0", + "remove-bom-buffer": "^3.0.0", + "vinyl": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-sourcemap/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vscode-languageserver-textdocument": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz", + "integrity": "sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q==", + "dev": true + }, + "node_modules/vscode-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.7.tgz", + "integrity": "sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==", + "dev": true + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xss": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.8.tgz", + "integrity": "sha512-3MgPdaXV8rfQ/pNn16Eio6VXYPTkqwa0vc7GkiymmY/DqR1SE/7VPAAVZz1GJsJFrllMYO3RHfEaiUGjab6TNw==", + "dev": true, + "dependencies": { + "commander": "^2.20.3", + "cssfilter": "0.0.10" + }, + "bin": { + "xss": "bin/xss" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/xss/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", + "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargonaut": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/yargonaut/-/yargonaut-1.1.4.tgz", + "integrity": "sha512-rHgFmbgXAAzl+1nngqOcwEljqHGG9uUZoPjsdZEs1w5JW9RXYzrSvH/u70C1JE5qFi0qjsdhnUX/dJRpWqitSA==", + "dev": true, + "dependencies": { + "chalk": "^1.1.1", + "figlet": "^1.1.1", + "parent-require": "^1.0.0" + } + }, + "node_modules/yargonaut/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargonaut/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargonaut/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargonaut/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargonaut/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/yargs": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.1.tgz", + "integrity": "sha512-huO4Fr1f9PmiJJdll5kwoS2e4GqzGSsMT3PPMpOwoVkOK8ckqAewMTZyA6LXVQWflleb/Z8oPBEvNsMft0XE+g==", + "dev": true, + "dependencies": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "5.0.0-security.0" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.6", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.6.tgz", + "integrity": "sha512-AP1+fQIWSM/sMiET8fyayjx/J+JmTPt2Mr0FkrgqB4todtfa53sOsrSAcIrJRD5XS20bKUwaDIuMkWKCEiQLKA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargs/node_modules/camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargs/node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargs/node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargs/node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargs/node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargs/node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "5.0.0-security.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0-security.0.tgz", + "integrity": "sha512-T69y4Ps64LNesYxeYGYPvfoMTt/7y1XtfpIslUeK4um+9Hu7hlGoRtaDLvdXb7+/tfq4opVa2HRY5xGip022rQ==", + "dev": true, + "dependencies": { + "camelcase": "^3.0.0", + "object.assign": "^4.1.0" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zen-observable": { + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", + "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==", + "dev": true + }, + "node_modules/zen-observable-ts": { + "version": "0.8.21", + "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz", + "integrity": "sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==", + "dev": true, + "dependencies": { + "tslib": "^1.9.3", + "zen-observable": "^0.8.0" + } + }, + "node_modules/zen-observable-ts/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@apollo/federation": { + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/@apollo/federation/-/federation-0.21.2.tgz", + "integrity": "sha512-ZQ2TcRv7QO/84+SKFQrhppg+s0EcwBfSPT27DcoLYfEj8tsNjbUmsyxiH5CE2NJtG0F8y520nIM8tQ9wUrePsg==", + "dev": true, + "requires": { + "apollo-graphql": "^0.6.0", + "lodash.xorby": "^4.7.0" + } + }, + "@apollo/gateway": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/@apollo/gateway/-/gateway-0.23.2.tgz", + "integrity": "sha512-WGrlAzvBfvWGnwajlUowde2VXdkH5EtqgOLnwdYCB7FVMkLT8B/Qj6ePxK+Kbwonz7lcnEvNaL4rvF2ICGudWg==", + "dev": true, + "requires": { + "@apollo/federation": "^0.21.2", + "@apollo/query-planner-wasm": "^0.1.2", + "@types/node-fetch": "2.5.4", + "apollo-graphql": "^0.6.0", + "apollo-reporting-protobuf": "^0.6.0", + "apollo-server-caching": "^0.5.3", + "apollo-server-core": "^2.19.2", + "apollo-server-env": "^3.0.0", + "apollo-server-errors": "^2.4.2", + "apollo-server-types": "^0.6.3", + "loglevel": "^1.6.1", + "make-fetch-happen": "^8.0.0", + "pretty-format": "^26.0.0" + } + }, + "@apollo/protobufjs": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.0.5.tgz", + "integrity": "sha512-ZtyaBH1icCgqwIGb3zrtopV2D5Q8yxibkJzlaViM08eOhTQc7rACdYu0pfORFfhllvdMZ3aq69vifYHszY4gNA==", + "dev": true, + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.0", + "@types/node": "^10.1.0", + "long": "^4.0.0" + }, + "dependencies": { + "@types/node": { + "version": "10.17.54", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.54.tgz", + "integrity": "sha512-c8Lm7+hXdSPmWH4B9z/P/xIXhFK3mCQin4yCYMd2p1qpMG5AfgyJuYZ+3q2dT7qLiMMMGMd5dnkFpdqJARlvtQ==", + "dev": true + } + } + }, + "@apollo/query-planner-wasm": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@apollo/query-planner-wasm/-/query-planner-wasm-0.1.2.tgz", + "integrity": "sha512-djHcJXTOEZZec0M8ZhK3rGu/ZEAilgr6mu55X7JIxEJEI7Sq57e4r4Lbsfffx+fVxjDb2BK4mabsPHR4vVnG0Q==", + "dev": true + }, + "@apollographql/apollo-tools": { + "version": "0.4.9", + "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.4.9.tgz", + "integrity": "sha512-M50pk8oo3CGTu4waGOklIX3YtTZoPfWG9K/G9WB8NpyQGA1OwYTiBFv94XqUtKElTDoFwoMXpMQd3Wy5dINvxA==", + "dev": true, + "requires": { + "apollo-env": "^0.6.6" + } + }, + "@apollographql/graphql-playground-html": { + "version": "1.6.26", + "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.26.tgz", + "integrity": "sha512-XAwXOIab51QyhBxnxySdK3nuMEUohhDsHQ5Rbco/V1vjlP75zZ0ZLHD9dTpXTN8uxKxopb2lUvJTq+M4g2Q0HQ==", + "dev": true, + "requires": { + "xss": "^1.0.6" + } + }, + "@apollographql/graphql-upload-8-fork": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@apollographql/graphql-upload-8-fork/-/graphql-upload-8-fork-8.1.3.tgz", + "integrity": "sha512-ssOPUT7euLqDXcdVv3Qs4LoL4BPtfermW1IOouaqEmj36TpHYDmYDIbKoSQxikd9vtMumFnP87OybH7sC9fJ6g==", + "dev": true, + "requires": { + "@types/express": "*", + "@types/fs-capacitor": "*", + "@types/koa": "*", + "busboy": "^0.3.1", + "fs-capacitor": "^2.0.4", + "http-errors": "^1.7.3", + "object-path": "^0.11.4" + } + }, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz", + "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==", + "dev": true + }, + "@babel/core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz", + "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-module-transforms": "^7.20.2", + "@babel/helpers": "^7.20.5", + "@babel/parser": "^7.20.5", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz", + "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==", + "dev": true, + "requires": { + "@babel/types": "^7.20.5", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@babel/helper-compilation-targets": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.20.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dev": true, + "requires": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-transforms": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", + "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true + }, + "@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dev": true, + "requires": { + "@babel/types": "^7.20.2" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true + }, + "@babel/helpers": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz", + "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==", + "dev": true, + "requires": { + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz", + "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==", + "dev": true + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + } + }, + "@babel/traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz", + "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.5", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.5", + "@babel/types": "^7.20.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { "ms": "2.1.2" } }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -15616,22 +17950,14 @@ } }, "@babel/types": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", - "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", + "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" - }, - "dependencies": { - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - } } }, "@bcoe/v8-coverage": { @@ -15640,14 +17966,410 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, - "@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", - "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", + "@cspell/cspell-bundled-dicts": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-6.17.0.tgz", + "integrity": "sha512-BA5cg2mfESbF3Fm/fIGXgbm0LhD8HKxCCiQDRN9FLaj4c69QUgFpQ9LpzGPZEtNn2Pjl2Jn/BEXX27hgaURG9g==", + "dev": true, + "requires": { + "@cspell/dict-ada": "^4.0.0", + "@cspell/dict-aws": "^3.0.0", + "@cspell/dict-bash": "^4.1.0", + "@cspell/dict-companies": "^3.0.3", + "@cspell/dict-cpp": "^4.0.0", + "@cspell/dict-cryptocurrencies": "^3.0.1", + "@cspell/dict-csharp": "^4.0.2", + "@cspell/dict-css": "^4.0.0", + "@cspell/dict-dart": "^2.0.0", + "@cspell/dict-django": "^4.0.0", + "@cspell/dict-docker": "^1.1.3", + "@cspell/dict-dotnet": "^4.0.0", + "@cspell/dict-elixir": "^4.0.0", + "@cspell/dict-en_us": "^4.1.0", + "@cspell/dict-en-gb": "1.1.33", + "@cspell/dict-filetypes": "^3.0.0", + "@cspell/dict-fonts": "^3.0.0", + "@cspell/dict-fullstack": "^3.0.0", + "@cspell/dict-git": "^2.0.0", + "@cspell/dict-golang": "^5.0.0", + "@cspell/dict-haskell": "^4.0.0", + "@cspell/dict-html": "^4.0.1", + "@cspell/dict-html-symbol-entities": "^4.0.0", + "@cspell/dict-java": "^5.0.2", + "@cspell/dict-latex": "^3.0.0", + "@cspell/dict-lorem-ipsum": "^3.0.0", + "@cspell/dict-lua": "^3.0.0", + "@cspell/dict-node": "^4.0.1", + "@cspell/dict-npm": "^5.0.0", + "@cspell/dict-php": "^3.0.3", + "@cspell/dict-powershell": "^3.0.0", + "@cspell/dict-public-licenses": "^2.0.0", + "@cspell/dict-python": "^4.0.0", + "@cspell/dict-r": "^2.0.0", + "@cspell/dict-ruby": "^3.0.0", + "@cspell/dict-rust": "^3.0.0", + "@cspell/dict-scala": "^3.0.0", + "@cspell/dict-software-terms": "^3.0.5", + "@cspell/dict-sql": "^2.0.0", + "@cspell/dict-svelte": "^1.0.0", + "@cspell/dict-swift": "^2.0.0", + "@cspell/dict-typescript": "^3.0.1", + "@cspell/dict-vue": "^3.0.0" + } + }, + "@cspell/cspell-pipe": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-6.17.0.tgz", + "integrity": "sha512-/VlX1cQtVBK9PFvSsaYVzV59i/2de9wrMSYDk+oGLXQzGBf5+5rPDZMJJ+QQkaexMdxoOXjCYTEXnNkPoVFyFA==", + "dev": true + }, + "@cspell/cspell-service-bus": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-6.17.0.tgz", + "integrity": "sha512-HrzR23aeC/ykSOJvUr+uX6Dv7JLc5meNABLxauiC9jexOXFB3DKmo+DvJFerRDOGz6eYSwM0VXAR62OCHrWK/Q==", + "dev": true + }, + "@cspell/cspell-types": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-6.17.0.tgz", + "integrity": "sha512-4FStDRqZVEP6oYtXqj1wUlF02EC5PN7giJ5f4YPeChwXyQBdZWUPQgEIKn0K9GIgKDMlKRo9tloAHVgtaZ+zOA==", + "dev": true + }, + "@cspell/dict-ada": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-ada/-/dict-ada-4.0.1.tgz", + "integrity": "sha512-/E9o3nHrXOhYmQE43deKbxZcR3MIJAsa+66IzP9TXGHheKEx8b9dVMVVqydDDH8oom1H0U20NRPtu6KRVbT9xw==", + "dev": true + }, + "@cspell/dict-aws": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-aws/-/dict-aws-3.0.0.tgz", + "integrity": "sha512-O1W6nd5y3Z00AMXQMzfiYrIJ1sTd9fB1oLr+xf/UD7b3xeHeMeYE2OtcWbt9uyeHim4tk+vkSTcmYEBKJgS5bQ==", + "dev": true + }, + "@cspell/dict-bash": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-4.1.1.tgz", + "integrity": "sha512-8czAa/Mh96wu2xr0RXQEGMTBUGkTvYn/Pb0o+gqOO1YW+poXGQc3gx0YPqILDryP/KCERrNvkWUJz3iGbvwC2A==", + "dev": true + }, + "@cspell/dict-companies": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.0.4.tgz", + "integrity": "sha512-cO06nle+9dQGrjUOvP/zRAEV0xT3jKM8dHIXWhnd70IcZQnRdka6vxjW+KGaoXk3ABY5uMCymRmuaOZtLd1lFQ==", + "dev": true + }, + "@cspell/dict-cpp": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-4.0.1.tgz", + "integrity": "sha512-mD6mn0XFCqHCz2j6p/7OQm3yNFn1dlQq6vip1pLynvNWDRz5yKYDVRUQCTEORT7ThS0dLpI4BjCX84YUKNhibA==", + "dev": true + }, + "@cspell/dict-cryptocurrencies": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-cryptocurrencies/-/dict-cryptocurrencies-3.0.1.tgz", + "integrity": "sha512-Tdlr0Ahpp5yxtwM0ukC13V6+uYCI0p9fCRGMGZt36rWv8JQZHIuHfehNl7FB/Qc09NCF7p5ep0GXbL+sVTd/+w==", + "dev": true + }, + "@cspell/dict-csharp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-csharp/-/dict-csharp-4.0.2.tgz", + "integrity": "sha512-1JMofhLK+4p4KairF75D3A924m5ERMgd1GvzhwK2geuYgd2ZKuGW72gvXpIV7aGf52E3Uu1kDXxxGAiZ5uVG7g==", + "dev": true + }, + "@cspell/dict-css": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-css/-/dict-css-4.0.1.tgz", + "integrity": "sha512-jxsncdeiN/wkZGqU8iLtn24n3e0Fwugj6T48rjWUItn/i3C9j2W7RXOVqd7ZIeWeV8ibyq0WWiwA8Ajg6XaKpA==", + "dev": true + }, + "@cspell/dict-dart": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-dart/-/dict-dart-2.0.1.tgz", + "integrity": "sha512-YRuDX9k2qPSWDEsM26j8o7KMvaZ0DXc74ijK/VRwaksm1CBRPBW289pe2TE2K7y4SJjTKXgQ9urOVlozeQDpuA==", + "dev": true + }, + "@cspell/dict-django": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-django/-/dict-django-4.0.1.tgz", + "integrity": "sha512-q3l7OH39qzeN2Y64jpY39SEAqki5BUzPTypnhzM40yT+LOGSWqSh9Ix5UecejtXPDVrD8vML+m7Bp5070h52HQ==", + "dev": true + }, + "@cspell/dict-docker": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@cspell/dict-docker/-/dict-docker-1.1.4.tgz", + "integrity": "sha512-DnsDzv3e5aPZ/ciu7weoD85SYErl6ChKtphhyULcsSBFexucAAO54ZWx4fRCEwNv/T29KlZ7P5sh4BnSYokCRQ==", + "dev": true + }, + "@cspell/dict-dotnet": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-dotnet/-/dict-dotnet-4.0.1.tgz", + "integrity": "sha512-l11TqlUX8cDgsE/1Zrea1PqLn63s20MY3jKWMbQVB5DMDPDO2f8Pukckkwxq5p/cxDABEjuGzfF1kTX3pAakBw==", + "dev": true + }, + "@cspell/dict-elixir": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-elixir/-/dict-elixir-4.0.1.tgz", + "integrity": "sha512-IejBqiTTWSXpvBm6yg4qUfnJR0LwbUUCJcK5wXOMKEJitu3yDfrT9GPc6NQJXgokbg9nBjEyxVIzNcLgx2x3/Q==", + "dev": true + }, + "@cspell/dict-en_us": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.1.1.tgz", + "integrity": "sha512-I7pgGfYNSOnyNtDWs89B5jY0lZsSEy4ORwZHzLK55MaOq8YaSs+HyXKQsCX/Ce5ktCV03M3ObB01xE4OKoWPuQ==", + "dev": true + }, + "@cspell/dict-en-gb": { + "version": "1.1.33", + "resolved": "https://registry.npmjs.org/@cspell/dict-en-gb/-/dict-en-gb-1.1.33.tgz", + "integrity": "sha512-tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g==", + "dev": true + }, + "@cspell/dict-filetypes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-filetypes/-/dict-filetypes-3.0.0.tgz", + "integrity": "sha512-Fiyp0z5uWaK0d2TfR9GMUGDKmUMAsOhGD5A0kHoqnNGswL2iw0KB0mFBONEquxU65fEnQv4R+jdM2d9oucujuA==", + "dev": true + }, + "@cspell/dict-fonts": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-fonts/-/dict-fonts-3.0.0.tgz", + "integrity": "sha512-zTZni0AbwBVG1MKA0WpwPyIJPVF+gp6neXDQzHcu4RUnuQ4uDu0PVEuZjGHCJWwwFoR5JmkqZxVSg1y3ufJODA==", + "dev": true + }, + "@cspell/dict-fullstack": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-fullstack/-/dict-fullstack-3.0.0.tgz", + "integrity": "sha512-BMQRTaeReLufjMwgWqqwPdrXQ7jkVGTv7/YvOLsHFZvcAP3eM7WqX+rvdXckLhJmuuzbceFRDKs5F/9Ig2x/tQ==", + "dev": true + }, + "@cspell/dict-git": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-git/-/dict-git-2.0.0.tgz", + "integrity": "sha512-n1AxyX5Kgxij/sZFkxFJlzn3K9y/sCcgVPg/vz4WNJ4K9YeTsUmyGLA2OQI7d10GJeiuAo2AP1iZf2A8j9aj2w==", + "dev": true + }, + "@cspell/dict-golang": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-5.0.1.tgz", + "integrity": "sha512-djsJC7OVKUpFdRm/aqBJEUSGP3kw/MDhAt7udYegnyQt2WjL3ZnVoG7r5eOEhPEEKzWVBYoi6UKSNpdQEodlbg==", + "dev": true + }, + "@cspell/dict-haskell": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-haskell/-/dict-haskell-4.0.1.tgz", + "integrity": "sha512-uRrl65mGrOmwT7NxspB4xKXFUenNC7IikmpRZW8Uzqbqcu7ZRCUfstuVH7T1rmjRgRkjcIjE4PC11luDou4wEQ==", + "dev": true + }, + "@cspell/dict-html": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-html/-/dict-html-4.0.2.tgz", + "integrity": "sha512-BskOE2K3AtGLkcjdJmo+H6/fjdfDP4XYAsEGXpB26rvdnXAnGEstE/Q8Do6UfJCvgOVYCpdUZLcMIEpoTy7QhQ==", + "dev": true + }, + "@cspell/dict-html-symbol-entities": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-html-symbol-entities/-/dict-html-symbol-entities-4.0.0.tgz", + "integrity": "sha512-HGRu+48ErJjoweR5IbcixxETRewrBb0uxQBd6xFGcxbEYCX8CnQFTAmKI5xNaIt2PKaZiJH3ijodGSqbKdsxhw==", + "dev": true + }, + "@cspell/dict-java": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-java/-/dict-java-5.0.3.tgz", + "integrity": "sha512-zQYPZxfso0W4QigsX5zX4lAZZYIrBcnHbrZkHplgmpDwR34GWBg2GypPMkDbli5Oogij/R7o4MaoefBQzcNIPA==", + "dev": true + }, + "@cspell/dict-latex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-latex/-/dict-latex-3.0.0.tgz", + "integrity": "sha512-QsRWj+Jll4ueVbce8ofKa743oQ2exmbVNZN70MaMbmu8PSbjW2+Rj3OdExVStesANMj7qc20inS/TgPr8DrInQ==", + "dev": true + }, + "@cspell/dict-lorem-ipsum": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-lorem-ipsum/-/dict-lorem-ipsum-3.0.0.tgz", + "integrity": "sha512-msEV24qEpzWZs2kcEicqYlhyBpR0amfDkJOs+iffC07si9ftqtQ+yP3lf1VFLpgqw3SQh1M1vtU7RD4sPrNlcQ==", + "dev": true + }, + "@cspell/dict-lua": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-lua/-/dict-lua-3.0.0.tgz", + "integrity": "sha512-WOhSCgS5wMxkGQJ8siB90iTB9ElquJB7FeqYSbJqqs6cUwH8G7MM/CEDPL6h7vCo0+v3GuxQ8yKWDSUcUhz9Lg==", + "dev": true + }, + "@cspell/dict-node": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-node/-/dict-node-4.0.2.tgz", + "integrity": "sha512-FEQJ4TnMcXEFslqBQkXa5HposMoCGsiBv2ux4IZuIXgadXeHKHUHk60iarWpjhzNzQLyN2GD7NoRMd12bK3Llw==", + "dev": true + }, + "@cspell/dict-npm": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.0.1.tgz", + "integrity": "sha512-ynZ37WvOhl9nX4sq1CK6pAKeWkZXgJVv30ndOvnURJk0gtUAIjJ8rns2uHIMMhlsn1lsnaKlNlUuOtkUsd9qLw==", + "dev": true + }, + "@cspell/dict-php": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-3.0.4.tgz", + "integrity": "sha512-QX6zE/ZfnT3O5lSwV8EPVh8Va39ds34gSNNR8I4GWiuDpKcTkZPFi4OLoP3Tlhbl/3G0Ha35OkSDLvZfu8mnkA==", + "dev": true + }, + "@cspell/dict-powershell": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-3.0.0.tgz", + "integrity": "sha512-pkztY9Ak4oc33q+Qxcn9/CTOKo4N8YIRRE6v67WwQOncA5QIJfcOPUrjfR3Z8SpzElXhu3s9qtWWSqbCy6qmcA==", + "dev": true + }, + "@cspell/dict-public-licenses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.1.tgz", + "integrity": "sha512-NZNwzkL5BqKddepDxvX/Qbji378Mso1TdnV4RFAN8hJoo6dSR0fv2TTI/Y0i/YWBmfmQGyTpEztBXtAw4qgjiA==", + "dev": true + }, + "@cspell/dict-python": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.0.1.tgz", + "integrity": "sha512-1wtUgyaTqRiQY0/fryk0oW22lcxNUnZ5DwteTzfatMdbgR0OHXTlHbI8vYxpHLWalSoch7EpLsnaymG+fOrt8g==", + "dev": true + }, + "@cspell/dict-r": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-r/-/dict-r-2.0.1.tgz", + "integrity": "sha512-KCmKaeYMLm2Ip79mlYPc8p+B2uzwBp4KMkzeLd5E6jUlCL93Y5Nvq68wV5fRLDRTf7N1LvofkVFWfDcednFOgA==", + "dev": true + }, + "@cspell/dict-ruby": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-ruby/-/dict-ruby-3.0.0.tgz", + "integrity": "sha512-sA98T8Y1Pmq3RStVkO14E8vTWkq6JUn8c8PldiMyYgV0yfQgwhQfFAzlSfF3Gg2B0VkIdqt2et2SPN7f9wp7fQ==", + "dev": true + }, + "@cspell/dict-rust": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-3.0.0.tgz", + "integrity": "sha512-L1T1IBsYJZVDmfOGAbVLcpc6arWxRRCSJYvHSwEDBGrNuMyJ4jx/NvBEz5crcKf4vVKgwVlXgzQlJJZ8AVxU9w==", + "dev": true + }, + "@cspell/dict-scala": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-scala/-/dict-scala-3.0.0.tgz", + "integrity": "sha512-sIiCQDIMMnNns/fzD61z5npbh5pypaKq07Orqe0+eRfdQpika8iRSGUGFHVbtdd1JzB1DyTCV2e8OwdaQiXqJQ==", + "dev": true + }, + "@cspell/dict-software-terms": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.0.6.tgz", + "integrity": "sha512-Zf7RrgLtdwDgQqHjS2OaL88haYZ2sBEBZX4ARmLTpJkS4lHM0nKRsPf7QKi9/AhrH1CGjOwgyx9Q/aVC/MdggA==", + "dev": true + }, + "@cspell/dict-sql": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-sql/-/dict-sql-2.0.1.tgz", + "integrity": "sha512-7fvVcvy751cl31KMD5j04yMGq2UKj018/1hx3FNtdUI9UuUTMvhBrTAqHEEemR3ZeIC9i/5p5SQjwQ13bn04qw==", + "dev": true + }, + "@cspell/dict-svelte": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-svelte/-/dict-svelte-1.0.1.tgz", + "integrity": "sha512-CYnEftTY2cFAy+Ag8AN+OxUtqhyhPfT7yX6Cxf701RSzLCllWDHZ4wlCii+uYqkscZUZp1Ko2QY+t3SyOqlG0g==", + "dev": true + }, + "@cspell/dict-swift": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-swift/-/dict-swift-2.0.1.tgz", + "integrity": "sha512-gxrCMUOndOk7xZFmXNtkCEeroZRnS2VbeaIPiymGRHj5H+qfTAzAKxtv7jJbVA3YYvEzWcVE2oKDP4wcbhIERw==", + "dev": true + }, + "@cspell/dict-typescript": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-3.0.2.tgz", + "integrity": "sha512-+xg/Lan+ObJbmGXuAN1RI84eUy+P6ZzFrWO1JoaU9zHXs62IHetkAGrUXfc+rM3m4O6lpMKawHjokFWqkFa4Vw==", + "dev": true + }, + "@cspell/dict-vue": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-vue/-/dict-vue-3.0.0.tgz", + "integrity": "sha512-niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A==", + "dev": true + }, + "@cspell/eslint-plugin": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/@cspell/eslint-plugin/-/eslint-plugin-6.17.0.tgz", + "integrity": "sha512-wftqhuSolXaJ6SSNH5aYGkdJRrZzcJArwwYU7ueYg2NJMuwAXLEQiEzorYMvIjZCdh/T3/DgweGZoxcUu1y+3A==", "dev": true, "requires": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" + "cspell-lib": "6.17.0" + } + }, + "@cspell/strong-weak-map": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-6.17.0.tgz", + "integrity": "sha512-fRghm6eoUEH7Uz57t0SEKJNm4lqODF2/DRiLd2ek7QkzUHKrCetre/5UrvdE78GIUyl0+8GLx9iFwo/XFa6dDA==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.0.tgz", + "integrity": "sha512-7yfvXy6MWLgWSFsLhz5yH3iQ52St8cdUY6FoGieKkRDVxuxmrNuUetIuu6cmjNWwniUHiWXjxCr5tTXDrbYS5A==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "globals": { + "version": "13.19.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", + "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } } }, "@graphql-modules/core": { @@ -15819,6 +18541,46 @@ "@hapi/hoek": "^9.0.0" } }, + "@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -15841,29 +18603,29 @@ } }, "@istanbuljs/schema": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", - "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true }, "@jest/console": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", - "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.3.1.tgz", + "integrity": "sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==", "dev": true, "requires": { - "@jest/types": "^26.6.2", + "@jest/types": "^29.3.1", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^26.6.2", - "jest-util": "^26.6.2", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", "slash": "^3.0.0" }, "dependencies": { "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -15873,236 +18635,285 @@ } }, "@jest/core": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", - "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.3.1.tgz", + "integrity": "sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==", "dev": true, "requires": { - "@jest/console": "^26.6.2", - "@jest/reporters": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/console": "^29.3.1", + "@jest/reporters": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", + "ci-info": "^3.2.0", "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^26.6.2", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-resolve-dependencies": "^26.6.3", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "jest-watcher": "^26.6.2", - "micromatch": "^4.0.2", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.2.0", + "jest-config": "^29.3.1", + "jest-haste-map": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-regex-util": "^29.2.0", + "jest-resolve": "^29.3.1", + "jest-resolve-dependencies": "^29.3.1", + "jest-runner": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "jest-watcher": "^29.3.1", + "micromatch": "^4.0.4", + "pretty-format": "^29.3.1", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, "dependencies": { "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "dev": true, + "requires": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true } } }, "@jest/environment": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", - "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.3.1.tgz", + "integrity": "sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==", "dev": true, "requires": { - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/fake-timers": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", - "jest-mock": "^26.6.2" + "jest-mock": "^29.3.1" + } + }, + "@jest/expect": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.3.1.tgz", + "integrity": "sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==", + "dev": true, + "requires": { + "expect": "^29.3.1", + "jest-snapshot": "^29.3.1" + } + }, + "@jest/expect-utils": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.3.1.tgz", + "integrity": "sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==", + "dev": true, + "requires": { + "jest-get-type": "^29.2.0" } }, "@jest/fake-timers": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", - "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.3.1.tgz", + "integrity": "sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==", "dev": true, "requires": { - "@jest/types": "^26.6.2", - "@sinonjs/fake-timers": "^6.0.1", + "@jest/types": "^29.3.1", + "@sinonjs/fake-timers": "^9.1.2", "@types/node": "*", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" + "jest-message-util": "^29.3.1", + "jest-mock": "^29.3.1", + "jest-util": "^29.3.1" } }, "@jest/globals": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", - "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.3.1.tgz", + "integrity": "sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==", "dev": true, "requires": { - "@jest/environment": "^26.6.2", - "@jest/types": "^26.6.2", - "expect": "^26.6.2" + "@jest/environment": "^29.3.1", + "@jest/expect": "^29.3.1", + "@jest/types": "^29.3.1", + "jest-mock": "^29.3.1" } }, "@jest/reporters": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", - "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.3.1.tgz", + "integrity": "sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/console": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@jridgewell/trace-mapping": "^0.3.15", + "@types/node": "*", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", + "istanbul-lib-instrument": "^5.1.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "node-notifier": "^8.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", + "jest-worker": "^29.3.1", "slash": "^3.0.0", - "source-map": "^0.6.0", "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^7.0.0" + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" }, "dependencies": { "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, "@jest/source-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", - "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.2.0.tgz", + "integrity": "sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ==", "dev": true, "requires": { + "@jridgewell/trace-mapping": "^0.3.15", "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "graceful-fs": "^4.2.9" } }, "@jest/test-result": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", - "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.3.1.tgz", + "integrity": "sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==", "dev": true, "requires": { - "@jest/console": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/console": "^29.3.1", + "@jest/types": "^29.3.1", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/test-sequencer": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", - "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz", + "integrity": "sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==", "dev": true, "requires": { - "@jest/test-result": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3" + "@jest/test-result": "^29.3.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.3.1", + "slash": "^3.0.0" } }, "@jest/transform": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", - "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.3.1.tgz", + "integrity": "sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==", "dev": true, "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^26.6.2", - "babel-plugin-istanbul": "^6.0.0", + "@babel/core": "^7.11.6", + "@jest/types": "^29.3.1", + "@jridgewell/trace-mapping": "^0.3.15", + "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-util": "^26.6.2", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.3.1", + "jest-regex-util": "^29.2.0", + "jest-util": "^29.3.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" + "write-file-atomic": "^4.0.1" }, "dependencies": { "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true + }, + "write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } } } }, "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", "dev": true, "requires": { + "@jest/schemas": "^29.0.0", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", - "@types/yargs": "^15.0.0", + "@types/yargs": "^17.0.8", "chalk": "^4.0.0" }, "dependencies": { @@ -16118,6 +18929,74 @@ } } }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@microsoft/tsdoc": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.14.2.tgz", + "integrity": "sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==", + "dev": true + }, + "@microsoft/tsdoc-config": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.16.2.tgz", + "integrity": "sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==", + "dev": true, + "requires": { + "@microsoft/tsdoc": "0.14.2", + "ajv": "~6.12.6", + "jju": "~1.4.0", + "resolve": "~1.19.0" + }, + "dependencies": { + "resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dev": true, + "requires": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + } + } + } + }, "@mikro-orm/core": { "version": "4.4.4", "resolved": "https://registry.npmjs.org/@mikro-orm/core/-/core-4.4.4.tgz", @@ -16155,28 +19034,28 @@ } }, "@nodelib/fs.scandir": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", - "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "requires": { - "@nodelib/fs.stat": "2.0.4", + "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "@nodelib/fs.stat": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", - "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true }, "@nodelib/fs.walk": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", - "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "requires": { - "@nodelib/fs.scandir": "2.1.4", + "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, @@ -16189,6 +19068,31 @@ "mkdirp": "^1.0.4" } }, + "@pkgr/utils": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.3.1.tgz", + "integrity": "sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "is-glob": "^4.0.3", + "open": "^8.4.0", + "picocolors": "^1.0.0", + "tiny-glob": "^0.2.9", + "tslib": "^2.4.0" + }, + "dependencies": { + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + } + } + }, "@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", @@ -16274,19 +19178,25 @@ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", "dev": true }, + "@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", + "dev": true + }, "@sinonjs/commons": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", - "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dev": true, "requires": { "type-detect": "4.0.8" } }, "@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", "dev": true, "requires": { "@sinonjs/commons": "^1.7.0" @@ -16335,9 +19245,9 @@ } }, "@types/babel__core": { - "version": "7.1.12", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz", - "integrity": "sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ==", + "version": "7.1.20", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", + "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", "dev": true, "requires": { "@babel/parser": "^7.1.0", @@ -16348,18 +19258,18 @@ } }, "@types/babel__generator": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz", - "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==", + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", "dev": true, "requires": { "@babel/types": "^7.0.0" } }, "@types/babel__template": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz", - "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==", + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", "dev": true, "requires": { "@babel/parser": "^7.1.0", @@ -16367,9 +19277,9 @@ } }, "@types/babel__traverse": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz", - "integrity": "sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", + "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", "dev": true, "requires": { "@babel/types": "^7.3.0" @@ -16494,9 +19404,9 @@ } }, "@types/graceful-fs": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.4.tgz", - "integrity": "sha512-mWA/4zFQhfvOA8zWkXobwJvBD7vzcxgrOQ0J5CH1votGqdq9m7+FwtGaqyCZqC3NyyBkc9z4m+iry4LlqcMWJg==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", "dev": true, "requires": { "@types/node": "*" @@ -16568,15 +19478,52 @@ } }, "@types/jest": { - "version": "26.0.20", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.20.tgz", - "integrity": "sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA==", + "version": "29.2.4", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.2.4.tgz", + "integrity": "sha512-PipFB04k2qTRPePduVLTRiPzQfvMeLwUN3Z21hsAKaB/W9IIzgB2pizCL466ftJlcyZqnHoC9ZHpxLGl3fS86A==", "dev": true, "requires": { - "jest-diff": "^26.0.0", - "pretty-format": "^26.0.0" + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "dev": true, + "requires": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + } } }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, "@types/keygrip": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", @@ -16668,12 +19615,6 @@ "@types/node": "*" } }, - "@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", - "dev": true - }, "@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", @@ -16681,9 +19622,9 @@ "dev": true }, "@types/prettier": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.6.tgz", - "integrity": "sha512-6gOkRe7OIioWAXfnO/2lFiv+SJichKVSys1mSsgyrYHSEjk8Ctv4tSR/Odvnu+HWlH2C8j53dahU03XmQdd5fA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", "dev": true }, "@types/qs": { @@ -16709,9 +19650,9 @@ } }, "@types/semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-+nVsLKlcUCeMzD2ufHEYuJ9a2ovstb6Dp52A5VsoKxDXgvE051XgHI/33I1EymwkRGQkwnA0LkhnUzituGs4EQ==" + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==" }, "@types/serve-static": { "version": "1.13.9", @@ -16724,9 +19665,9 @@ } }, "@types/stack-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz", - "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, "@types/undertaker": { @@ -16783,20 +19724,254 @@ } }, "@types/yargs": { - "version": "15.0.12", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.12.tgz", - "integrity": "sha512-f+fD/fQAo3BCbCDlrUpznF1A5Zp9rB0noS5vnoormHSIPFKL0Z2DcUJ3Gxp5ytH4uLRNxy7AwYUC9exZzqGMAw==", + "version": "17.0.17", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.17.tgz", + "integrity": "sha512-72bWxFKTK6uwWJAVT+3rF6Jo6RTojiJ27FQo8Rf60AL+VZbzoVPnMFhKsUnbjR8A3BTCYQ7Mv3hnl8T0A+CX9g==", "dev": true, "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.46.1.tgz", + "integrity": "sha512-YpzNv3aayRBwjs4J3oz65eVLXc9xx0PDbIRisHj+dYhvBn02MjYOD96P8YGiWEIFBrojaUjxvkaUpakD82phsA==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.46.1", + "@typescript-eslint/type-utils": "5.46.1", + "@typescript-eslint/utils": "5.46.1", + "debug": "^4.3.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + } + } + }, + "@typescript-eslint/parser": { + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.46.1.tgz", + "integrity": "sha512-RelQ5cGypPh4ySAtfIMBzBGyrNerQcmfA1oJvPj5f+H4jI59rl9xxpn4bonC0tQvUKOEN7eGBFWxFLK3Xepneg==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.46.1", + "@typescript-eslint/types": "5.46.1", + "@typescript-eslint/typescript-estree": "5.46.1", + "debug": "^4.3.4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.46.1.tgz", + "integrity": "sha512-iOChVivo4jpwUdrJZyXSMrEIM/PvsbbDOX1y3UCKjSgWn+W89skxWaYXACQfxmIGhPVpRWK/VWPYc+bad6smIA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.46.1", + "@typescript-eslint/visitor-keys": "5.46.1" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.46.1.tgz", + "integrity": "sha512-V/zMyfI+jDmL1ADxfDxjZ0EMbtiVqj8LUGPAGyBkXXStWmCUErMpW873zEHsyguWCuq2iN4BrlWUkmuVj84yng==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "5.46.1", + "@typescript-eslint/utils": "5.46.1", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + } + } + }, + "@typescript-eslint/types": { + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.46.1.tgz", + "integrity": "sha512-Z5pvlCaZgU+93ryiYUwGwLl9AQVB/PQ1TsJ9NZ/gHzZjN7g9IAn6RSDkpCV8hqTwAiaj6fmCcKSQeBPlIpW28w==", "dev": true }, + "@typescript-eslint/typescript-estree": { + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.46.1.tgz", + "integrity": "sha512-j9W4t67QiNp90kh5Nbr1w92wzt+toiIsaVPnEblB2Ih2U9fqBTyqV9T3pYWZBRt6QoMh/zVWP59EpuCjc4VRBg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.46.1", + "@typescript-eslint/visitor-keys": "5.46.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + } + } + }, + "@typescript-eslint/utils": { + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.46.1.tgz", + "integrity": "sha512-RBdBAGv3oEpFojaCYT4Ghn4775pdjvwfDOfQ2P6qzNVgQOVrnSPe5/Pb88kv7xzYQjoio0eKHKB9GJ16ieSxvA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.46.1", + "@typescript-eslint/types": "5.46.1", + "@typescript-eslint/typescript-estree": "5.46.1", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.46.1.tgz", + "integrity": "sha512-jczZ9noovXwy59KjRTk1OftT78pwygdcmCuBf8yMoWt/8O8l+6x2LSEze0E4TeepXK4MezW3zGSyoDRZK7Y9cg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.46.1", + "eslint-visitor-keys": "^3.3.0" + } + }, "@wry/equality": { "version": "0.1.11", "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz", @@ -16814,12 +19989,6 @@ } } }, - "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -16834,23 +20003,15 @@ "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } + "peer": true }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} }, "agent-base": { "version": "6.0.2", @@ -16961,9 +20122,9 @@ } }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "ansi-styles": { @@ -17357,6 +20518,19 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", "dev": true }, + "array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + } + }, "array-initial": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", @@ -17409,6 +20583,12 @@ "kind-of": "^5.0.2" } }, + "array-timsort": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", + "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", + "dev": true + }, "array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -17421,21 +20601,18 @@ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", "dev": true, "requires": { - "safer-buffer": "~2.1.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" } }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", @@ -17514,38 +20691,25 @@ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, "babel-jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", - "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.3.1.tgz", + "integrity": "sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==", "dev": true, "requires": { - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/babel__core": "^7.1.7", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^26.6.2", + "@jest/transform": "^29.3.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.2.0", "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", + "graceful-fs": "^4.2.9", "slash": "^3.0.0" }, "dependencies": { "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -17555,27 +20719,27 @@ } }, "babel-plugin-istanbul": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", - "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-instrument": "^5.0.4", "test-exclude": "^6.0.0" } }, "babel-plugin-jest-hoist": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", - "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz", + "integrity": "sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA==", "dev": true, "requires": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", + "@types/babel__core": "^7.1.14", "@types/babel__traverse": "^7.0.6" } }, @@ -17600,12 +20764,12 @@ } }, "babel-preset-jest": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", - "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz", + "integrity": "sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA==", "dev": true, "requires": { - "babel-plugin-jest-hoist": "^26.6.2", + "babel-plugin-jest-hoist": "^29.2.0", "babel-preset-current-node-syntax": "^1.0.0" } }, @@ -17669,15 +20833,6 @@ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -17773,11 +20928,17 @@ "fill-range": "^7.0.1" } }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true + "browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + } }, "bs-logger": { "version": "0.2.6", @@ -17831,12 +20992,6 @@ "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", "dev": true }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, "busboy": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", @@ -17933,19 +21088,10 @@ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, - "capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", - "dev": true, - "requires": { - "rsvp": "^4.8.4" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "caniuse-lite": { + "version": "1.0.30001439", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001439.tgz", + "integrity": "sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A==", "dev": true }, "chalk": { @@ -17987,15 +21133,15 @@ "dev": true }, "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz", + "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==", "dev": true }, "cjs-module-lexer": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", - "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", "dev": true }, "class-utils": { @@ -18089,6 +21235,33 @@ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true }, + "clear-module": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/clear-module/-/clear-module-4.1.2.tgz", + "integrity": "sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw==", + "dev": true, + "requires": { + "parent-module": "^2.0.0", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "parent-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-2.0.0.tgz", + "integrity": "sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==", + "dev": true, + "requires": { + "callsites": "^3.1.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, "cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -18279,7 +21452,7 @@ "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true }, "code-point-at": { @@ -18357,11 +21530,26 @@ "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", "dev": true }, - "compare-versions": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", - "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", - "dev": true + "comment-json": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", + "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", + "dev": true, + "requires": { + "array-timsort": "^1.0.3", + "core-util-is": "^1.0.3", + "esprima": "^4.0.1", + "has-own-prop": "^2.0.0", + "repeat-string": "^1.6.1" + }, + "dependencies": { + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + } + } }, "component-emitter": { "version": "1.3.0", @@ -18386,6 +21574,26 @@ "typedarray": "^0.0.6" } }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + } + }, + "confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true + }, "content-disposition": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", @@ -18499,35 +21707,345 @@ "which": "^2.0.1" } }, - "cssfilter": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", - "integrity": "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4=", - "dev": true + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true + }, + "cspell": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/cspell/-/cspell-6.17.0.tgz", + "integrity": "sha512-R1TXu1p2vON6rHXxZAUPbdf+v+ckPhWiEb3apq2PyxLSjzMiZDm2ThIwRcsQaMLLZyFOD+J3SHj0lZi1Qoaa8w==", + "dev": true, + "requires": { + "@cspell/cspell-pipe": "6.17.0", + "chalk": "^4.1.2", + "commander": "^9.4.1", + "cspell-gitignore": "6.17.0", + "cspell-glob": "6.17.0", + "cspell-lib": "6.17.0", + "fast-json-stable-stringify": "^2.1.0", + "file-entry-cache": "^6.0.1", + "fs-extra": "^10.1.0", + "get-stdin": "^8.0.0", + "glob": "^8.0.3", + "imurmurhash": "^0.1.4", + "semver": "^7.3.8", + "strip-ansi": "^6.0.1", + "vscode-uri": "^3.0.6" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "commander": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", + "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", + "dev": true + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "minimatch": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", + "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true + "cspell-dictionary": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-6.17.0.tgz", + "integrity": "sha512-jUb/kIR2glYliRem11kCu7gaXUcHKp8L2G73LmzIULx+UKRgTa/100FXqm5lZUWnCaIznMmaA2QtutP+xYy5AQ==", + "dev": true, + "requires": { + "@cspell/cspell-pipe": "6.17.0", + "@cspell/cspell-types": "6.17.0", + "cspell-trie-lib": "6.17.0", + "fast-equals": "^4.0.3", + "gensequence": "^4.0.2" + } + }, + "cspell-gitignore": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-6.17.0.tgz", + "integrity": "sha512-SDyPv6LqBebvoTKFP+ewh51gvmv1z8JDg7llumUFH2u1WoiMZBLLOL2pAa9UM0f6eEzBC1iS6nWQ+20VJx2yQA==", + "dev": true, + "requires": { + "cspell-glob": "6.17.0", + "find-up": "^5.0.0" + }, + "dependencies": { + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + } + } + }, + "cspell-glob": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-6.17.0.tgz", + "integrity": "sha512-iKz2CvUU1HXuNJfxYRwSQFck3pCl9EhTx2qIR0lKf4gccCR89p44qxIR98nTbX1OF89lhfH6sUHtzkJ3nPWh+A==", + "dev": true, + "requires": { + "micromatch": "^4.0.5" + } + }, + "cspell-grammar": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-6.17.0.tgz", + "integrity": "sha512-3B9QmKWOjAPzLYqesLP2niIbo6Yvb4rodjIwFXUvL3vmMZF4c9HFU/JVTTerLxrwh3DH8u6Mac52RzUurOJ15Q==", + "dev": true, + "requires": { + "@cspell/cspell-pipe": "6.17.0", + "@cspell/cspell-types": "6.17.0" + } + }, + "cspell-io": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-6.17.0.tgz", + "integrity": "sha512-cofZlvKzXP3QytGM6OlREQIXLFcSdEKOFubSVHkRvAVX3IqeQnKo4oVF85C6McjwXTrJ1OH+SDP0vcpn6mKqTg==", + "dev": true, + "requires": { + "@cspell/cspell-service-bus": "6.17.0", + "node-fetch": "^2.6.7" + }, + "dependencies": { + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + } + } + }, + "cspell-lib": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-6.17.0.tgz", + "integrity": "sha512-oZNkm0UhRa4nkoYPij23z7cbVXFPVHs7SdGC6IAVc71uz44nLNeC3e8+UnTErOU7nlROvjp9k3G90DEwej1TqQ==", + "dev": true, + "requires": { + "@cspell/cspell-bundled-dicts": "6.17.0", + "@cspell/cspell-pipe": "6.17.0", + "@cspell/cspell-types": "6.17.0", + "@cspell/strong-weak-map": "6.17.0", + "clear-module": "^4.1.2", + "comment-json": "^4.2.3", + "configstore": "^5.0.1", + "cosmiconfig": "^8.0.0", + "cspell-dictionary": "6.17.0", + "cspell-glob": "6.17.0", + "cspell-grammar": "6.17.0", + "cspell-io": "6.17.0", + "cspell-trie-lib": "6.17.0", + "fast-equals": "^4.0.3", + "find-up": "^5.0.0", + "fs-extra": "^10.1.0", + "gensequence": "^4.0.2", + "import-fresh": "^3.3.0", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0", + "vscode-languageserver-textdocument": "^1.0.7", + "vscode-uri": "^3.0.6" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "cosmiconfig": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", + "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", + "dev": true, + "requires": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "cspell-trie-lib": { + "version": "6.17.0", + "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-6.17.0.tgz", + "integrity": "sha512-hmyZHhemWYLjjEDItAhgAF0tuL2iiQg+5PzUmELKIBSWEsmFdfxh1xWCmo1q0+vzVML+0Ms2cspiGyS9y/CF7A==", "dev": true, "requires": { - "cssom": "~0.3.6" + "@cspell/cspell-pipe": "6.17.0", + "@cspell/cspell-types": "6.17.0", + "fs-extra": "^10.1.0", + "gensequence": "^4.0.2" }, "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } } } }, + "cssfilter": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", + "integrity": "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4=", + "dev": true + }, "d": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", @@ -18538,26 +22056,6 @@ "type": "^1.0.1" } }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - } - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -18573,12 +22071,6 @@ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, - "decimal.js": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", - "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==", - "dev": true - }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", @@ -18591,6 +22083,12 @@ "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", "dev": true }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", @@ -18618,13 +22116,20 @@ "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", "dev": true }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true + }, "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dev": true, "requires": { - "object-keys": "^1.0.12" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" } }, "define-property": { @@ -18711,9 +22216,9 @@ "dev": true }, "diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.3.1.tgz", + "integrity": "sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==", "dev": true }, "dir-glob": { @@ -18725,305 +22230,815 @@ "path-type": "^4.0.0" } }, - "doctrine": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz", - "integrity": "sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM=", + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + }, + "dependencies": { + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + } + } + }, + "dotenv": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", + "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==", + "dev": true + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "each-props": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", + "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.1", + "object.defaults": "^1.1.0" + } + }, + "editions": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.4.tgz", + "integrity": "sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg==", + "dev": true + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "dev": true + }, + "emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "requires": { + "iconv-lite": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "dev": true + }, + "err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.20.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.5.tgz", + "integrity": "sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "unbox-primitive": "^1.0.2" + } + }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escaya": { + "version": "0.0.61", + "resolved": "https://registry.npmjs.org/escaya/-/escaya-0.0.61.tgz", + "integrity": "sha512-WLLmvdG72Z0pCq8XUBd03GEJlAiMceXFanjdQeEzeSiuV1ZgrJqbkU7ZEe/hu0OsBlg5wLlySEeOvfzcGoO8mg==", + "dev": true + }, + "eslint": { + "version": "8.30.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.30.0.tgz", + "integrity": "sha512-MGADB39QqYuzEGov+F/qb18r4i7DohCDOfatHaxI2iGlPuC65bwG2gxgO+7DkyL38dRFaRH7RaRAgU6JKL9rMQ==", "dev": true, "requires": { - "esutils": "^1.1.6", - "isarray": "0.0.1" + "@eslint/eslintrc": "^1.4.0", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" }, "dependencies": { - "esutils": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz", - "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=", + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.19.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", + "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "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" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true } } }, - "domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", "dev": true, "requires": { - "webidl-conversions": "^5.0.0" + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" }, "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, - "dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==", - "dev": true - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "eslint-config-airbnb-typescript": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-17.0.0.tgz", + "integrity": "sha512-elNiuzD0kPAPTXjFWg+lE24nMdHMtuxgYoD30OyMD6yrW1AhFZPAg27VX7d3tzOErw+dgJTNWfRSDqEcXb4V0g==", "dev": true, "requires": { - "is-plain-object": "^2.0.1", - "object.defaults": "^1.1.0" + "eslint-config-airbnb-base": "^15.0.0" } }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "editions": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.4.tgz", - "integrity": "sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg==", - "dev": true - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "emittery": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", - "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true + "requires": {} }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", "dev": true, - "optional": true, "requires": { - "iconv-lite": "^0.6.2" + "debug": "^3.2.7", + "resolve": "^1.20.0" }, "dependencies": { - "iconv-lite": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "optional": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true } } }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "eslint-import-resolver-typescript": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.2.tgz", + "integrity": "sha512-zX4ebnnyXiykjhcBvKIf5TNvt8K7yX6bllTRZ14MiurKPjDpCAZujlszTdB8pcNXhZcOf+god4s9SjQa5GnytQ==", "dev": true, "requires": { - "ansi-colors": "^4.1.1" + "debug": "^4.3.4", + "enhanced-resolve": "^5.10.0", + "get-tsconfig": "^4.2.0", + "globby": "^13.1.2", + "is-core-module": "^2.10.0", + "is-glob": "^4.0.3", + "synckit": "^0.8.4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "globby": { + "version": "13.1.3", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.3.tgz", + "integrity": "sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==", + "dev": true, + "requires": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + } + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true + } } }, - "err-code": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "eslint-module-utils": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } } }, - "es-abstract": { - "version": "1.18.0-next.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", - "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", + "eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2", + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.1", - "object-inspect": "^1.9.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.3", - "string.prototype.trimstart": "^1.0.3" + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + } } }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "eslint-plugin-jest": { + "version": "27.1.7", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.1.7.tgz", + "integrity": "sha512-0QVzf+og4YI1Qr3UoprkqqhezAZjFffdi62b0IurkCXMqPtRW84/UT4CKsYT80h/D82LA9avjO/80Ou1LdgbaQ==", "dev": true, "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "@typescript-eslint/utils": "^5.10.0" } }, - "es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", "dev": true, "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" + "prettier-linter-helpers": "^1.0.0" } }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "eslint-plugin-tsdoc": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/eslint-plugin-tsdoc/-/eslint-plugin-tsdoc-0.2.17.tgz", + "integrity": "sha512-xRmVi7Zx44lOBuYqG8vzTXuL6IdGOeF9nHX17bjJ8+VE6fsxpdGem0/SBTmAwgYMKYB1WBkqRJVQ+n8GK041pA==", "dev": true, "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" + "@microsoft/tsdoc": "0.14.2", + "@microsoft/tsdoc-config": "0.16.2" } }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" } }, - "es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "requires": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } } }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true }, - "escaya": { - "version": "0.0.61", - "resolved": "https://registry.npmjs.org/escaya/-/escaya-0.0.61.tgz", - "integrity": "sha512-WLLmvdG72Z0pCq8XUBd03GEJlAiMceXFanjdQeEzeSiuV1ZgrJqbkU7ZEe/hu0OsBlg5wLlySEeOvfzcGoO8mg==", + "esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", "dev": true }, - "escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", "dev": true, "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" }, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true + "acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true } } }, - "esm": { - "version": "3.2.25", - "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", - "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", - "dev": true - }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, "estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", @@ -19054,12 +23069,6 @@ "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==", "dev": true }, - "exec-sh": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", - "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==", - "dev": true - }, "execa": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", @@ -19080,7 +23089,7 @@ "exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true }, "expand-brackets": { @@ -19185,17 +23194,16 @@ } }, "expect": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", - "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.3.1.tgz", + "integrity": "sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==", "dev": true, "requires": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" + "@jest/expect-utils": "^29.3.1", + "jest-get-type": "^29.2.0", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1" } }, "express": { @@ -19311,12 +23319,6 @@ } } }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, "fancy-log": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", @@ -19335,18 +23337,29 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "fast-equals": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-4.0.3.tgz", + "integrity": "sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==", + "dev": true + }, "fast-glob": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", - "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", + "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" + "micromatch": "^4.0.4" } }, "fast-json-stable-stringify": { @@ -19371,9 +23384,9 @@ } }, "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, "requires": { "bser": "2.1.1" @@ -19394,6 +23407,15 @@ "escape-string-regexp": "^1.0.5" } }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, "file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", @@ -19435,15 +23457,6 @@ "path-exists": "^4.0.0" } }, - "find-versions": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz", - "integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==", - "dev": true, - "requires": { - "semver-regex": "^3.1.2" - } - }, "findup-sync": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", @@ -19592,6 +23605,22 @@ "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", "dev": true }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, "flush-write-stream": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", @@ -19626,12 +23655,6 @@ "for-in": "^1.0.1" } }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, "form-data": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", @@ -19731,6 +23754,30 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "gensequence": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gensequence/-/gensequence-4.0.3.tgz", + "integrity": "sha512-izr+MKqJKjexkvLiPGhW96elQX8TuUR/su/xzILxjqzU1RDz1n1ZbqwDUnNFaRcq0gFR3oQfNH2JOH4Je1x/QA==", + "dev": true + }, "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -19744,14 +23791,14 @@ "dev": true }, "get-intrinsic": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", - "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.3" } }, "get-own-enumerable-property-symbols": { @@ -19766,6 +23813,12 @@ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true }, + "get-stdin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", + "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", + "dev": true + }, "get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -19775,6 +23828,22 @@ "pump": "^3.0.0" } }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "get-tsconfig": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.2.0.tgz", + "integrity": "sha512-X8u8fREiYOE6S8hLbq99PeykTDoLVnxvF4DjWKJmz9xy2nNRdUcV8ZN9tniJFeKyTU3qnC9lL8n4Chd6LmVKHg==", + "dev": true + }, "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", @@ -19787,15 +23856,6 @@ "integrity": "sha512-9jb7AW5p3in+IiJWhQiZmmwkpLaR/ccTWdWQCtZM66HJcHHLegowh4q4tSD7gouUyeNvFWRavfK9GXosQHDpFA==", "dev": true }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", @@ -19810,9 +23870,9 @@ } }, "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { "is-glob": "^4.0.1" @@ -20088,6 +24148,15 @@ } } }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", + "dev": true, + "requires": { + "ini": "^1.3.4" + } + }, "global-modules": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", @@ -20129,6 +24198,12 @@ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, + "globalyzer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", + "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", + "dev": true + }, "globby": { "version": "11.0.2", "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz", @@ -20143,6 +24218,12 @@ "slash": "^3.0.0" } }, + "globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true + }, "glogg": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", @@ -20152,10 +24233,25 @@ "sparkles": "^1.0.0" } }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "dev": true }, "graphql": { @@ -20207,6 +24303,19 @@ "dev": true, "requires": {} }, + "graphql-tag-pluck": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/graphql-tag-pluck/-/graphql-tag-pluck-0.8.7.tgz", + "integrity": "sha512-yuWcQislvBPHorFQzmZ9/yY0nPD1rn1kBNOr6iPXzT+iJ/i/pciq8Z7ilnVJAGKaJXV58ovD+AWWYYjX6IFF9g==", + "dev": true, + "peer": true, + "requires": { + "@babel/parser": "^7.4.4", + "@babel/traverse": "^7.4.4", + "@babel/types": "^7.4.4", + "source-map-support": "^0.5.12" + } + }, "graphql-tools": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.8.tgz", @@ -20228,13 +24337,6 @@ } } }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true, - "optional": true - }, "gulp": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", @@ -20361,22 +24463,6 @@ "glogg": "^1.0.0" } }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -20403,18 +24489,48 @@ } } }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "has-own-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", + "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -20484,18 +24600,9 @@ }, "hosted-git-info": { "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.5" - } + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true }, "html-escaper": { "version": "2.0.2", @@ -20550,17 +24657,6 @@ } } }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, "https-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", @@ -20604,80 +24700,10 @@ } }, "husky": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.8.tgz", - "integrity": "sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "ci-info": "^2.0.0", - "compare-versions": "^3.6.0", - "cosmiconfig": "^7.0.0", - "find-versions": "^4.0.0", - "opencollective-postinstall": "^2.0.2", - "pkg-dir": "^5.0.0", - "please-upgrade-node": "^3.2.0", - "slash": "^3.0.0", - "which-pm-runs": "^1.0.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "pkg-dir": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", - "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", - "dev": true, - "requires": { - "find-up": "^5.0.0" - } - } - } + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.2.tgz", + "integrity": "sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==", + "dev": true }, "iconv-lite": { "version": "0.4.24", @@ -20695,9 +24721,9 @@ "dev": true }, "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.2.tgz", + "integrity": "sha512-m1MJSy4Z2NAcyhoYpxQeBsc1ZdNQwYjN0wGbLBlnVArdJ90Gtr8IhNSfZZcCoR0fM/0E0BJ0mf1KnLNDOCJP4w==", "dev": true }, "import-fresh": { @@ -20711,9 +24737,9 @@ } }, "import-local": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, "requires": { "pkg-dir": "^4.2.0", @@ -20758,6 +24784,17 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, + "internal-slot": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", + "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, "interpret": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", @@ -20817,12 +24854,6 @@ "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", "dev": true }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, "ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -20862,6 +24893,15 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -20871,6 +24911,16 @@ "binary-extensions": "^2.0.0" } }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", @@ -20878,24 +24928,15 @@ "dev": true }, "is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - } - }, "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dev": true, "requires": { "has": "^1.0.3" @@ -20947,8 +24988,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", - "dev": true, - "optional": true + "dev": true }, "is-extendable": { "version": "1.0.1", @@ -21025,9 +25065,9 @@ "dev": true }, "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true }, "is-number": { @@ -21036,6 +25076,15 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", @@ -21049,9 +25098,9 @@ "dev": true }, "is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true }, "is-plain-object": { @@ -21063,20 +25112,14 @@ "isobject": "^3.0.1" } }, - "is-potential-custom-element-name": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", - "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=", - "dev": true - }, "is-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", - "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "requires": { "call-bind": "^1.0.2", - "has-symbols": "^1.0.1" + "has-tostringtag": "^1.0.0" } }, "is-regexp": { @@ -21094,12 +25137,30 @@ "is-unc-path": "^1.0.0" } }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, "is-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", "dev": true }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-symbol": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", @@ -21145,6 +25206,15 @@ "is-invalid-path": "^0.1.0" } }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -21156,7 +25226,6 @@ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, - "optional": true, "requires": { "is-docker": "^2.0.0" } @@ -21179,27 +25248,22 @@ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true }, "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, "requires": { - "@babel/core": "^7.7.5", + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-coverage": "^3.2.0", "semver": "^6.3.0" }, "dependencies": { @@ -21223,9 +25287,9 @@ } }, "istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "requires": { "debug": "^4.1.1", @@ -21234,9 +25298,9 @@ }, "dependencies": { "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { "ms": "2.1.2" @@ -21257,9 +25321,9 @@ } }, "istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -21283,52 +25347,146 @@ "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==" }, "jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", - "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.3.1.tgz", + "integrity": "sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==", "dev": true, "requires": { - "@jest/core": "^26.6.3", + "@jest/core": "^29.3.1", + "@jest/types": "^29.3.1", "import-local": "^3.0.2", - "jest-cli": "^26.6.3" + "jest-cli": "^29.3.1" } }, "jest-changed-files": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", - "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.2.0.tgz", + "integrity": "sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA==", "dev": true, "requires": { - "@jest/types": "^26.6.2", - "execa": "^4.0.0", - "throat": "^5.0.0" + "execa": "^5.0.0", + "p-limit": "^3.1.0" + }, + "dependencies": { + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "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" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + } + } + }, + "jest-circus": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.3.1.tgz", + "integrity": "sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==", + "dev": true, + "requires": { + "@jest/environment": "^29.3.1", + "@jest/expect": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.3.1", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", + "p-limit": "^3.1.0", + "pretty-format": "^29.3.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "dev": true, + "requires": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + } } }, "jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.3.1.tgz", + "integrity": "sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==", "dev": true, "requires": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/core": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", "chalk": "^4.0.0", "exit": "^0.1.2", - "graceful-fs": "^4.2.4", + "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", + "jest-config": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", "prompts": "^2.0.1", - "yargs": "^15.4.1" + "yargs": "^17.3.1" }, "dependencies": { "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -21336,14 +25494,14 @@ } }, "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "requires": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" } }, "get-caller-file": { @@ -21352,352 +25510,444 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } }, "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", "dev": true, "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" } }, "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true } } }, "jest-config": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", - "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.3.1.tgz", + "integrity": "sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==", "dev": true, "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.6.3", - "@jest/types": "^26.6.2", - "babel-jest": "^26.6.3", + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.3.1", + "@jest/types": "^29.3.1", + "babel-jest": "^29.3.1", "chalk": "^4.0.0", + "ci-info": "^3.2.0", "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-node": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.6.3", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2" + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.3.1", + "jest-environment-node": "^29.3.1", + "jest-get-type": "^29.2.0", + "jest-regex-util": "^29.2.0", + "jest-resolve": "^29.3.1", + "jest-runner": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.3.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" }, "dependencies": { "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "dev": true, + "requires": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true } } }, "jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.3.1.tgz", + "integrity": "sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==", "dev": true, "requires": { "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" + "diff-sequences": "^29.3.1", + "jest-get-type": "^29.2.0", + "pretty-format": "^29.3.1" }, "dependencies": { "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "dev": true, + "requires": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true } } }, "jest-docblock": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", - "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.2.0.tgz", + "integrity": "sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A==", "dev": true, "requires": { "detect-newline": "^3.0.0" } }, "jest-each": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", - "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.3.1.tgz", + "integrity": "sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==", "dev": true, "requires": { - "@jest/types": "^26.6.2", + "@jest/types": "^29.3.1", "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2" + "jest-get-type": "^29.2.0", + "jest-util": "^29.3.1", + "pretty-format": "^29.3.1" }, "dependencies": { "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "dev": true, + "requires": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true } } }, - "jest-environment-jsdom": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", - "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2", - "jsdom": "^16.4.0" - } - }, "jest-environment-node": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", - "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.3.1.tgz", + "integrity": "sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==", "dev": true, "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/environment": "^29.3.1", + "@jest/fake-timers": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" + "jest-mock": "^29.3.1", + "jest-util": "^29.3.1" } }, "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz", + "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==", "dev": true }, "jest-haste-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", - "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.3.1.tgz", + "integrity": "sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==", "dev": true, "requires": { - "@jest/types": "^26.6.2", - "@types/graceful-fs": "^4.1.2", + "@jest/types": "^29.3.1", + "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.2.0", + "jest-util": "^29.3.1", + "jest-worker": "^29.3.1", + "micromatch": "^4.0.4", + "walker": "^1.0.8" } }, - "jest-jasmine2": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", - "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", + "jest-leak-detector": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz", + "integrity": "sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA==", "dev": true, "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^26.6.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2", - "throat": "^5.0.0" + "jest-get-type": "^29.2.0", + "pretty-format": "^29.3.1" }, "dependencies": { - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", "dev": true, "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true } } }, - "jest-leak-detector": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", - "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", - "dev": true, - "requires": { - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, "jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz", + "integrity": "sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==", "dev": true, "requires": { "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" + "jest-diff": "^29.3.1", + "jest-get-type": "^29.2.0", + "pretty-format": "^29.3.1" }, "dependencies": { "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "dev": true, + "requires": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true } } }, "jest-message-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", - "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.3.1.tgz", + "integrity": "sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.6.2", + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.3.1", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.3.1", "slash": "^3.0.0", - "stack-utils": "^2.0.2" + "stack-utils": "^2.0.3" }, "dependencies": { "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "dev": true, + "requires": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true } } }, "jest-mock": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", - "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.3.1.tgz", + "integrity": "sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==", "dev": true, "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*" + "@jest/types": "^29.3.1", + "@types/node": "*", + "jest-util": "^29.3.1" } }, "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, "requires": {} }, "jest-regex-util": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", - "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.2.0.tgz", + "integrity": "sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==", "dev": true }, "jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", - "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.3.1.tgz", + "integrity": "sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==", "dev": true, "requires": { - "@jest/types": "^26.6.2", "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.3.1", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", "slash": "^3.0.0" }, "dependencies": { "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -21707,231 +25957,201 @@ } }, "jest-resolve-dependencies": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", - "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz", + "integrity": "sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==", "dev": true, "requires": { - "@jest/types": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-snapshot": "^26.6.2" + "jest-regex-util": "^29.2.0", + "jest-snapshot": "^29.3.1" } }, "jest-runner": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", - "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.3.1.tgz", + "integrity": "sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==", "dev": true, "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/console": "^29.3.1", + "@jest/environment": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", "chalk": "^4.0.0", - "emittery": "^0.7.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-docblock": "^26.0.0", - "jest-haste-map": "^26.6.2", - "jest-leak-detector": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "source-map-support": "^0.5.6", - "throat": "^5.0.0" + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.2.0", + "jest-environment-node": "^29.3.1", + "jest-haste-map": "^29.3.1", + "jest-leak-detector": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-resolve": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-util": "^29.3.1", + "jest-watcher": "^29.3.1", + "jest-worker": "^29.3.1", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" }, "dependencies": { "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } } } }, "jest-runtime": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", - "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/globals": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/yargs": "^15.0.0", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.3.1.tgz", + "integrity": "sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==", + "dev": true, + "requires": { + "@jest/environment": "^29.3.1", + "@jest/fake-timers": "^29.3.1", + "@jest/globals": "^29.3.1", + "@jest/source-map": "^29.2.0", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", "chalk": "^4.0.0", - "cjs-module-lexer": "^0.6.0", + "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-mock": "^29.3.1", + "jest-regex-util": "^29.2.0", + "jest-resolve": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^15.4.1" + "strip-bom": "^4.0.0" }, "dependencies": { "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } } } }, - "jest-serializer": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", - "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, "jest-snapshot": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", - "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.3.1.tgz", + "integrity": "sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==", "dev": true, "requires": { - "@babel/types": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.0.0", + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-haste-map": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", + "expect": "^29.3.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.3.1", + "jest-get-type": "^29.2.0", + "jest-haste-map": "^29.3.1", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", "natural-compare": "^1.4.0", - "pretty-format": "^26.6.2", - "semver": "^7.3.2" + "pretty-format": "^29.3.1", + "semver": "^7.3.5" }, "dependencies": { "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "dev": true, + "requires": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true } } }, "jest-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", - "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", "dev": true, "requires": { - "@jest/types": "^26.6.2", + "@jest/types": "^29.3.1", "@types/node": "*", "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" }, "dependencies": { "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -21941,56 +26161,82 @@ } }, "jest-validate": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", - "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.3.1.tgz", + "integrity": "sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==", "dev": true, "requires": { - "@jest/types": "^26.6.2", - "camelcase": "^6.0.0", + "@jest/types": "^29.3.1", + "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", + "jest-get-type": "^29.2.0", "leven": "^3.1.0", - "pretty-format": "^26.6.2" + "pretty-format": "^29.3.1" }, "dependencies": { "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "dev": true, + "requires": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true } } }, "jest-watcher": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", - "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.3.1.tgz", + "integrity": "sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==", "dev": true, "requires": { - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "jest-util": "^26.6.2", + "emittery": "^0.13.1", + "jest-util": "^29.3.1", "string-length": "^4.0.1" }, "dependencies": { "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -22000,16 +26246,34 @@ } }, "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", + "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", "dev": true, "requires": { "@types/node": "*", + "jest-util": "^29.3.1", "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, + "jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", + "dev": true + }, "joi": { "version": "17.3.0", "resolved": "https://registry.npmjs.org/joi/-/joi-17.3.0.tgz", @@ -22032,6 +26296,12 @@ "joi": "17.3.0" } }, + "js-sdsl": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", + "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", + "dev": true + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -22048,55 +26318,6 @@ "esprima": "^4.0.0" } }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "jsdom": { - "version": "16.4.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz", - "integrity": "sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==", - "dev": true, - "requires": { - "abab": "^2.0.3", - "acorn": "^7.1.1", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.2.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.0", - "domexception": "^2.0.1", - "escodegen": "^1.14.1", - "html-encoding-sniffer": "^2.0.1", - "is-potential-custom-element-name": "^1.0.0", - "nwsapi": "^2.2.0", - "parse5": "5.1.1", - "request": "^2.88.2", - "request-promise-native": "^1.0.8", - "saxes": "^5.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^3.0.1", - "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.0.0", - "ws": "^7.2.3", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "ws": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz", - "integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==", - "dev": true, - "requires": {} - } - } - }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -22109,12 +26330,6 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -22127,20 +26342,17 @@ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "json5": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.2.tgz", + "integrity": "sha512-46Tk9JiOL2z7ytNQWFLpj99RZkVgeHf87yGQKsIkaPz1qSH9UczKH1rO7K3wgRselo0tYMUNfecYpm/p1vC7tQ==", "dev": true }, - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } + "jsonc-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==", + "dev": true }, "jsonfile": { "version": "6.1.0", @@ -22152,18 +26364,6 @@ "universalify": "^2.0.0" } }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, "just-debounce": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", @@ -22280,16 +26480,6 @@ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, "libphonenumber-js": { "version": "1.9.7", "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.7.tgz", @@ -22318,6 +26508,15 @@ "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", "dev": true }, + "linkify-it": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", + "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", + "dev": true, + "requires": { + "uc.micro": "^1.0.1" + } + }, "lint-staged": { "version": "10.5.4", "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz", @@ -22467,6 +26666,18 @@ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", @@ -22646,12 +26857,12 @@ } }, "makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, "requires": { - "tmpl": "1.0.x" + "tmpl": "1.0.5" } }, "map-cache": { @@ -22669,6 +26880,120 @@ "object-visit": "^1.0.0" } }, + "markdown-it": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz", + "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==", + "dev": true, + "requires": { + "argparse": "^2.0.1", + "entities": "~3.0.1", + "linkify-it": "^4.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + } + } + }, + "markdownlint": { + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.26.2.tgz", + "integrity": "sha512-2Am42YX2Ex5SQhRq35HxYWDfz1NLEOZWWN25nqd2h3AHRKsGRE+Qg1gt1++exW792eXTrR4jCNHfShfWk9Nz8w==", + "dev": true, + "requires": { + "markdown-it": "13.0.1" + } + }, + "markdownlint-cli": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.32.2.tgz", + "integrity": "sha512-xmJT1rGueUgT4yGNwk6D0oqQr90UJ7nMyakXtqjgswAkEhYYqjHew9RY8wDbOmh2R270IWjuKSeZzHDEGPAUkQ==", + "dev": true, + "requires": { + "commander": "~9.4.0", + "get-stdin": "~9.0.0", + "glob": "~8.0.3", + "ignore": "~5.2.0", + "js-yaml": "^4.1.0", + "jsonc-parser": "~3.1.0", + "markdownlint": "~0.26.2", + "markdownlint-rule-helpers": "~0.17.2", + "minimatch": "~5.1.0", + "run-con": "~1.2.11" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "commander": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", + "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", + "dev": true + }, + "get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "dev": true + }, + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "minimatch": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", + "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "markdownlint-rule-helpers": { + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.17.2.tgz", + "integrity": "sha512-XaeoW2NYSlWxMCZM2B3H7YTG6nlaLfkEZWMBhr4hSPlq9MuY2sy83+Xr89jXOqZMZYjvi5nBCGoFh7hHoPKZmA==", + "dev": true + }, "matchdep": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", @@ -22819,6 +27144,12 @@ } } }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "dev": true + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -22857,13 +27188,13 @@ "dev": true }, "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" + "braces": "^3.0.2", + "picomatch": "^2.3.1" } }, "mime": { @@ -22894,17 +27225,17 @@ "dev": true }, "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", "dev": true }, "minipass": { @@ -23102,6 +27433,12 @@ "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", "dev": true }, + "mvdan-sh": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/mvdan-sh/-/mvdan-sh-0.10.1.tgz", + "integrity": "sha512-kMbrH0EObaKmK3nVRKUIIya1dpASHIEusM13S4V1ViHFuxuNxCo+arxoa6j/dbV22YBGjl7UKJm9QQKJ2Crzhg==", + "dev": true + }, "mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", @@ -23153,6 +27490,12 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, + "natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, "negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", @@ -23165,12 +27508,6 @@ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", "dev": true }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, "node-fetch": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", @@ -23180,30 +27517,15 @@ "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "dev": true }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "node-releases": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", + "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", "dev": true }, - "node-notifier": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz", - "integrity": "sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==", - "dev": true, - "optional": true, - "requires": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.2", - "shellwords": "^0.1.1", - "uuid": "^8.3.0", - "which": "^2.0.2" - } - }, "normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -23254,18 +27576,6 @@ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -23341,9 +27651,9 @@ } }, "object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", "dev": true }, "object-keys": { @@ -23368,14 +27678,14 @@ } }, "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" } }, @@ -23391,6 +27701,17 @@ "isobject": "^3.0.0" } }, + "object.entries": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, "object.getownpropertydescriptors": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", @@ -23431,6 +27752,17 @@ "make-iterator": "^1.0.0" } }, + "object.values": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -23457,24 +27789,15 @@ "mimic-fn": "^2.1.0" } }, - "opencollective-postinstall": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", - "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", - "dev": true - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", "dev": true, "requires": { - "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" + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" } }, "ordered-read-streams": { @@ -23495,25 +27818,13 @@ "lcid": "^1.0.0" } }, - "p-each-series": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", - "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { - "p-try": "^2.0.0" + "yocto-queue": "^0.1.0" } }, "p-locate": { @@ -23523,6 +27834,17 @@ "dev": true, "requires": { "p-limit": "^2.2.0" + }, + "dependencies": { + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + } } }, "p-map": { @@ -23655,9 +27977,9 @@ "dev": true }, "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, "path-root": { @@ -23687,12 +28009,6 @@ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, "pg": { "version": "8.5.1", "resolved": "https://registry.npmjs.org/pg/-/pg-8.5.1.tgz", @@ -23755,10 +28071,16 @@ "split2": "^3.1.1" } }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "pify": { @@ -23783,13 +28105,10 @@ } }, "pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", - "dev": true, - "requires": { - "node-modules-regexp": "^1.0.0" - } + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true }, "pkg-dir": { "version": "4.2.0", @@ -23865,18 +28184,32 @@ "xtend": "^4.0.0" } }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, "prettier": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", "dev": true }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "requires": { + "fast-diff": "^1.1.2" + } + }, + "prettier-plugin-sh": { + "version": "0.12.8", + "resolved": "https://registry.npmjs.org/prettier-plugin-sh/-/prettier-plugin-sh-0.12.8.tgz", + "integrity": "sha512-VOq8h2Gn5UzrCIKm4p/nAScXJbN09HdyFDknAcxt6Qu/tv/juu9bahxSrcnM9XWYA+Spz1F1ANJ4LhfwB7+Q1Q==", + "dev": true, + "requires": { + "mvdan-sh": "^0.10.1", + "sh-syntax": "^0.3.6", + "synckit": "^0.8.1" + } + }, "pretty-format": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", @@ -23887,6 +28220,40 @@ "ansi-regex": "^5.0.0", "ansi-styles": "^4.0.0", "react-is": "^17.0.1" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "15.0.14", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", + "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } } }, "pretty-hrtime": { @@ -23926,9 +28293,9 @@ } }, "prompts": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", - "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, "requires": { "kleur": "^3.0.3", @@ -23945,12 +28312,6 @@ "ipaddr.js": "1.9.1" } }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -23996,6 +28357,12 @@ "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", "dev": true }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -24041,45 +28408,6 @@ "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", "dev": true }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -24156,6 +28484,23 @@ "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==", "dev": true }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, "remove-bom-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", @@ -24221,121 +28566,18 @@ "requires": { "homedir-polyfill": "^1.0.1", "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" - } - }, - "replacestream": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/replacestream/-/replacestream-4.0.3.tgz", - "integrity": "sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.3", - "object-assign": "^4.0.1", - "readable-stream": "^2.0.2" - } - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } - } - }, - "request-promise-core": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", - "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", - "dev": true, - "requires": { - "lodash": "^4.17.19" - }, - "dependencies": { - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - } + "remove-trailing-separator": "^1.1.0" } }, - "request-promise-native": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", - "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", + "replacestream": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/replacestream/-/replacestream-4.0.3.tgz", + "integrity": "sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA==", "dev": true, "requires": { - "request-promise-core": "1.1.4", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } + "escape-string-regexp": "^1.0.3", + "object-assign": "^4.0.1", + "readable-stream": "^2.0.2" } }, "require_optional": { @@ -24375,13 +28617,14 @@ "dev": true }, "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dev": true, "requires": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, "resolve-cwd": { @@ -24417,6 +28660,15 @@ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, + "resolve-global": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", + "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", + "dev": true, + "requires": { + "global-dirs": "^0.1.1" + } + }, "resolve-options": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", @@ -24432,6 +28684,12 @@ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, + "resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "dev": true + }, "restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -24469,17 +28727,34 @@ "glob": "^7.1.3" } }, - "rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "dev": true + "run-con": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.2.11.tgz", + "integrity": "sha512-NEMGsUT+cglWkzEr4IFK21P4Jca45HqiAbIIZIBdX5+UZTB24Mb/21iNGgz9xZa8tL6vbW7CXmq7MFN42+VjNQ==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~3.0.0", + "minimist": "^1.2.6", + "strip-json-comments": "~3.1.1" + }, + "dependencies": { + "ini": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz", + "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==", + "dev": true + } + } }, "run-parallel": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", - "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", - "dev": true + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } }, "rxjs": { "version": "6.6.3", @@ -24513,253 +28788,23 @@ "ret": "~0.1.10" } }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "sane": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", - "dev": true, - "requires": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, "saslprep": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", @@ -24776,19 +28821,10 @@ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, - "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "requires": { - "xmlchars": "^2.2.0" - } - }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "requires": { "lru-cache": "^6.0.0" }, @@ -24823,12 +28859,6 @@ "sver-compat": "^1.5.0" } }, - "semver-regex": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.2.tgz", - "integrity": "sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA==", - "dev": true - }, "send": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", @@ -24911,6 +28941,15 @@ "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", "dev": true }, + "sh-syntax": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/sh-syntax/-/sh-syntax-0.3.7.tgz", + "integrity": "sha512-xIB/uRniZ9urxAuXp1Ouh/BKSI1VK8RSqfwGj7cV57HvGrFo3vHdJfv8Tdp/cVcxJgXQTkmHr5mG5rqJW8r4wQ==", + "dev": true, + "requires": { + "tslib": "^2.4.0" + } + }, "sha.js": { "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", @@ -24936,12 +28975,16 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, - "optional": true + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } }, "sift": { "version": "7.0.1", @@ -24950,9 +28993,9 @@ "dev": true }, "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, "sisteransi": { @@ -25303,23 +29346,6 @@ "integrity": "sha512-vF4ZbYdKS8OnoJAWBmMxCQDkiEBkGQYU7UZPtL8flbDRSNkhaXvRJ279ZtI6M+zDaQovVU4tuRgzK5fVhvFAhg==", "dev": true }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, "ssri": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", @@ -25336,9 +29362,9 @@ "dev": true }, "stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, "requires": { "escape-string-regexp": "^2.0.0" @@ -25436,12 +29462,6 @@ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", - "dev": true - }, "stoppable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", @@ -25482,9 +29502,9 @@ "dev": true }, "string-length": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.1.tgz", - "integrity": "sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, "requires": { "char-regex": "^1.0.2", @@ -25492,34 +29512,36 @@ } }, "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" } }, "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "stringify-object": { @@ -25534,12 +29556,12 @@ } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "strip-bom": { @@ -25548,12 +29570,6 @@ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, "strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", @@ -25599,15 +29615,11 @@ "has-flag": "^4.0.0" } }, - "supports-hyperlinks": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", - "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - } + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true }, "sver-compat": { "version": "1.5.0", @@ -25625,10 +29637,20 @@ "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", "dev": true }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "synckit": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.4.tgz", + "integrity": "sha512-Dn2ZkzMdSX827QbowGbU/4yjWuvNaCoScLLoMo/yKbu+P4GBR6cRGKZH27k6a9bRzdqcyd1DE96pQtQ6uNkmyw==", + "dev": true, + "requires": { + "@pkgr/utils": "^2.3.1", + "tslib": "^2.4.0" + } + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true }, "tar": { @@ -25659,16 +29681,6 @@ "integrity": "sha512-6usSlV9KyHsspvwu2duKH+FMUhqJnAh6J5J/4MITl8s94iSUQTLkJggdiewKv4RyARQccnigV48Z+khiuVZDJw==", "dev": true }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, "test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -25680,6 +29692,12 @@ "minimatch": "^3.0.4" } }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, "textextensions": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.6.0.tgz", @@ -25704,12 +29722,6 @@ "thenify": ">= 3.1.0 < 4" } }, - "throat": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", - "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", - "dev": true - }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -25760,10 +29772,20 @@ "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", "dev": true }, + "tiny-glob": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", + "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", + "dev": true, + "requires": { + "globalyzer": "0.1.0", + "globrex": "^0.1.2" + } + }, "tmpl": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", - "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true }, "to-absolute-glob": { @@ -25850,26 +29872,6 @@ "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", "dev": true }, - "tough-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", - "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", - "dev": true, - "requires": { - "ip-regex": "^2.1.0", - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", - "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, "ts-invariant": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz", @@ -25888,22 +29890,27 @@ } }, "ts-jest": { - "version": "26.5.2", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.2.tgz", - "integrity": "sha512-bwyJ2zJieSugf7RB+o8fgkMeoMVMM2KPDE0UklRLuACxjwJsOrZNo6chrcScmK33YavPSwhARffy8dZx5LJdUQ==", + "version": "29.0.3", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.0.3.tgz", + "integrity": "sha512-Ibygvmuyq1qp/z3yTh9QTwVVAbFdDy/+4BtIQR2sp6baF2SJU/8CKK/hhnGIDY2L90Az2jIqTwZPnN2p+BweiQ==", "dev": true, "requires": { - "@types/jest": "26.x", "bs-logger": "0.x", - "buffer-from": "1.x", "fast-json-stable-stringify": "2.x", - "jest-util": "^26.1.0", - "json5": "2.x", - "lodash": "4.x", + "jest-util": "^29.0.0", + "json5": "^2.2.1", + "lodash.memoize": "4.x", "make-error": "1.x", - "mkdirp": "1.x", "semver": "7.x", - "yargs-parser": "20.x" + "yargs-parser": "^21.0.1" + }, + "dependencies": { + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + } } }, "ts-node": { @@ -25920,176 +29927,39 @@ "yn": "3.1.1" } }, - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" - }, - "tslint": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", - "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", + "tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.3", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.13.0", - "tsutils": "^2.29.0" + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "dev": true, "requires": { - "color-name": "1.1.3" + "minimist": "^1.2.0" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "has-flag": { + "strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "tslint-config-prettier": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz", - "integrity": "sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg==", - "dev": true - }, - "tslint-eslint-rules": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", - "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", - "dev": true, - "requires": { - "doctrine": "0.7.2", - "tslib": "1.9.0", - "tsutils": "^3.0.0" - }, - "dependencies": { - "tslib": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", - "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", - "dev": true - }, - "tsutils": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.20.0.tgz", - "integrity": "sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } - } - }, - "tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true } } }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, "type": { "version": "1.2.0", @@ -26097,15 +29967,6 @@ "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", "dev": true }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -26268,6 +30129,24 @@ "integrity": "sha512-tbb+NVrLfnsJy3M59lsDgrzWIflR4d4TIUjz+heUnHZwdF7YsrMTKoRERiIvI2lvBG95dfpLxB21WZhys1bgaQ==", "dev": true }, + "uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, "unc-path-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", @@ -26354,6 +30233,15 @@ "through2-filter": "^3.0.0" } }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -26412,6 +30300,16 @@ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", "dev": true }, + "update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, "uri-js": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", @@ -26465,14 +30363,14 @@ "dev": true }, "v8-to-istanbul": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", - "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", "dev": true, "requires": { + "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" + "convert-source-map": "^1.6.0" } }, "v8flags": { @@ -26518,17 +30416,6 @@ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, "vinyl": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", @@ -26606,63 +30493,25 @@ } } }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "requires": { - "xml-name-validator": "^3.0.0" - } - }, - "walker": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", - "dev": true, - "requires": { - "makeerror": "1.0.x" - } - }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "vscode-languageserver-textdocument": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz", + "integrity": "sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q==", "dev": true }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "vscode-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.7.tgz", + "integrity": "sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==", "dev": true }, - "whatwg-url": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz", - "integrity": "sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==", + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^2.0.2", - "webidl-conversions": "^6.1.0" + "makeerror": "1.0.12" } }, "which": { @@ -26674,18 +30523,25 @@ "isexe": "^2.0.0" } }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, "which-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", "dev": true }, - "which-pm-runs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", - "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", - "dev": true - }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -26729,10 +30585,10 @@ "async-limiter": "~1.0.0" } }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", "dev": true }, "xml2js": { @@ -26751,12 +30607,6 @@ "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", "dev": true }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, "xss": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.8.tgz", diff --git a/package.json b/package.json index b903cca4d..a740db1ad 100644 --- a/package.json +++ b/package.json @@ -9,14 +9,19 @@ "test": "jest --verbose --coverage", "test:ci": "jest --verbose --coverage --ci --forceExit --detectOpenHandles --runInBand", "test:watch": "jest --watch", - "format": "prettier --write \"{src,tests,examples}/**/*.{ts,js}\" \"docs/**/*.md\"", + "check": "npm run check:format && check:lint && check:markdown && npm run check:spell && npm run check:type", "check:format": "prettier --check \"{src,tests,examples}/**/*.{ts,js}\" \"docs/**/*.md\"", + "check:lint": "eslint .", + "check:markdown": "markdownlint \"**/*.md\"", + "check:spell": "cspell lint --config cspell.json --no-progress --show-context \"**\"", "check:type": "tsc --noEmit && tsc --noEmit -p ./examples/tsconfig.json", - "check": "npm run check:format && npm run check:type", - "lint": "tslint --project tsconfig.json", - "verify": "npm run check && npm run lint", + "fix": "npm run fix:format && npm run fix:lint && npm run fix:markdown", + "fix:format": "prettier --write .", + "fix:lint": "eslint --fix .", + "fix:markdown": "markdownlint --fix \"**/*.md\"", "package": "gulp package", - "docs": "npm run --prefix website start" + "docs": "npm run --prefix website start", + "prepare": "husky install" }, "peerDependencies": { "class-validator": ">=0.12.0", @@ -35,6 +40,10 @@ "devDependencies": { "@apollo/federation": "^0.21.2", "@apollo/gateway": "^0.23.2", + "@cspell/dict-node": "^4.0.2", + "@cspell/dict-npm": "^5.0.1", + "@cspell/dict-typescript": "^3.0.2", + "@cspell/eslint-plugin": "^6.17.0", "@graphql-modules/core": "^0.7.13", "@graphql-modules/di": "^0.7.17", "@mikro-orm/core": "^4.4.4", @@ -43,15 +52,27 @@ "@types/gulp": "^4.0.8", "@types/gulp-replace": "0.0.31", "@types/ioredis": "^4.22.0", - "@types/jest": "^26.0.20", + "@types/jest": "^29.2.4", "@types/mongoose": "^5.10.3", "@types/node": "^14.14.31", "@types/rimraf": "^3.0.0", + "@typescript-eslint/eslint-plugin": "^5.46.1", + "@typescript-eslint/parser": "^5.46.1", "apollo-cache-control": "^0.11.6", "apollo-server": "^2.21.0", "apollo-server-plugin-response-cache": "^0.6.0", "class-validator": "^0.13.1", + "cspell": "^6.17.0", "del": "^6.0.0", + "eslint": "^8.30.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-airbnb-typescript": "^17.0.0", + "eslint-config-prettier": "^8.5.0", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-jest": "^27.1.7", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-tsdoc": "^0.2.17", "graphql": "^15.5.0", "graphql-redis-subscriptions": "^2.3.1", "graphql-tag": "^2.11.0", @@ -59,43 +80,26 @@ "gulp-shell": "^0.8.0", "gulp-typescript": "^5.0.1", "gulpclass": "^0.2.0", - "husky": "^4.3.8", + "husky": "^8.0.2", "ioredis": "^4.23.0", - "jest": "^26.6.3", + "jest": "^29.3.1", "joiful": "^3.0.0", "lint-staged": "^10.5.4", + "markdownlint": "^0.26.2", + "markdownlint-cli": "^0.32.2", "mongoose": "5.10.18", "pg": "^8.5.1", "prettier": "^2.2.1", + "prettier-plugin-sh": "^0.12.8", "reflect-metadata": "^0.1.13", "rimraf": "^3.0.2", - "ts-jest": "^26.5.2", + "ts-jest": "^29.0.3", "ts-node": "^9.1.1", - "tslint": "^6.1.3", - "tslint-config-prettier": "^1.18.0", - "tslint-eslint-rules": "^5.4.0", "typedi": "^0.10.0", "typeorm": "^0.2.31", "typeorm-typedi-extensions": "^0.4.1", "typescript": "~4.2.2" }, - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - }, - "lint-staged": { - "{src,tests,examples}/**/*.ts": [ - "tslint --fix", - "prettier --write" - ], - "{src,tests,examples}/**/*.js": [ - "prettier --write" - ], - "docs/**/*.md": [ - "prettier --write" - ] - }, "main": "./dist/index.js", "types": "./dist/index.d.ts", "readmeFilename": "README.md", diff --git a/publish-website.sh b/publish-website.sh deleted file mode 100644 index ac0c964c6..000000000 --- a/publish-website.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -e - -if [ "$TRAVIS_PULL_REQUEST" = "false" ] && [ "$TRAVIS_BRANCH" = "master" ]; then - git config user.email "$GIT_USER@users.noreply.github.com" - git config user.name "Travis" - echo "machine github.com login $GIT_USER password $GIT_TOKEN" > ~/.netrc - - cd website - npm install - GIT_USER=$GIT_USER CURRENT_BRANCH=master npm run publish-gh-pages - exit 0; -fi diff --git a/scripts/__commons.sh b/scripts/__commons.sh new file mode 100755 index 000000000..a609a6f46 --- /dev/null +++ b/scripts/__commons.sh @@ -0,0 +1,143 @@ +#!/usr/bin/env sh + +# Fail on error +set -o errexit +# Disable wildcard character expansion +set -o noglob + +# ================ +# LOGGER +# ================ +# Fatal log level. Cause exit failure +LOG_LEVEL_FATAL=100 +# Error log level +LOG_LEVEL_ERROR=200 +# Warning log level +LOG_LEVEL_WARN=300 +# Informational log level +LOG_LEVEL_INFO=500 +# Debug log level +LOG_LEVEL_DEBUG=600 +# Log level +LOG_LEVEL=$LOG_LEVEL_INFO +# Log color flag +LOG_COLOR_ENABLE=true + +# Convert log level to equivalent name +# @param $1 Log level +to_log_level_name() { + _log_level=${1:-LOG_LEVEL} + _log_level_name= + + case $_log_level in + "$LOG_LEVEL_FATAL") _log_level_name=fatal ;; + "$LOG_LEVEL_ERROR") _log_level_name=error ;; + "$LOG_LEVEL_WARN") _log_level_name=warn ;; + "$LOG_LEVEL_INFO") _log_level_name=info ;; + "$LOG_LEVEL_DEBUG") _log_level_name=debug ;; + *) FATAL "Unknown log level '$_log_level'" ;; + esac + + printf '%s\n' "$_log_level_name" +} + +# Check if log level is enabled +# @param $1 Log level +is_log_level_enabled() { + [ "$1" -le "$LOG_LEVEL" ] + + return $? +} + +# Print log message +# @param $1 Log level +# @param $2 Message +_log_print_message() { + _log_level=${1:-LOG_LEVEL_FATAL} + shift + _log_level_name= + _log_message=${*:-} + _log_prefix= + _log_suffix="\033[0m" + + # Check log level + is_log_level_enabled "$_log_level" || return 0 + + case $_log_level in + "$LOG_LEVEL_FATAL") + _log_level_name=FATAL + _log_prefix="\033[41;37m" + ;; + "$LOG_LEVEL_ERROR") + _log_level_name=ERROR + _log_prefix="\033[1;31m" + ;; + "$LOG_LEVEL_WARN") + _log_level_name=WARN + _log_prefix="\033[1;33m" + ;; + "$LOG_LEVEL_INFO") + _log_level_name=INFO + _log_prefix="\033[37m" + ;; + "$LOG_LEVEL_DEBUG") + _log_level_name=DEBUG + _log_prefix="\033[1;34m" + ;; + esac + + # Check color flag + if [ "$LOG_COLOR_ENABLE" = false ]; then + _log_prefix= + _log_suffix= + fi + + # Log + printf '%b[%-5s] %b%b\n' "$_log_prefix" "$_log_level_name" "$_log_message" "$_log_suffix" +} + +# Fatal log message +# @param $1 Message +FATAL() { + _log_print_message "$LOG_LEVEL_FATAL" "$@" >&2 + exit 1 +} +# Error log message +# @param $1 Message +ERROR() { _log_print_message "$LOG_LEVEL_ERROR" "$@" >&2; } +# Warning log message +# @param $1 Message +WARN() { _log_print_message "$LOG_LEVEL_WARN" "$@" >&2; } +# Informational log message +# @param $1 Message +INFO() { _log_print_message "$LOG_LEVEL_INFO" "$@"; } +# Debug log message +# @param $1 Message +DEBUG() { _log_print_message "$LOG_LEVEL_DEBUG" "$@"; } + +# ================ +# ASSERT +# ================ +# Assert command is installed +# @param $1 Command name +assert_cmd() { + check_cmd "$1" || FATAL "Command '$1' not found" + DEBUG "Command '$1' found at '$(command -v "$1")'" +} + +# ================ +# FUNCTIONS +# ================ +# Check command is installed +# @param $1 Command name +check_cmd() { + command -v "$1" > /dev/null 2>&1 +} + +# ================ +# CONFIGURATION +# ================ +# Log level +LOG_LEVEL=$LOG_LEVEL_INFO +# Log color flag +LOG_COLOR_ENABLE=true diff --git a/scripts/publish-website.sh b/scripts/publish-website.sh new file mode 100644 index 000000000..3ba7252e3 --- /dev/null +++ b/scripts/publish-website.sh @@ -0,0 +1,76 @@ +#!/usr/bin/env sh + +# Current directory +# shellcheck disable=SC1007 +DIRNAME=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) + +# Load commons +# shellcheck source=./__commons.sh +. "$DIRNAME/__commons.sh" + +# ================ +# CONFIGURATION +# ================ +# Root directory +ROOT_DIR="$DIRNAME/.." +# Website directory +WEBSITE_DIR="$ROOT_DIR/website" + +# ================ +# CLEANUP +# ================ +cleanup() { + # Exit code + _exit_code=$? + [ $_exit_code = 0 ] || WARN "Cleanup exit code $_exit_code" + + exit "$_exit_code" +} + +# Trap +trap cleanup INT QUIT TERM EXIT + +################################################################################################################################ + +# Verify system +verify_system() { + assert_cmd git + assert_cmd npm + + [ -d "$WEBSITE_DIR" ] || FATAL "Website directory '$WEBSITE_DIR' does not exists" +} + +# Publish website +publish_website() { + { [ "$TRAVIS_PULL_REQUEST" = false ] && [ "$TRAVIS_BRANCH" = master ]; } || { + WARN "Skipping publishing website" + return + } + INFO "Publishing website" + + # Prepare git + DEBUG "Preparing git" + git config user.email "$GIT_USER@users.noreply.github.com" + git config user.name "Travis" + printf '%s\n' "machine github.com login $GIT_USER password $GIT_TOKEN" > "$HOME/.netrc" + + # Prepare website + DEBUG "Preparing website" + npm --prefix "$WEBSITE_DIR" ci + + # Publish + DEBUG "Publishing website" + GIT_USER=$GIT_USER \ + CURRENT_BRANCH=master \ + npm --prefix "$WEBSITE_DIR" run publish-gh-pages + + INFO "Successfully published website" +} + +# ================ +# MAIN +# ================ +{ + verify_system + publish_website +} diff --git a/tests/.eslintrc b/tests/.eslintrc new file mode 100644 index 000000000..f6ceb5a80 --- /dev/null +++ b/tests/.eslintrc @@ -0,0 +1,11 @@ +{ + "rules": { + "max-classes-per-file": "off", + "import/no-extraneous-dependencies": [ + "error", + { + "devDependencies": true + } + ] + } +} diff --git a/tests/tsconfig.json b/tests/tsconfig.json new file mode 100644 index 000000000..d3188e1e1 --- /dev/null +++ b/tests/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../tsconfig.json", + "include": [".", "../src"] +} diff --git a/tsconfig.json b/tsconfig.json index d59283ce0..5504082de 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,69 +1,59 @@ { "compilerOptions": { /* Basic Options */ - "target": "es2018", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */ - "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */ - "lib": [ /* Specify library files to be included in the compilation. */ - "es2018", + "target": "es2018" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */, + "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */, + "lib": [ + /* Specify library files to be included in the compilation. */ "es2018", "esnext.asynciterable" ], // "allowJs": true, /* Allow javascript files to be compiled. */ // "checkJs": true, /* Report errors in .js files. */ // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ - "declaration": true, /* Generates corresponding '.d.ts' file. */ - "sourceMap": true, /* Generates corresponding '.map' file. */ + "declaration": true /* Generates corresponding '.d.ts' file. */, + "sourceMap": true /* Generates corresponding '.map' file. */, // "outFile": "./", /* Concatenate and emit output to single file. */ - "outDir": "./build", /* Redirect output structure to the directory. */ + "outDir": "./build" /* Redirect output structure to the directory. */, // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ - "removeComments": false, /* Do not emit comments to output. */ + "removeComments": false /* Do not emit comments to output. */, // "noEmit": true, /* Do not emit outputs. */ - "importHelpers": true, /* Import emit helpers from 'tslib'. */ + "importHelpers": true /* Import emit helpers from 'tslib'. */, // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ - /* Strict Type-Checking Options */ - "strict": false, /* Enable all strict type-checking options. */ - "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ - "strictNullChecks": true, /* Enable strict null checks. */ - "strictFunctionTypes": true, /* Enable strict checking of function types. */ - "strictPropertyInitialization": false, /* Enable strict checking of property initialization in classes. */ - "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ - "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ - + "strict": false /* Enable all strict type-checking options. */, + "noImplicitAny": true /* Raise error on expressions and declarations with an implied 'any' type. */, + "strictNullChecks": true /* Enable strict null checks. */, + "strictFunctionTypes": true /* Enable strict checking of function types. */, + "strictPropertyInitialization": false /* Enable strict checking of property initialization in classes. */, + "noImplicitThis": true /* Raise error on 'this' expressions with an implied 'any' type. */, + "alwaysStrict": true /* Parse in strict mode and emit "use strict" for each source file. */, /* Additional Checks */ - "noUnusedLocals": false, /* Report errors on unused locals. */ - "noUnusedParameters": false, /* Report errors on unused parameters. */ - "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ - "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ - + "noUnusedLocals": false /* Report errors on unused locals. */, + "noUnusedParameters": false /* Report errors on unused parameters. */, + "noImplicitReturns": true /* Report error when not all code paths in function return a value. */, + "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */, /* Module Resolution Options */ - "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ + "moduleResolution": "node" /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */, // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ - // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ + "paths": {} /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */, // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ // "typeRoots": [], /* List of folders to include type definitions from. */ // "types": [], /* Type declaration files to be included in compilation. */ - "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ - "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ + "allowSyntheticDefaultImports": true /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */, + "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ "forceConsistentCasingInFileNames": true, - "skipLibCheck": true, /* Don't check libs typings - due to https://github.com/prisma/graphql-request/issues/26 */ - + "skipLibCheck": true /* Don't check libs typings - due to https://github.com/prisma/graphql-request/issues/26 */, /* Source Map Options */ // "sourceRoot": "./", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ // "mapRoot": "./", /* Specify the location where debugger should locate map files instead of generated locations. */ // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ - /* Experimental Options */ - "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ - "emitDecoratorMetadata": true /* Enables experimental support for emitting type metadata for decorators. */ + "experimentalDecorators": true /* Enables experimental support for ES7 decorators. */, + "emitDecoratorMetadata": true /* Enables experimental support for emitting type metadata for decorators. */ }, - "include": [ - "./src", - "./tests" - ], - "exclude": [ - "./examples/apollo-client" - ] + "include": ["./src"], + "exclude": ["./examples/apollo-client"] } diff --git a/tslint.json b/tslint.json deleted file mode 100644 index ad85c31e8..000000000 --- a/tslint.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "defaultSeverity": "error", - "extends": ["tslint:recommended", "tslint-eslint-rules", "tslint-config-prettier"], - "rules": { - "adjacent-overload-signatures": true, - "ban-types": false, - "no-console": [false], - "no-namespace": false, - "object-literal-sort-keys": false, - "max-classes-per-file": false, - "member-access": [true, "no-public"], - "member-ordering": [ - true, - { - "order": [ - "public-static-field", - "protected-static-field", - "private-static-field", - - "public-instance-field", - "protected-instance-field", - "private-instance-field", - - "public-static-method", - "protected-static-method", - "private-static-method", - - "public-constructor", - "protected-constructor", - "private-constructor", - - "public-instance-method", - "protected-instance-method", - "private-instance-method" - ] - } - ], - "unified-signatures": false, - "interface-name": [true, "never-prefix"], - "ordered-imports": false, - "no-unused-expression": false, - "callable-types": false, - "variable-name": [ - true, - "ban-keywords", - "check-format", - "allow-leading-underscore", - "allow-pascal-case" - ], - "array-type": [true, "array-simple"] - } -} From 4c618c42f5ad3ef01681edeb813154f0f0108205 Mon Sep 17 00:00:00 2001 From: carlocorradini Date: Mon, 19 Dec 2022 18:56:48 +0100 Subject: [PATCH 002/226] internal(refactor): replaced gulp taks with npm scripts, ci verify with npm script --- .github/workflows/main.yml | 2 +- cspell.json | 11 +- gulpfile.ts | 210 -- package-lock.json | 4841 ++---------------------------------- package.json | 110 +- tsconfig.json | 2 +- tsconfig.package.json | 4 - 7 files changed, 291 insertions(+), 4889 deletions(-) delete mode 100644 gulpfile.ts delete mode 100644 tsconfig.package.json diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ed3921b9d..a3bdd5ed1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -30,7 +30,7 @@ jobs: - name: Check codebase run: | - npm run verify + npm run check - name: Run tests run: npm run test:ci diff --git a/cspell.json b/cspell.json index 7226f11b0..cabe8dcba 100644 --- a/cspell.json +++ b/cspell.json @@ -7,13 +7,6 @@ "@cspell/dict-npm/cspell-ext.json", "@cspell/dict-typescript/cspell-ext.json" ], - "ignorePaths": [ - "**/build/", - "**/dist/", - "**/coverage/", - "**/node_modules/" - ], - "words": [ - "middlewares" - ] + "ignorePaths": ["**/build/", "**/dist/", "**/coverage/", "**/node_modules/"], + "words": ["middlewares"] } diff --git a/gulpfile.ts b/gulpfile.ts deleted file mode 100644 index 0f8711d4b..000000000 --- a/gulpfile.ts +++ /dev/null @@ -1,210 +0,0 @@ -import { Gulpclass, MergedTask, SequenceTask, Task } from "gulpclass"; - -import gulp from "gulp"; -import del from "del"; -import shell from "gulp-shell"; -import replace from "gulp-replace"; -import ts from "gulp-typescript"; -// import tslint from "gulp-tslint"; -// const stylish = require("tslint-stylish"); -// const sourcemaps = require("gulp-sourcemaps"); -// const mocha = require("gulp-mocha"); -// const chai = require("chai"); -// const istanbul = require("gulp-istanbul"); -// const remapIstanbul = require("remap-istanbul/lib/gulpRemapIstanbul"); - -@Gulpclass() -export class Gulpfile { - // ------------------------------------------------------------------------- - // General tasks - // ------------------------------------------------------------------------- - - /** - * Cleans build folder. - */ - @Task() - clean(cb: del.Options) { - return del(["build/**"], cb); - } - - /** - * Runs typescript files compilation. - */ - @Task() - compile() { - return gulp.src("*.ts", { read: false }).pipe(shell(["tsc"])); - } - - // ------------------------------------------------------------------------- - // Packaging and Publishing tasks - // ------------------------------------------------------------------------- - - /** - * Publishes a package to npm from ./build/package directory. - */ - @Task() - npmPublish() { - return gulp.src("*.js", { read: false }).pipe(shell(["cd ./build/package && npm publish"])); - } - - /** - * Complies all sources to the package directory. - */ - @MergedTask() - packageCompile() { - const tsProject = ts.createProject("tsconfig.package.json"); - const tsResult = tsProject - .src() - // .pipe(sourcemaps.init()) - .pipe(tsProject()); - - return [ - tsResult.dts.pipe(gulp.dest("./build/package/dist")), - tsResult.js - // .pipe(sourcemaps.write(".", { sourceRoot: "", includeContent: true })) - .pipe(gulp.dest("./build/package/dist")), - ]; - } - - /** - * Copy over the browser-shim files instead of compiling them. - * The .js file supports ES5 and newer browsers. - * The .ts file supports Angular and other TypeScript projects. - */ - @MergedTask() - packageBrowserShim() { - return [ - gulp.src("./src/browser-shim.ts").pipe(gulp.dest("./build/package/dist")), - del(["./build/package/dist/browser-shim.d.ts"]), - ]; - } - - /** - * Moves all compiled files to the final package directory. - */ - // @Task() - // packageMoveCompiledFiles() { - // return gulp.src("./build/package/src/**/*").pipe(gulp.dest("./build/package/dist")); - // } - - /** - * Removes unnecessary files from final package directory. - */ - // @Task() - // packageClearCompileDirectory(cb: del.Options) { - // return del( - // ["./build/package/src/**", "./build/package/tests/**", "./build/package/examples/**"], - // cb, - // ); - // } - - /** - * Change the "private" state of the packaged package.json file to public. - */ - @Task() - packagePreparePackageFile() { - return gulp - .src("./package.json") - .pipe(replace('"private": true', '"private": false')) - .pipe(gulp.dest("./build/package")); - } - - /** - * This task will replace all typescript code blocks in the README - * (since npm does not support typescript syntax highlighting) - * and copy this README file into the package folder. - */ - @Task() - packageReadmeFile() { - return gulp - .src("./README.md") - .pipe(replace(/```ts([\s\S]*?)```/g, "```js$1```")) - .pipe(gulp.dest("./build/package")); - } - - /** - * Creates a package that can be published to npm. - */ - @SequenceTask() - package() { - return [ - "clean", - "packageCompile", - "packageBrowserShim", - // "packageMoveCompiledFiles", - // "packageClearCompileDirectory", - ["packagePreparePackageFile", "packageReadmeFile"], - ]; - } - - /** - * Creates a package and publishes it to npm. - */ - @SequenceTask() - publish() { - return ["package", "npmPublish"]; - } - - // ------------------------------------------------------------------------- - // Run tests tasks - // ------------------------------------------------------------------------- - - /** - * Runs ts linting to validate source code. - */ - // @Task() - // tslint() { - // return gulp - // .src(["./src/**/*.ts", "./test/**/*.ts", "./sample/**/*.ts"]) - // .pipe(tslint()) - // .pipe( - // tslint.report(stylish, { - // emitError: true, - // sort: true, - // bell: true, - // }), - // ); - // } - - /** - * Runs before test coverage, required step to perform a test coverage. - */ - // @Task() - // coveragePre() { - // return gulp - // .src(["./build/compiled/src/**/*.js"]) - // .pipe(istanbul()) - // .pipe(istanbul.hookRequire()); - // } - - /** - * Runs post coverage operations. - */ - // @Task("coveragePost", ["coveragePre"]) - // coveragePost() { - // chai.should(); - // // chai.use(require("sinon-chai")); - // // chai.use(require("chai-as-promised")); - - // return gulp - // .src(["./build/compiled/test/functional/**/*.js", "./build/compiled/test/issues/**/*.js"]) - // .pipe(mocha()) - // .pipe(istanbul.writeReports()); - // } - - // @Task() - // coverageRemap() { - // return gulp - // .src("./coverage/coverage-final.json") - // .pipe(remapIstanbul()) - // .pipe(gulp.dest("./coverage")); - // } - - /** - * Compiles the code and runs tests. - */ - // @SequenceTask() - // tests() { - // return ["clean", "compile", "coveragePost", "coverageRemap", "tslint"]; - // } -} diff --git a/package-lock.json b/package-lock.json index 80d75d6fe..a92e83f59 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,13 +40,10 @@ "@mikro-orm/core": "^4.4.4", "@mikro-orm/postgresql": "^4.4.4", "@typegoose/typegoose": "^7.4.8", - "@types/gulp": "^4.0.8", - "@types/gulp-replace": "0.0.31", "@types/ioredis": "^4.22.0", "@types/jest": "^29.2.4", "@types/mongoose": "^5.10.3", "@types/node": "^14.14.31", - "@types/rimraf": "^3.0.0", "@typescript-eslint/eslint-plugin": "^5.46.1", "@typescript-eslint/parser": "^5.46.1", "apollo-cache-control": "^0.11.6", @@ -54,7 +51,6 @@ "apollo-server-plugin-response-cache": "^0.6.0", "class-validator": "^0.13.1", "cspell": "^6.17.0", - "del": "^6.0.0", "eslint": "^8.30.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-config-airbnb-typescript": "^17.0.0", @@ -67,10 +63,6 @@ "graphql": "^15.5.0", "graphql-redis-subscriptions": "^2.3.1", "graphql-tag": "^2.11.0", - "gulp-replace": "^1.0.0", - "gulp-shell": "^0.8.0", - "gulp-typescript": "^5.0.1", - "gulpclass": "^0.2.0", "husky": "^8.0.2", "ioredis": "^4.23.0", "jest": "^29.3.1", @@ -83,7 +75,7 @@ "prettier": "^2.2.1", "prettier-plugin-sh": "^0.12.8", "reflect-metadata": "^0.1.13", - "rimraf": "^3.0.2", + "shx": "^0.3.4", "ts-jest": "^29.0.3", "ts-node": "^9.1.1", "typedi": "^0.10.0", @@ -2532,12 +2524,6 @@ "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", "dev": true }, - "node_modules/@types/expect": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz", - "integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==", - "dev": true - }, "node_modules/@types/express": { "version": "4.17.7", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.7.tgz", @@ -2579,16 +2565,6 @@ "@types/node": "*" } }, - "node_modules/@types/glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha512-RHv6ZQjcTncXo3thYZrsbAVwoy4vSKosSWhuhuQxLOTv74OJuFQxXkmUuZCr3q9uNBEVCvIzmZL/FeRNbHZGUg==", - "dev": true, - "dependencies": { - "@types/glob": "*", - "@types/node": "*" - } - }, "node_modules/@types/graceful-fs": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", @@ -2598,26 +2574,6 @@ "@types/node": "*" } }, - "node_modules/@types/gulp": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@types/gulp/-/gulp-4.0.8.tgz", - "integrity": "sha512-RIhiptRwikdFMICikX+Kn8duKR4R7yO2CKMhkcIfvUwZ3UJSjHlvhHDJ2DsurJWETePqdjteO9MLRtObuCt7Sw==", - "dev": true, - "dependencies": { - "@types/undertaker": "*", - "@types/vinyl-fs": "*", - "chokidar": "^3.3.1" - } - }, - "node_modules/@types/gulp-replace": { - "version": "0.0.31", - "resolved": "https://registry.npmjs.org/@types/gulp-replace/-/gulp-replace-0.0.31.tgz", - "integrity": "sha512-dbgQ1u0N9ShXrzahBgQfMSu6qUh8nlTLt7whhQ0S0sEUHhV3scysppJ1UX0fl53PJENgAL99ueykddyrCaDt7g==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/http-assert": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.1.tgz", @@ -2754,15 +2710,6 @@ "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==", "dev": true }, - "node_modules/@types/merge2": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@types/merge2/-/merge2-1.3.0.tgz", - "integrity": "sha512-3xFWjsGhm5GCVlRrcrrVr9oapPxpbG5M3G/4JGF+Gra++7DWoeDOQphCEhyMpbpbptD3w/4PesYIMby/yHrzkQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/mime": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", @@ -2832,16 +2779,6 @@ "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==", "dev": true }, - "node_modules/@types/rimraf": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/rimraf/-/rimraf-3.0.0.tgz", - "integrity": "sha512-7WhJ0MdpFgYQPXlF4Dx+DhgvlPCfz/x5mHaeDQAKhcenvQP1KCpLQ18JklAqeGMYSAT2PxLpzd0g2/HE7fj7hQ==", - "dev": true, - "dependencies": { - "@types/glob": "*", - "@types/node": "*" - } - }, "node_modules/@types/semver": { "version": "7.3.13", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", @@ -2863,50 +2800,12 @@ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, - "node_modules/@types/undertaker": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@types/undertaker/-/undertaker-1.2.6.tgz", - "integrity": "sha512-sG5MRcsWRokQXtj94uCqPxReXldm4ZvXif34YthgHEpzipcBAFTg+4IoWFcvdA0hGM1KdpPj2efdzcD2pETqQA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/undertaker-registry": "*", - "async-done": "~1.3.2" - } - }, - "node_modules/@types/undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha512-Z4TYuEKn9+RbNVk1Ll2SS4x1JeLHecolIbM/a8gveaHsW0Hr+RQMraZACwTO2VD7JvepgA6UO1A1VrbktQrIbQ==", - "dev": true - }, "node_modules/@types/validator": { "version": "13.1.3", "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.1.3.tgz", "integrity": "sha512-DaOWN1zf7j+8nHhqXhIgNmS+ltAC53NXqGxYuBhWqWgqolRhddKzfZU814lkHQSTG0IUfQxU7Cg0gb8fFWo2mA==", "dev": true }, - "node_modules/@types/vinyl": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.4.tgz", - "integrity": "sha512-2o6a2ixaVI2EbwBPg1QYLGQoHK56p/8X/sGfKbFC8N6sY9lfjsMf/GprtkQkSya0D4uRiutRZ2BWj7k3JvLsAQ==", - "dev": true, - "dependencies": { - "@types/expect": "^1.20.4", - "@types/node": "*" - } - }, - "node_modules/@types/vinyl-fs": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/@types/vinyl-fs/-/vinyl-fs-2.4.11.tgz", - "integrity": "sha512-2OzQSfIr9CqqWMGqmcERE6Hnd2KY3eBVtFaulVo3sJghplUcaeMdL9ZjEiljcQQeHjheWY9RlNmumjIAvsBNaA==", - "dev": true, - "dependencies": { - "@types/glob-stream": "*", - "@types/node": "*", - "@types/vinyl": "*" - } - }, "node_modules/@types/ws": { "version": "7.4.0", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.0.tgz", @@ -3489,18 +3388,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", - "dev": true, - "dependencies": { - "ansi-wrap": "0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -3525,15 +3412,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", @@ -3908,24 +3786,6 @@ "node": ">= 6.0.0" } }, - "node_modules/append-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", - "dev": true, - "dependencies": { - "buffer-equal": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, "node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", @@ -3950,18 +3810,6 @@ "node": ">=0.10.0" } }, - "node_modules/arr-filter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", - "dev": true, - "dependencies": { - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", @@ -3971,18 +3819,6 @@ "node": ">=0.10.0" } }, - "node_modules/arr-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", - "dev": true, - "dependencies": { - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", @@ -4026,49 +3862,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-initial": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", - "dev": true, - "dependencies": { - "array-slice": "^1.0.0", - "is-number": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-initial/node_modules/is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-last": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", - "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", - "dev": true, - "dependencies": { - "is-number": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-last/node_modules/is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array-slice": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", @@ -4078,20 +3871,6 @@ "node": ">=0.10.0" } }, - "node_modules/array-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", - "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", - "dev": true, - "dependencies": { - "default-compare": "^1.0.0", - "get-value": "^2.0.6", - "kind-of": "^5.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array-timsort": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", @@ -4152,27 +3931,6 @@ "node": ">=8" } }, - "node_modules/async-done": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", - "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.2", - "process-nextick-args": "^2.0.0", - "stream-exhaust": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true - }, "node_modules/async-limiter": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", @@ -4188,18 +3946,6 @@ "retry": "0.12.0" } }, - "node_modules/async-settle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", - "dev": true, - "dependencies": { - "async-done": "^1.2.2" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -4340,26 +4086,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/bach": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", - "dev": true, - "dependencies": { - "arr-filter": "^1.1.1", - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "array-each": "^1.0.0", - "array-initial": "^1.0.0", - "array-last": "^1.1.1", - "async-done": "^1.2.2", - "async-settle": "^1.0.0", - "now-and-later": "^2.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/backo2": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", @@ -4421,37 +4147,6 @@ } ] }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/binaryextensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.3.0.tgz", - "integrity": "sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==", - "dev": true, - "engines": { - "node": ">=0.8" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, "node_modules/bl": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", @@ -4614,15 +4309,6 @@ "ieee754": "^1.1.13" } }, - "node_modules/buffer-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", - "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", @@ -4772,19 +4458,6 @@ } ] }, - "node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/char-regex": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", @@ -4794,27 +4467,6 @@ "node": ">=10" } }, - "node_modules/chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.1" - } - }, "node_modules/chownr": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", @@ -5114,183 +4766,63 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", "dev": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" + "engines": { + "node": ">=0.8" } }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "node_modules/cluster-key-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz", + "integrity": "sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, "engines": { - "node": ">=0.10.0" + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" } }, - "node_modules/cliui/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "ansi-regex": "^2.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true - }, - "node_modules/cloneable-readable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", - "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" - } - }, - "node_modules/cluster-key-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz", - "integrity": "sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "node_modules/collection-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", - "dev": true, - "dependencies": { - "arr-map": "^2.0.2", - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "node": ">=7.0.0" } }, "node_modules/color-name": { @@ -5299,15 +4831,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, - "bin": { - "color-support": "bin.js" - } - }, "node_modules/colorette": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", @@ -5368,21 +4891,6 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, "node_modules/configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", @@ -5460,16 +4968,6 @@ "node": ">=0.10.0" } }, - "node_modules/copy-props": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz", - "integrity": "sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==", - "dev": true, - "dependencies": { - "each-props": "^1.3.0", - "is-plain-object": "^2.0.1" - } - }, "node_modules/core-js": { "version": "3.8.2", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.2.tgz", @@ -5996,16 +5494,6 @@ "integrity": "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4=", "dev": true }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -6015,15 +5503,6 @@ "ms": "2.0.0" } }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", @@ -6063,27 +5542,6 @@ "node": ">=0.10.0" } }, - "node_modules/default-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", - "dev": true, - "dependencies": { - "kind-of": "^5.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", @@ -6122,28 +5580,6 @@ "node": ">=0.10.0" } }, - "node_modules/del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", - "dev": true, - "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -6273,37 +5709,6 @@ "node": ">=8" } }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.1", - "object.defaults": "^1.1.0" - } - }, - "node_modules/editions": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.4.tgz", - "integrity": "sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -6492,50 +5897,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "dev": true, - "dependencies": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dev": true, - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -7583,21 +6944,6 @@ "node": ">= 0.10.0" } }, - "node_modules/ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", - "dev": true, - "dependencies": { - "type": "^2.0.0" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.3.0.tgz", - "integrity": "sha512-rgPIqOdfK/4J9FhiVrZ3cveAjRRo5rsQBAIhnylX874y1DX/kEKSVdLsnuHB6l1KTjHyU01VjiMBHgU2adejyg==", - "dev": true - }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -7669,21 +7015,6 @@ "node": ">=0.10.0" } }, - "node_modules/fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", - "dev": true, - "dependencies": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -7784,13 +7115,6 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -8032,16 +7356,6 @@ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, - "node_modules/flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, "node_modules/for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", @@ -8152,29 +7466,6 @@ "node": ">= 8" } }, - "node_modules/fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "through2": "^2.0.3" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/fs-mkdirp-stream/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -8245,12 +7536,6 @@ "node": ">=6.9.0" } }, - "node_modules/get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, "node_modules/get-intrinsic": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", @@ -8378,348 +7663,27 @@ "node": ">= 6" } }, - "node_modules/glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", + "node_modules/global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", "dev": true, "dependencies": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", - "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" + "ini": "^1.3.4" }, "engines": { - "node": ">= 0.10" - } - }, - "node_modules/glob-stream/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "node": ">=4" } }, - "node_modules/glob-stream/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", "dev": true, "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", - "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", - "dev": true, - "dependencies": { - "anymatch": "^2.0.0", - "async-done": "^1.2.0", - "chokidar": "^2.0.0", - "is-negated-glob": "^1.0.0", - "just-debounce": "^1.0.0", - "normalize-path": "^3.0.0", - "object.defaults": "^1.1.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/glob-watcher/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/glob-watcher/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", - "dev": true, - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/glob-watcher/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/glob-watcher/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/glob-watcher/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/micromatch/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/glob-watcher/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", - "dev": true, - "dependencies": { - "ini": "^1.3.4" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" }, "engines": { "node": ">=0.10.0" @@ -8794,18 +7758,6 @@ "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", "dev": true }, - "node_modules/glogg": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", - "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", - "dev": true, - "dependencies": { - "sparkles": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", @@ -8939,159 +7891,6 @@ "uuid": "bin/uuid" } }, - "node_modules/gulp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", - "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", - "dev": true, - "dependencies": { - "glob-watcher": "^5.0.3", - "gulp-cli": "^2.2.0", - "undertaker": "^1.2.1", - "vinyl-fs": "^3.0.0" - }, - "bin": { - "gulp": "bin/gulp.js" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/gulp-cli": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", - "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", - "dev": true, - "dependencies": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.4.0", - "isobject": "^3.0.1", - "liftoff": "^3.1.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.2.0", - "yargs": "^7.1.0" - }, - "bin": { - "gulp": "bin/gulp.js" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/gulp-cli/node_modules/ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "dependencies": { - "ansi-wrap": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-replace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulp-replace/-/gulp-replace-1.0.0.tgz", - "integrity": "sha512-lgdmrFSI1SdhNMXZQbrC75MOl1UjYWlOWNbNRnz+F/KHmgxt3l6XstBoAYIdadwETFyG/6i+vWUSCawdC3pqOw==", - "dev": true, - "dependencies": { - "istextorbinary": "2.2.1", - "readable-stream": "^2.0.1", - "replacestream": "^4.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/gulp-shell": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/gulp-shell/-/gulp-shell-0.8.0.tgz", - "integrity": "sha512-wHNCgmqbWkk1c6Gc2dOL5SprcoeujQdeepICwfQRo91DIylTE7a794VEE+leq3cE2YDoiS5ulvRfKVIEMazcTQ==", - "dev": true, - "dependencies": { - "chalk": "^3.0.0", - "fancy-log": "^1.3.3", - "lodash.template": "^4.5.0", - "plugin-error": "^1.0.1", - "through2": "^3.0.1", - "tslib": "^1.10.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/gulp-shell/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/gulp-typescript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/gulp-typescript/-/gulp-typescript-5.0.1.tgz", - "integrity": "sha512-YuMMlylyJtUSHG1/wuSVTrZp60k1dMEFKYOvDf7OvbAJWrDtxxD4oZon4ancdWwzjj30ztiidhe4VXJniF0pIQ==", - "dev": true, - "dependencies": { - "ansi-colors": "^3.0.5", - "plugin-error": "^1.0.1", - "source-map": "^0.7.3", - "through2": "^3.0.0", - "vinyl": "^2.1.0", - "vinyl-fs": "^3.0.3" - }, - "engines": { - "node": ">= 8" - }, - "peerDependencies": { - "typescript": "~2.7.1 || >=2.8.0-dev || >=2.9.0-dev || ~3.0.0 || >=3.0.0-dev || >=3.1.0-dev || >= 3.2.0-dev || >= 3.3.0-dev" - } - }, - "node_modules/gulp-typescript/node_modules/ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/gulpclass": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/gulpclass/-/gulpclass-0.2.0.tgz", - "integrity": "sha512-S2p0SgnVLjBbIEw5tHbBV6Wm6abD+leA5xZG6ukf9M+j1I/8zIeKPby9GLWnI90671YRk+lXbvEUROKaZXo8NA==", - "dev": true, - "dependencies": { - "@types/gulp": "^4.0.5", - "@types/merge2": "^1.1.4", - "@types/node": "*", - "gulp": "^4.0.0", - "merge2": "^1.2.2" - } - }, - "node_modules/gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "dev": true, - "dependencies": { - "glogg": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -9275,12 +8074,6 @@ "node": ">=0.10.0" } }, - "node_modules/hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -9558,15 +8351,6 @@ "node": ">= 0.10" } }, - "node_modules/invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/ioredis": { "version": "4.23.0", "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-4.23.0.tgz", @@ -9691,18 +8475,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/is-boolean-object": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", @@ -9910,15 +8682,6 @@ "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", "dev": true }, - "node_modules/is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", @@ -9964,15 +8727,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -10100,21 +8854,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "node_modules/is-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-valid-path": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", @@ -10288,20 +9027,6 @@ "node": ">=8" } }, - "node_modules/istextorbinary": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.2.1.tgz", - "integrity": "sha512-TS+hoFl8Z5FAFMK38nhBkdLt44CclNRgDHWeMgsV8ko3nDlr/9UI2Sf839sW7enijf8oKsZYXRvM8g0it9Zmcw==", - "dev": true, - "dependencies": { - "binaryextensions": "2", - "editions": "^1.3.3", - "textextensions": "2" - }, - "engines": { - "node": ">=0.12" - } - }, "node_modules/iterall": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", @@ -11638,12 +10363,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/just-debounce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", - "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=", - "dev": true - }, "node_modules/kareem": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.1.tgz", @@ -11756,55 +10475,6 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/last-run": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", - "dev": true, - "dependencies": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "dependencies": { - "invert-kv": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", - "dev": true, - "dependencies": { - "flush-write-stream": "^1.0.2" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -11935,69 +10605,29 @@ "log-update": "^4.0.0", "p-map": "^4.0.0", "rxjs": "^6.6.3", - "through": "^2.3.8" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" - } - }, - "node_modules/listr2/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "dependencies": { - "error-ex": "^1.2.0" + "through": "^2.3.8" }, "engines": { - "node": ">=0.10.0" + "node": ">=10.0.0" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" } }, - "node_modules/load-json-file/node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "node_modules/listr2/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "dependencies": { - "is-utf8": "^0.2.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/locate-path": { @@ -12018,12 +10648,6 @@ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", "dev": true }, - "node_modules/lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true - }, "node_modules/lodash.defaults": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", @@ -12059,25 +10683,6 @@ "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", "dev": true }, - "node_modules/lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "dev": true, - "dependencies": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "node_modules/lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", - "dev": true, - "dependencies": { - "lodash._reinterpolate": "^3.0.0" - } - }, "node_modules/lodash.xorby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.xorby/-/lodash.xorby-4.7.0.tgz", @@ -12446,187 +11051,6 @@ "node": ">=12" } }, - "node_modules/matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", - "dev": true, - "dependencies": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/matchdep/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "dev": true, - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/matchdep/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/mdurl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", @@ -13021,15 +11445,6 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "node_modules/mute-stdout": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", - "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/mvdan-sh": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/mvdan-sh/-/mvdan-sh-0.10.1.tgz", @@ -13047,13 +11462,6 @@ "thenify-all": "^1.0.0" } }, - "node_modules/nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "dev": true, - "optional": true - }, "node_modules/nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", @@ -13106,12 +11514,6 @@ "node": ">= 0.6" } }, - "node_modules/next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - }, "node_modules/node-fetch": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", @@ -13133,27 +11535,6 @@ "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", "dev": true }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -13163,18 +11544,6 @@ "node": ">=0.10.0" } }, - "node_modules/now-and-later": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", - "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", - "dev": true, - "dependencies": { - "once": "^1.3.2" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -13187,15 +11556,6 @@ "node": ">=8" } }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -13418,19 +11778,6 @@ "node": ">=0.10.0" } }, - "node_modules/object.reduce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", - "dev": true, - "dependencies": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object.values": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", @@ -13485,40 +11832,19 @@ }, "node_modules/open": { "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", - "dev": true, - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.1" - } - }, - "node_modules/os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", "dev": true, "dependencies": { - "lcid": "^1.0.0" + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-limit": { @@ -13646,15 +11972,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", @@ -13703,12 +12020,6 @@ "node": ">=0.10.0" } }, - "node_modules/path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -13876,36 +12187,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/pirates": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", @@ -13936,33 +12217,6 @@ "semver-compare": "^1.0.0" } }, - "node_modules/plugin-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", - "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", - "dev": true, - "dependencies": { - "ansi-colors": "^1.0.1", - "arr-diff": "^4.0.0", - "arr-union": "^3.1.0", - "extend-shallow": "^3.0.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/plugin-error/node_modules/ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "dependencies": { - "ansi-wrap": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -14111,15 +12365,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -14190,27 +12435,6 @@ "once": "^1.3.1" } }, - "node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/pumpify/node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "node_modules/punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", @@ -14316,18 +12540,6 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", @@ -14421,49 +12633,6 @@ "url": "https://github.com/sponsors/mysticatea" } }, - "node_modules/remove-bom-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", - "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5", - "is-utf8": "^0.2.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/remove-bom-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", - "dev": true, - "dependencies": { - "remove-bom-buffer": "^3.0.0", - "safe-buffer": "^5.1.0", - "through2": "^2.0.3" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/remove-bom-stream/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, "node_modules/repeat-element": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", @@ -14482,40 +12651,6 @@ "node": ">=0.10" } }, - "node_modules/replace-ext": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/replace-homedir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", - "dev": true, - "dependencies": { - "homedir-polyfill": "^1.0.1", - "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/replacestream": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/replacestream/-/replacestream-4.0.3.tgz", - "integrity": "sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.3", - "object-assign": "^4.0.1", - "readable-stream": "^2.0.2" - } - }, "node_modules/require_optional": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", @@ -14553,12 +12688,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, "node_modules/resolve": { "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", @@ -14631,18 +12760,6 @@ "node": ">=8" } }, - "node_modules/resolve-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", - "dev": true, - "dependencies": { - "value-or-function": "^3.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", @@ -14854,18 +12971,6 @@ "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", "dev": true }, - "node_modules/semver-greatest-satisfied-range": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", - "dev": true, - "dependencies": { - "sver-compat": "^1.5.0" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -14927,12 +13032,6 @@ "node": ">= 0.8.0" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, "node_modules/set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", @@ -15024,6 +13123,39 @@ "node": ">=8" } }, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dev": true, + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/shx": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", + "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", + "dev": true, + "dependencies": { + "minimist": "^1.2.3", + "shelljs": "^0.8.5" + }, + "bin": { + "shx": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -15319,15 +13451,6 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, "node_modules/source-map-resolve": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", @@ -15366,15 +13489,6 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, - "node_modules/sparkles": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/sparse-bitfield": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", @@ -15385,38 +13499,6 @@ "memory-pager": "^1.0.2" } }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", - "dev": true - }, "node_modules/split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -15479,15 +13561,6 @@ "node": ">= 8" } }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", @@ -15621,18 +13694,6 @@ "npm": ">=6" } }, - "node_modules/stream-exhaust": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", - "dev": true - }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, "node_modules/streamsearch": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", @@ -15820,16 +13881,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/sver-compat": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", - "dev": true, - "dependencies": { - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, "node_modules/symbol-observable": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", @@ -15916,18 +13967,6 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, - "node_modules/textextensions": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.6.0.tgz", - "integrity": "sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==", - "dev": true, - "engines": { - "node": ">=0.8" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", @@ -15955,36 +13994,6 @@ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, - "node_modules/through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" - } - }, - "node_modules/through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", - "dev": true, - "dependencies": { - "through2": "~2.0.0", - "xtend": "~4.0.0" - } - }, - "node_modules/through2-filter/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, "node_modules/tildify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz", @@ -15994,15 +14003,6 @@ "node": ">=8" } }, - "node_modules/time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/tiny-glob": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", @@ -16013,25 +14013,12 @@ "globrex": "^0.1.2" } }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "node_modules/to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", - "dev": true, - "dependencies": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -16092,28 +14079,6 @@ "node": ">=8.0" } }, - "node_modules/to-through": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", - "dev": true, - "dependencies": { - "through2": "^2.0.3" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/to-through/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, "node_modules/toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", @@ -16254,12 +14219,6 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true - }, "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -16294,12 +14253,6 @@ "node": ">= 0.6" } }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", @@ -16507,42 +14460,6 @@ "node": ">=0.10.0" } }, - "node_modules/undertaker": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", - "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "bach": "^1.0.0", - "collection-map": "^1.0.0", - "es6-weak-map": "^2.0.1", - "fast-levenshtein": "^1.0.0", - "last-run": "^1.1.0", - "object.defaults": "^1.0.0", - "object.reduce": "^1.0.0", - "undertaker-registry": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/undertaker/node_modules/fast-levenshtein": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", - "integrity": "sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk=", - "dev": true - }, "node_modules/union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", @@ -16585,16 +14502,6 @@ "imurmurhash": "^0.1.4" } }, - "node_modules/unique-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", - "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", - "dev": true, - "dependencies": { - "json-stable-stringify-without-jsonify": "^1.0.1", - "through2-filter": "^3.0.0" - } - }, "node_modules/unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", @@ -16673,16 +14580,6 @@ "node": ">=0.10.0" } }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true, - "engines": { - "node": ">=4", - "yarn": "*" - } - }, "node_modules/update-browserslist-db": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", @@ -16806,16 +14703,6 @@ "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=", "dev": true }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, "node_modules/validator": { "version": "13.5.2", "resolved": "https://registry.npmjs.org/validator/-/validator-13.5.2.tgz", @@ -16825,15 +14712,6 @@ "node": ">= 0.10" } }, - "node_modules/value-or-function": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -16843,91 +14721,6 @@ "node": ">= 0.8" } }, - "node_modules/vinyl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", - "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", - "dev": true, - "dependencies": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", - "dev": true, - "dependencies": { - "fs-mkdirp-stream": "^1.0.0", - "glob-stream": "^6.1.0", - "graceful-fs": "^4.0.0", - "is-valid-glob": "^1.0.0", - "lazystream": "^1.0.0", - "lead": "^1.0.0", - "object.assign": "^4.0.4", - "pumpify": "^1.3.5", - "readable-stream": "^2.3.3", - "remove-bom-buffer": "^3.0.0", - "remove-bom-stream": "^1.2.0", - "resolve-options": "^1.1.0", - "through2": "^2.0.0", - "to-through": "^2.0.0", - "value-or-function": "^3.0.0", - "vinyl": "^2.0.0", - "vinyl-sourcemap": "^1.1.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vinyl-fs/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/vinyl-sourcemap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", - "dev": true, - "dependencies": { - "append-buffer": "^1.0.2", - "convert-source-map": "^1.5.0", - "graceful-fs": "^4.1.6", - "normalize-path": "^2.1.1", - "now-and-later": "^2.0.0", - "remove-bom-buffer": "^3.0.0", - "vinyl": "^2.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vinyl-sourcemap/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/vscode-languageserver-textdocument": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz", @@ -16980,12 +14773,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -17097,12 +14884,6 @@ "node": ">=0.4" } }, - "node_modules/y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", - "dev": true - }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", @@ -17184,27 +14965,6 @@ "node": ">=0.8.0" } }, - "node_modules/yargs": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.1.tgz", - "integrity": "sha512-huO4Fr1f9PmiJJdll5kwoS2e4GqzGSsMT3PPMpOwoVkOK8ckqAewMTZyA6LXVQWflleb/Z8oPBEvNsMft0XE+g==", - "dev": true, - "dependencies": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "5.0.0-security.0" - } - }, "node_modules/yargs-parser": { "version": "20.2.6", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.6.tgz", @@ -17214,138 +14974,6 @@ "node": ">=10" } }, - "node_modules/yargs/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yargs/node_modules/camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yargs/node_modules/find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yargs/node_modules/path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "dependencies": { - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yargs/node_modules/path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yargs/node_modules/read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yargs/node_modules/read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yargs/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yargs/node_modules/yargs-parser": { - "version": "5.0.0-security.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0-security.0.tgz", - "integrity": "sha512-T69y4Ps64LNesYxeYGYPvfoMTt/7y1XtfpIslUeK4um+9Hu7hlGoRtaDLvdXb7+/tfq4opVa2HRY5xGip022rQ==", - "dev": true, - "dependencies": { - "camelcase": "^3.0.0", - "object.assign": "^4.1.0" - } - }, "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", @@ -19346,12 +16974,6 @@ "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", "dev": true }, - "@types/expect": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz", - "integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==", - "dev": true - }, "@types/express": { "version": "4.17.7", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.7.tgz", @@ -19393,16 +17015,6 @@ "@types/node": "*" } }, - "@types/glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha512-RHv6ZQjcTncXo3thYZrsbAVwoy4vSKosSWhuhuQxLOTv74OJuFQxXkmUuZCr3q9uNBEVCvIzmZL/FeRNbHZGUg==", - "dev": true, - "requires": { - "@types/glob": "*", - "@types/node": "*" - } - }, "@types/graceful-fs": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", @@ -19412,26 +17024,6 @@ "@types/node": "*" } }, - "@types/gulp": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@types/gulp/-/gulp-4.0.8.tgz", - "integrity": "sha512-RIhiptRwikdFMICikX+Kn8duKR4R7yO2CKMhkcIfvUwZ3UJSjHlvhHDJ2DsurJWETePqdjteO9MLRtObuCt7Sw==", - "dev": true, - "requires": { - "@types/undertaker": "*", - "@types/vinyl-fs": "*", - "chokidar": "^3.3.1" - } - }, - "@types/gulp-replace": { - "version": "0.0.31", - "resolved": "https://registry.npmjs.org/@types/gulp-replace/-/gulp-replace-0.0.31.tgz", - "integrity": "sha512-dbgQ1u0N9ShXrzahBgQfMSu6qUh8nlTLt7whhQ0S0sEUHhV3scysppJ1UX0fl53PJENgAL99ueykddyrCaDt7g==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/http-assert": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.1.tgz", @@ -19561,15 +17153,6 @@ "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==", "dev": true }, - "@types/merge2": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@types/merge2/-/merge2-1.3.0.tgz", - "integrity": "sha512-3xFWjsGhm5GCVlRrcrrVr9oapPxpbG5M3G/4JGF+Gra++7DWoeDOQphCEhyMpbpbptD3w/4PesYIMby/yHrzkQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/mime": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", @@ -19639,16 +17222,6 @@ "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==", "dev": true }, - "@types/rimraf": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/rimraf/-/rimraf-3.0.0.tgz", - "integrity": "sha512-7WhJ0MdpFgYQPXlF4Dx+DhgvlPCfz/x5mHaeDQAKhcenvQP1KCpLQ18JklAqeGMYSAT2PxLpzd0g2/HE7fj7hQ==", - "dev": true, - "requires": { - "@types/glob": "*", - "@types/node": "*" - } - }, "@types/semver": { "version": "7.3.13", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", @@ -19670,50 +17243,12 @@ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, - "@types/undertaker": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@types/undertaker/-/undertaker-1.2.6.tgz", - "integrity": "sha512-sG5MRcsWRokQXtj94uCqPxReXldm4ZvXif34YthgHEpzipcBAFTg+4IoWFcvdA0hGM1KdpPj2efdzcD2pETqQA==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/undertaker-registry": "*", - "async-done": "~1.3.2" - } - }, - "@types/undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha512-Z4TYuEKn9+RbNVk1Ll2SS4x1JeLHecolIbM/a8gveaHsW0Hr+RQMraZACwTO2VD7JvepgA6UO1A1VrbktQrIbQ==", - "dev": true - }, "@types/validator": { "version": "13.1.3", "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.1.3.tgz", "integrity": "sha512-DaOWN1zf7j+8nHhqXhIgNmS+ltAC53NXqGxYuBhWqWgqolRhddKzfZU814lkHQSTG0IUfQxU7Cg0gb8fFWo2mA==", "dev": true }, - "@types/vinyl": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.4.tgz", - "integrity": "sha512-2o6a2ixaVI2EbwBPg1QYLGQoHK56p/8X/sGfKbFC8N6sY9lfjsMf/GprtkQkSya0D4uRiutRZ2BWj7k3JvLsAQ==", - "dev": true, - "requires": { - "@types/expect": "^1.20.4", - "@types/node": "*" - } - }, - "@types/vinyl-fs": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/@types/vinyl-fs/-/vinyl-fs-2.4.11.tgz", - "integrity": "sha512-2OzQSfIr9CqqWMGqmcERE6Hnd2KY3eBVtFaulVo3sJghplUcaeMdL9ZjEiljcQQeHjheWY9RlNmumjIAvsBNaA==", - "dev": true, - "requires": { - "@types/glob-stream": "*", - "@types/node": "*", - "@types/vinyl": "*" - } - }, "@types/ws": { "version": "7.4.0", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.0.tgz", @@ -20105,20 +17640,11 @@ }, "ansi-escapes": { "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - } - }, - "ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", "dev": true, "requires": { - "ansi-wrap": "0.1.0" + "type-fest": "^0.11.0" } }, "ansi-regex": { @@ -20136,12 +17662,6 @@ "color-convert": "^2.0.1" } }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", - "dev": true - }, "any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", @@ -20440,21 +17960,6 @@ "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==", "dev": true }, - "append-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", - "dev": true, - "requires": { - "buffer-equal": "^1.0.0" - } - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, "arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", @@ -20476,30 +17981,12 @@ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, - "arr-filter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", - "dev": true, - "requires": { - "make-iterator": "^1.0.0" - } - }, "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, - "arr-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", - "dev": true, - "requires": { - "make-iterator": "^1.0.0" - } - }, "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", @@ -20531,58 +18018,12 @@ "is-string": "^1.0.7" } }, - "array-initial": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", - "dev": true, - "requires": { - "array-slice": "^1.0.0", - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } - } - }, - "array-last": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", - "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", - "dev": true, - "requires": { - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } - } - }, "array-slice": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", "dev": true }, - "array-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", - "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", - "dev": true, - "requires": { - "default-compare": "^1.0.0", - "get-value": "^2.0.6", - "kind-of": "^5.0.2" - } - }, "array-timsort": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", @@ -20625,24 +18066,6 @@ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, - "async-done": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", - "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.2", - "process-nextick-args": "^2.0.0", - "stream-exhaust": "^1.0.1" - } - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true - }, "async-limiter": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", @@ -20658,15 +18081,6 @@ "retry": "0.12.0" } }, - "async-settle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", - "dev": true, - "requires": { - "async-done": "^1.2.2" - } - }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -20773,23 +18187,6 @@ "babel-preset-current-node-syntax": "^1.0.0" } }, - "bach": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", - "dev": true, - "requires": { - "arr-filter": "^1.1.1", - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "array-each": "^1.0.0", - "array-initial": "^1.0.0", - "array-last": "^1.1.1", - "async-done": "^1.2.2", - "async-settle": "^1.0.0", - "now-and-later": "^2.0.0" - } - }, "backo2": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", @@ -20833,28 +18230,6 @@ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "binaryextensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.3.0.tgz", - "integrity": "sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==", - "dev": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, "bl": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", @@ -20974,12 +18349,6 @@ "ieee754": "^1.1.13" } }, - "buffer-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", - "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", - "dev": true - }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", @@ -21094,38 +18463,12 @@ "integrity": "sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A==", "dev": true }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "char-regex": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true }, - "chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", - "dev": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - } - }, "chownr": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", @@ -21356,93 +18699,12 @@ "string-width": "^4.2.0" } }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - } - } - } - }, "clone": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", "dev": true }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", - "dev": true - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true - }, - "cloneable-readable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", - "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" - } - }, "cluster-key-slot": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz", @@ -21455,29 +18717,12 @@ "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, "collect-v8-coverage": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", "dev": true }, - "collection-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", - "dev": true, - "requires": { - "arr-map": "^2.0.2", - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", @@ -21503,12 +18748,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true - }, "colorette": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", @@ -21562,18 +18801,6 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, "configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", @@ -21636,16 +18863,6 @@ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true }, - "copy-props": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz", - "integrity": "sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==", - "dev": true, - "requires": { - "each-props": "^1.3.0", - "is-plain-object": "^2.0.1" - } - }, "core-js": { "version": "3.8.2", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.2.tgz", @@ -22046,16 +19263,6 @@ "integrity": "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4=", "dev": true }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -22065,12 +19272,6 @@ "ms": "2.0.0" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", @@ -22101,21 +19302,6 @@ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", "dev": true }, - "default-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", - "dev": true, - "requires": { - "kind-of": "^5.0.2" - } - }, - "default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", - "dev": true - }, "define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", @@ -22142,22 +19328,6 @@ "isobject": "^3.0.1" } }, - "del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", - "dev": true, - "requires": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - } - }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -22253,34 +19423,6 @@ "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==", "dev": true }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.1", - "object.defaults": "^1.1.0" - } - }, - "editions": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.4.tgz", - "integrity": "sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg==", - "dev": true - }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -22435,50 +19577,6 @@ "is-symbol": "^1.0.2" } }, - "es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "dev": true, - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dev": true, - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -23244,23 +20342,6 @@ "vary": "~1.1.2" } }, - "ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", - "dev": true, - "requires": { - "type": "^2.0.0" - }, - "dependencies": { - "type": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.3.0.tgz", - "integrity": "sha512-rgPIqOdfK/4J9FhiVrZ3cveAjRRo5rsQBAIhnylX874y1DX/kEKSVdLsnuHB6l1KTjHyU01VjiMBHgU2adejyg==", - "dev": true - } - } - }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -23319,18 +20400,6 @@ } } }, - "fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", - "dev": true, - "requires": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" - } - }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -23416,13 +20485,6 @@ "flat-cache": "^3.0.4" } }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -23621,16 +20683,6 @@ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, "for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", @@ -23714,28 +20766,6 @@ "minipass": "^3.0.0" } }, - "fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "through2": "^2.0.3" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -23784,12 +20814,6 @@ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, "get-intrinsic": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", @@ -23878,276 +20902,6 @@ "is-glob": "^4.0.1" } }, - "glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", - "dev": true, - "requires": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", - "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" - }, - "dependencies": { - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "glob-watcher": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", - "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-done": "^1.2.0", - "chokidar": "^2.0.0", - "is-negated-glob": "^1.0.0", - "just-debounce": "^1.0.0", - "normalize-path": "^3.0.0", - "object.defaults": "^1.1.0" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - } - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, "global-dirs": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", @@ -24224,15 +20978,6 @@ "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", "dev": true }, - "glogg": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", - "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", - "dev": true, - "requires": { - "sparkles": "^1.0.0" - } - }, "gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", @@ -24318,151 +21063,25 @@ }, "graphql-tools": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.8.tgz", - "integrity": "sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg==", - "dev": true, - "requires": { - "apollo-link": "^1.2.14", - "apollo-utilities": "^1.0.1", - "deprecated-decorator": "^0.1.6", - "iterall": "^1.1.3", - "uuid": "^3.1.0" - }, - "dependencies": { - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } - } - }, - "gulp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", - "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", - "dev": true, - "requires": { - "glob-watcher": "^5.0.3", - "gulp-cli": "^2.2.0", - "undertaker": "^1.2.1", - "vinyl-fs": "^3.0.0" - } - }, - "gulp-cli": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", - "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", - "dev": true, - "requires": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.4.0", - "isobject": "^3.0.1", - "liftoff": "^3.1.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.2.0", - "yargs": "^7.1.0" - }, - "dependencies": { - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "requires": { - "ansi-wrap": "^0.1.0" - } - } - } - }, - "gulp-replace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulp-replace/-/gulp-replace-1.0.0.tgz", - "integrity": "sha512-lgdmrFSI1SdhNMXZQbrC75MOl1UjYWlOWNbNRnz+F/KHmgxt3l6XstBoAYIdadwETFyG/6i+vWUSCawdC3pqOw==", - "dev": true, - "requires": { - "istextorbinary": "2.2.1", - "readable-stream": "^2.0.1", - "replacestream": "^4.0.0" - } - }, - "gulp-shell": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/gulp-shell/-/gulp-shell-0.8.0.tgz", - "integrity": "sha512-wHNCgmqbWkk1c6Gc2dOL5SprcoeujQdeepICwfQRo91DIylTE7a794VEE+leq3cE2YDoiS5ulvRfKVIEMazcTQ==", - "dev": true, - "requires": { - "chalk": "^3.0.0", - "fancy-log": "^1.3.3", - "lodash.template": "^4.5.0", - "plugin-error": "^1.0.1", - "through2": "^3.0.1", - "tslib": "^1.10.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "gulp-typescript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/gulp-typescript/-/gulp-typescript-5.0.1.tgz", - "integrity": "sha512-YuMMlylyJtUSHG1/wuSVTrZp60k1dMEFKYOvDf7OvbAJWrDtxxD4oZon4ancdWwzjj30ztiidhe4VXJniF0pIQ==", + "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.8.tgz", + "integrity": "sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg==", "dev": true, "requires": { - "ansi-colors": "^3.0.5", - "plugin-error": "^1.0.1", - "source-map": "^0.7.3", - "through2": "^3.0.0", - "vinyl": "^2.1.0", - "vinyl-fs": "^3.0.3" + "apollo-link": "^1.2.14", + "apollo-utilities": "^1.0.1", + "deprecated-decorator": "^0.1.6", + "iterall": "^1.1.3", + "uuid": "^3.1.0" }, "dependencies": { - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "dev": true } } }, - "gulpclass": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/gulpclass/-/gulpclass-0.2.0.tgz", - "integrity": "sha512-S2p0SgnVLjBbIEw5tHbBV6Wm6abD+leA5xZG6ukf9M+j1I/8zIeKPby9GLWnI90671YRk+lXbvEUROKaZXo8NA==", - "dev": true, - "requires": { - "@types/gulp": "^4.0.5", - "@types/merge2": "^1.1.4", - "@types/node": "*", - "gulp": "^4.0.0", - "merge2": "^1.2.2" - } - }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "dev": true, - "requires": { - "glogg": "^1.0.0" - } - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -24598,12 +21217,6 @@ "parse-passwd": "^1.0.0" } }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, "html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -24801,12 +21414,6 @@ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, "ioredis": { "version": "4.23.0", "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-4.23.0.tgz", @@ -24902,15 +21509,6 @@ "has-bigints": "^1.0.1" } }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, "is-boolean-object": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", @@ -25058,12 +21656,6 @@ "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", "dev": true }, - "is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", - "dev": true - }, "is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", @@ -25091,12 +21683,6 @@ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true - }, "is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -25185,18 +21771,6 @@ "unc-path-regex": "^0.1.2" } }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", - "dev": true - }, "is-valid-path": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", @@ -25330,17 +21904,6 @@ "istanbul-lib-report": "^3.0.0" } }, - "istextorbinary": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.2.1.tgz", - "integrity": "sha512-TS+hoFl8Z5FAFMK38nhBkdLt44CclNRgDHWeMgsV8ko3nDlr/9UI2Sf839sW7enijf8oKsZYXRvM8g0it9Zmcw==", - "dev": true, - "requires": { - "binaryextensions": "2", - "editions": "^1.3.3", - "textextensions": "2" - } - }, "iterall": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", @@ -26364,12 +22927,6 @@ "universalify": "^2.0.0" } }, - "just-debounce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", - "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=", - "dev": true - }, "kareem": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.1.tgz", @@ -26437,43 +22994,6 @@ } } }, - "last-run": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", - "dev": true, - "requires": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" - } - }, - "lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "dev": true, - "requires": { - "readable-stream": "^2.0.5" - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "requires": { - "invert-kv": "^1.0.0" - } - }, - "lead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", - "dev": true, - "requires": { - "flush-write-stream": "^1.0.2" - } - }, "leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -26595,39 +23115,6 @@ } } }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "dependencies": { - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - } - } - }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -26643,12 +23130,6 @@ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", "dev": true }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true - }, "lodash.defaults": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", @@ -26684,25 +23165,6 @@ "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", "dev": true }, - "lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "dev": true, - "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", - "dev": true, - "requires": { - "lodash._reinterpolate": "^3.0.0" - } - }, "lodash.xorby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.xorby/-/lodash.xorby-4.7.0.tgz", @@ -26899,251 +23361,101 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true } - } - }, - "markdownlint": { - "version": "0.26.2", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.26.2.tgz", - "integrity": "sha512-2Am42YX2Ex5SQhRq35HxYWDfz1NLEOZWWN25nqd2h3AHRKsGRE+Qg1gt1++exW792eXTrR4jCNHfShfWk9Nz8w==", - "dev": true, - "requires": { - "markdown-it": "13.0.1" - } - }, - "markdownlint-cli": { - "version": "0.32.2", - "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.32.2.tgz", - "integrity": "sha512-xmJT1rGueUgT4yGNwk6D0oqQr90UJ7nMyakXtqjgswAkEhYYqjHew9RY8wDbOmh2R270IWjuKSeZzHDEGPAUkQ==", - "dev": true, - "requires": { - "commander": "~9.4.0", - "get-stdin": "~9.0.0", - "glob": "~8.0.3", - "ignore": "~5.2.0", - "js-yaml": "^4.1.0", - "jsonc-parser": "~3.1.0", - "markdownlint": "~0.26.2", - "markdownlint-rule-helpers": "~0.17.2", - "minimatch": "~5.1.0", - "run-con": "~1.2.11" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "commander": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", - "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", - "dev": true - }, - "get-stdin": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", - "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", - "dev": true - }, - "glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "markdownlint-rule-helpers": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.17.2.tgz", - "integrity": "sha512-XaeoW2NYSlWxMCZM2B3H7YTG6nlaLfkEZWMBhr4hSPlq9MuY2sy83+Xr89jXOqZMZYjvi5nBCGoFh7hHoPKZmA==", - "dev": true - }, - "matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", - "dev": true, - "requires": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } + } + }, + "markdownlint": { + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.26.2.tgz", + "integrity": "sha512-2Am42YX2Ex5SQhRq35HxYWDfz1NLEOZWWN25nqd2h3AHRKsGRE+Qg1gt1++exW792eXTrR4jCNHfShfWk9Nz8w==", + "dev": true, + "requires": { + "markdown-it": "13.0.1" + } + }, + "markdownlint-cli": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.32.2.tgz", + "integrity": "sha512-xmJT1rGueUgT4yGNwk6D0oqQr90UJ7nMyakXtqjgswAkEhYYqjHew9RY8wDbOmh2R270IWjuKSeZzHDEGPAUkQ==", + "dev": true, + "requires": { + "commander": "~9.4.0", + "get-stdin": "~9.0.0", + "glob": "~8.0.3", + "ignore": "~5.2.0", + "js-yaml": "^4.1.0", + "jsonc-parser": "~3.1.0", + "markdownlint": "~0.26.2", + "markdownlint-rule-helpers": "~0.17.2", + "minimatch": "~5.1.0", + "run-con": "~1.2.11" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" + "balanced-match": "^1.0.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "commander": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", + "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", "dev": true }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } + "get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "dev": true }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", "dev": true, "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" } }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "argparse": "^2.0.1" } }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "minimatch": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", + "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "brace-expansion": "^2.0.1" } } } }, + "markdownlint-rule-helpers": { + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.17.2.tgz", + "integrity": "sha512-XaeoW2NYSlWxMCZM2B3H7YTG6nlaLfkEZWMBhr4hSPlq9MuY2sy83+Xr89jXOqZMZYjvi5nBCGoFh7hHoPKZmA==", + "dev": true + }, "mdurl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", @@ -27427,12 +23739,6 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "mute-stdout": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", - "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", - "dev": true - }, "mvdan-sh": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/mvdan-sh/-/mvdan-sh-0.10.1.tgz", @@ -27450,13 +23756,6 @@ "thenify-all": "^1.0.0" } }, - "nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "dev": true, - "optional": true - }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", @@ -27502,12 +23801,6 @@ "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", "dev": true }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - }, "node-fetch": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", @@ -27526,41 +23819,12 @@ "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", "dev": true }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, - "now-and-later": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", - "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", - "dev": true, - "requires": { - "once": "^1.3.2" - } - }, "npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -27570,12 +23834,6 @@ "path-key": "^3.0.0" } }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -27742,16 +24000,6 @@ "isobject": "^3.0.1" } }, - "object.reduce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, "object.values": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", @@ -27800,24 +24048,6 @@ "is-wsl": "^2.2.0" } }, - "ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - } - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, - "requires": { - "lcid": "^1.0.0" - } - }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -27906,12 +24136,6 @@ "lines-and-columns": "^1.1.6" } }, - "parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true - }, "parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", @@ -27953,12 +24177,6 @@ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -28083,27 +24301,6 @@ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, "pirates": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", @@ -28128,29 +24325,6 @@ "semver-compare": "^1.0.0" } }, - "plugin-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", - "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", - "dev": true, - "requires": { - "ansi-colors": "^1.0.1", - "arr-diff": "^4.0.0", - "arr-union": "^3.1.0", - "extend-shallow": "^3.0.2" - }, - "dependencies": { - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "requires": { - "ansi-wrap": "^0.1.0" - } - } - } - }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -28256,12 +24430,6 @@ } } }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", - "dev": true - }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -28322,29 +24490,6 @@ "once": "^1.3.1" } }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", @@ -28423,15 +24568,6 @@ "util-deprecate": "~1.0.1" } }, - "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, "rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", @@ -28484,60 +24620,21 @@ "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==", "dev": true }, - "regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "remove-bom-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", - "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5", - "is-utf8": "^0.2.1" - } - }, - "remove-bom-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", - "dev": true, - "requires": { - "remove-bom-buffer": "^3.0.0", - "safe-buffer": "^5.1.0", - "through2": "^2.0.3" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" } }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, "repeat-element": { @@ -28552,34 +24649,6 @@ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, - "replace-ext": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", - "dev": true - }, - "replace-homedir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1", - "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" - } - }, - "replacestream": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/replacestream/-/replacestream-4.0.3.tgz", - "integrity": "sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.3", - "object-assign": "^4.0.1", - "readable-stream": "^2.0.2" - } - }, "require_optional": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", @@ -28610,12 +24679,6 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, "resolve": { "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", @@ -28669,15 +24732,6 @@ "global-dirs": "^0.1.1" } }, - "resolve-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", - "dev": true, - "requires": { - "value-or-function": "^3.0.0" - } - }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", @@ -28850,15 +24904,6 @@ "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", "dev": true }, - "semver-greatest-satisfied-range": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", - "dev": true, - "requires": { - "sver-compat": "^1.5.0" - } - }, "send": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", @@ -28900,12 +24945,6 @@ "send": "0.17.1" } }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, "set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", @@ -28975,6 +25014,27 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, + "shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "shx": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", + "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", + "dev": true, + "requires": { + "minimist": "^1.2.3", + "shelljs": "^0.8.5" + } + }, "side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -29212,12 +25272,6 @@ } } }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - }, "source-map-resolve": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", @@ -29255,12 +25309,6 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, - "sparkles": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", - "dev": true - }, "sparse-bitfield": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", @@ -29271,38 +25319,6 @@ "memory-pager": "^1.0.2" } }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", - "dev": true - }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -29355,12 +25371,6 @@ "minipass": "^3.1.1" } }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", - "dev": true - }, "stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", @@ -29468,18 +25478,6 @@ "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", "dev": true }, - "stream-exhaust": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", - "dev": true - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, "streamsearch": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", @@ -29621,16 +25619,6 @@ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true }, - "sver-compat": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", - "dev": true, - "requires": { - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, "symbol-observable": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", @@ -29698,12 +25686,6 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, - "textextensions": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.6.0.tgz", - "integrity": "sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==", - "dev": true - }, "thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", @@ -29728,50 +25710,12 @@ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, - "through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" - } - }, - "through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", - "dev": true, - "requires": { - "through2": "~2.0.0", - "xtend": "~4.0.0" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, "tildify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz", "integrity": "sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==", "dev": true }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", - "dev": true - }, "tiny-glob": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", @@ -29788,16 +25732,6 @@ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true }, - "to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", - "dev": true, - "requires": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" - } - }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -29845,27 +25779,6 @@ "is-number": "^7.0.0" } }, - "to-through": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", - "dev": true, - "requires": { - "through2": "^2.0.3" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, "toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", @@ -29961,12 +25874,6 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true - }, "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -29989,12 +25896,6 @@ "mime-types": "~2.1.24" } }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, "typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", @@ -30153,38 +26054,6 @@ "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", "dev": true }, - "undertaker": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", - "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "bach": "^1.0.0", - "collection-map": "^1.0.0", - "es6-weak-map": "^2.0.1", - "fast-levenshtein": "^1.0.0", - "last-run": "^1.1.0", - "object.defaults": "^1.0.0", - "object.reduce": "^1.0.0", - "undertaker-registry": "^1.0.0" - }, - "dependencies": { - "fast-levenshtein": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", - "integrity": "sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk=", - "dev": true - } - } - }, - "undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", - "dev": true - }, "union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", @@ -30223,16 +26092,6 @@ "imurmurhash": "^0.1.4" } }, - "unique-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", - "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", - "dev": true, - "requires": { - "json-stable-stringify-without-jsonify": "^1.0.1", - "through2-filter": "^3.0.0" - } - }, "unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", @@ -30294,12 +26153,6 @@ } } }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true - }, "update-browserslist-db": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", @@ -30388,111 +26241,18 @@ "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=", "dev": true }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, "validator": { "version": "13.5.2", "resolved": "https://registry.npmjs.org/validator/-/validator-13.5.2.tgz", "integrity": "sha512-mD45p0rvHVBlY2Zuy3F3ESIe1h5X58GPfAtslBjY7EtTqGquZTj+VX/J4RnHWN8FKq0C9WRVt1oWAcytWRuYLQ==", "dev": true }, - "value-or-function": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", - "dev": true - }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true }, - "vinyl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", - "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", - "dev": true, - "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - } - }, - "vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", - "dev": true, - "requires": { - "fs-mkdirp-stream": "^1.0.0", - "glob-stream": "^6.1.0", - "graceful-fs": "^4.0.0", - "is-valid-glob": "^1.0.0", - "lazystream": "^1.0.0", - "lead": "^1.0.0", - "object.assign": "^4.0.4", - "pumpify": "^1.3.5", - "readable-stream": "^2.3.3", - "remove-bom-buffer": "^3.0.0", - "remove-bom-stream": "^1.2.0", - "resolve-options": "^1.1.0", - "through2": "^2.0.0", - "to-through": "^2.0.0", - "value-or-function": "^3.0.0", - "vinyl": "^2.0.0", - "vinyl-sourcemap": "^1.1.0" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "vinyl-sourcemap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", - "dev": true, - "requires": { - "append-buffer": "^1.0.2", - "convert-source-map": "^1.5.0", - "graceful-fs": "^4.1.6", - "normalize-path": "^2.1.1", - "now-and-later": "^2.0.0", - "remove-bom-buffer": "^3.0.0", - "vinyl": "^2.0.0" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, "vscode-languageserver-textdocument": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz", @@ -30536,12 +26296,6 @@ "is-symbol": "^1.0.3" } }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -30631,12 +26385,6 @@ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true }, - "y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", - "dev": true - }, "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", @@ -30702,131 +26450,6 @@ } } }, - "yargs": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.1.tgz", - "integrity": "sha512-huO4Fr1f9PmiJJdll5kwoS2e4GqzGSsMT3PPMpOwoVkOK8ckqAewMTZyA6LXVQWflleb/Z8oPBEvNsMft0XE+g==", - "dev": true, - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "5.0.0-security.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "yargs-parser": { - "version": "5.0.0-security.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0-security.0.tgz", - "integrity": "sha512-T69y4Ps64LNesYxeYGYPvfoMTt/7y1XtfpIslUeK4um+9Hu7hlGoRtaDLvdXb7+/tfq4opVa2HRY5xGip022rQ==", - "dev": true, - "requires": { - "camelcase": "^3.0.0", - "object.assign": "^4.1.0" - } - } - } - }, "yargs-parser": { "version": "20.2.6", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.6.tgz", diff --git a/package.json b/package.json index a740db1ad..adc67dbd1 100644 --- a/package.json +++ b/package.json @@ -1,31 +1,68 @@ { "name": "type-graphql", - "version": "0.0.0-unreleased", + "version": "2.0.0", + "private": false, + "description": "Create GraphQL schema and resolvers with TypeScript, using classes and decorators!", + "keywords": [ + "typescript", + "graphql", + "schema", + "resolvers", + "api", + "decorators", + "controllers", + "apollo" + ], + "homepage": "https://typegraphql.com", + "bugs": { + "url": "https://github.com/MichalLytek/type-graphql/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/MichalLytek/type-graphql.git" + }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/TypeGraphQL" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/typegraphql" + } + ], + "license": "MIT", "author": { "name": "Michał Lytek", "url": "https://github.com/MichalLytek" }, + "main": "./build/index.js", + "types": "./build/index.d.ts", + "files": [ + "build" + ], "scripts": { - "test": "jest --verbose --coverage", - "test:ci": "jest --verbose --coverage --ci --forceExit --detectOpenHandles --runInBand", - "test:watch": "jest --watch", + "build": "tsc --build tsconfig.json", + "build:watch": "tsc --build --watch tsconfig.json", "check": "npm run check:format && check:lint && check:markdown && npm run check:spell && npm run check:type", - "check:format": "prettier --check \"{src,tests,examples}/**/*.{ts,js}\" \"docs/**/*.md\"", + "check:format": "prettier --check .", "check:lint": "eslint .", "check:markdown": "markdownlint \"**/*.md\"", "check:spell": "cspell lint --config cspell.json --no-progress --show-context \"**\"", - "check:type": "tsc --noEmit && tsc --noEmit -p ./examples/tsconfig.json", + "check:type": "tsc --noEmit && tsc --noEmit --project ./examples/tsconfig.json", + "clean": "shx rm -rf build", + "docs": "npm run --prefix website start", "fix": "npm run fix:format && npm run fix:lint && npm run fix:markdown", "fix:format": "prettier --write .", "fix:lint": "eslint --fix .", "fix:markdown": "markdownlint --fix \"**/*.md\"", - "package": "gulp package", - "docs": "npm run --prefix website start", - "prepare": "husky install" - }, - "peerDependencies": { - "class-validator": ">=0.12.0", - "graphql": "^15.5.0" + "postbuild": "shx rm ./build/browser-shim.d.ts && shx cp ./src/browser-shim.ts ./build", + "prebuild": "npm run clean", + "prepare": "husky install", + "prepublishOnly": "npm run build", + "test": "jest --verbose --coverage", + "test:ci": "jest --verbose --coverage --ci --forceExit --detectOpenHandles --runInBand", + "test:watch": "jest --watch" }, "dependencies": { "@types/glob": "^7.1.3", @@ -49,13 +86,10 @@ "@mikro-orm/core": "^4.4.4", "@mikro-orm/postgresql": "^4.4.4", "@typegoose/typegoose": "^7.4.8", - "@types/gulp": "^4.0.8", - "@types/gulp-replace": "0.0.31", "@types/ioredis": "^4.22.0", "@types/jest": "^29.2.4", "@types/mongoose": "^5.10.3", "@types/node": "^14.14.31", - "@types/rimraf": "^3.0.0", "@typescript-eslint/eslint-plugin": "^5.46.1", "@typescript-eslint/parser": "^5.46.1", "apollo-cache-control": "^0.11.6", @@ -63,7 +97,6 @@ "apollo-server-plugin-response-cache": "^0.6.0", "class-validator": "^0.13.1", "cspell": "^6.17.0", - "del": "^6.0.0", "eslint": "^8.30.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-config-airbnb-typescript": "^17.0.0", @@ -76,10 +109,6 @@ "graphql": "^15.5.0", "graphql-redis-subscriptions": "^2.3.1", "graphql-tag": "^2.11.0", - "gulp-replace": "^1.0.0", - "gulp-shell": "^0.8.0", - "gulp-typescript": "^5.0.1", - "gulpclass": "^0.2.0", "husky": "^8.0.2", "ioredis": "^4.23.0", "jest": "^29.3.1", @@ -92,7 +121,7 @@ "prettier": "^2.2.1", "prettier-plugin-sh": "^0.12.8", "reflect-metadata": "^0.1.13", - "rimraf": "^3.0.2", + "shx": "^0.3.4", "ts-jest": "^29.0.3", "ts-node": "^9.1.1", "typedi": "^0.10.0", @@ -100,40 +129,11 @@ "typeorm-typedi-extensions": "^0.4.1", "typescript": "~4.2.2" }, - "main": "./dist/index.js", - "types": "./dist/index.d.ts", - "readmeFilename": "README.md", - "description": "Create GraphQL schema and resolvers with TypeScript, using classes and decorators!", - "license": "MIT", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/TypeGraphQL" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/typegraphql" - } - ], - "repository": { - "type": "git", - "url": "https://github.com/MichalLytek/type-graphql.git" - }, - "bugs": { - "url": "https://github.com/MichalLytek/type-graphql/issues" + "peerDependencies": { + "class-validator": ">=0.12.0", + "graphql": "^15.5.0" }, - "keywords": [ - "typescript", - "graphql", - "schema", - "resolvers", - "api", - "decorators", - "controllers", - "apollo" - ], "engines": { "node": ">= 10.13" - }, - "private": true + } } diff --git a/tsconfig.json b/tsconfig.json index 5504082de..a889d3d0f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -55,5 +55,5 @@ "emitDecoratorMetadata": true /* Enables experimental support for emitting type metadata for decorators. */ }, "include": ["./src"], - "exclude": ["./examples/apollo-client"] + "exclude": ["./node_modules", "./build"] } diff --git a/tsconfig.package.json b/tsconfig.package.json deleted file mode 100644 index 857937154..000000000 --- a/tsconfig.package.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extends": "./tsconfig.json", - "include": ["./src"] -} From aa89ad342d4d06be6b65602d43a7aef7f2f64d03 Mon Sep 17 00:00:00 2001 From: carlocorradini Date: Mon, 19 Dec 2022 19:12:54 +0100 Subject: [PATCH 003/226] refactor: use shelljs rm function instead of rimraf --- package-lock.json | 26 ++++++++++++++++++++++++-- package.json | 2 ++ tests/functional/emit-schema-sdl.ts | 6 +++--- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index a92e83f59..51333a4c9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "type-graphql", - "version": "0.0.0-unreleased", + "version": "2.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "type-graphql", - "version": "0.0.0-unreleased", + "version": "2.0.0", "funding": [ { "type": "github", @@ -44,6 +44,7 @@ "@types/jest": "^29.2.4", "@types/mongoose": "^5.10.3", "@types/node": "^14.14.31", + "@types/shelljs": "^0.8.11", "@typescript-eslint/eslint-plugin": "^5.46.1", "@typescript-eslint/parser": "^5.46.1", "apollo-cache-control": "^0.11.6", @@ -75,6 +76,7 @@ "prettier": "^2.2.1", "prettier-plugin-sh": "^0.12.8", "reflect-metadata": "^0.1.13", + "shelljs": "^0.8.5", "shx": "^0.3.4", "ts-jest": "^29.0.3", "ts-node": "^9.1.1", @@ -2794,6 +2796,16 @@ "@types/node": "*" } }, + "node_modules/@types/shelljs": { + "version": "0.8.11", + "resolved": "https://registry.npmjs.org/@types/shelljs/-/shelljs-0.8.11.tgz", + "integrity": "sha512-x9yaMvEh5BEaZKeVQC4vp3l+QoFj3BXcd4aYfuKSzIIyihjdVARAadYy3SMNIz0WCCdS2vB9JL/U6GQk5PaxQw==", + "dev": true, + "dependencies": { + "@types/glob": "*", + "@types/node": "*" + } + }, "node_modules/@types/stack-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", @@ -17237,6 +17249,16 @@ "@types/node": "*" } }, + "@types/shelljs": { + "version": "0.8.11", + "resolved": "https://registry.npmjs.org/@types/shelljs/-/shelljs-0.8.11.tgz", + "integrity": "sha512-x9yaMvEh5BEaZKeVQC4vp3l+QoFj3BXcd4aYfuKSzIIyihjdVARAadYy3SMNIz0WCCdS2vB9JL/U6GQk5PaxQw==", + "dev": true, + "requires": { + "@types/glob": "*", + "@types/node": "*" + } + }, "@types/stack-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", diff --git a/package.json b/package.json index adc67dbd1..998315148 100644 --- a/package.json +++ b/package.json @@ -90,6 +90,7 @@ "@types/jest": "^29.2.4", "@types/mongoose": "^5.10.3", "@types/node": "^14.14.31", + "@types/shelljs": "^0.8.11", "@typescript-eslint/eslint-plugin": "^5.46.1", "@typescript-eslint/parser": "^5.46.1", "apollo-cache-control": "^0.11.6", @@ -121,6 +122,7 @@ "prettier": "^2.2.1", "prettier-plugin-sh": "^0.12.8", "reflect-metadata": "^0.1.13", + "shelljs": "^0.8.5", "shx": "^0.3.4", "ts-jest": "^29.0.3", "ts-node": "^9.1.1", diff --git a/tests/functional/emit-schema-sdl.ts b/tests/functional/emit-schema-sdl.ts index edf9b77f2..d803e207a 100644 --- a/tests/functional/emit-schema-sdl.ts +++ b/tests/functional/emit-schema-sdl.ts @@ -2,7 +2,7 @@ import "reflect-metadata"; import { GraphQLSchema } from "graphql"; import fs from "fs"; import path from "path"; -import rimraf from "rimraf"; +import shelljs from "shelljs"; import { buildSchema, @@ -49,9 +49,9 @@ describe("Emitting schema definition file", () => { }); }); - afterEach(done => { + afterEach(() => { jest.restoreAllMocks(); - rimraf(TEST_DIR, done); + shelljs.rm("-rf", TEST_DIR); }); function checkSchemaSDL( From 0cbe80155e207586b85bb7f11ef261c026ac4c7e Mon Sep 17 00:00:00 2001 From: carlocorradini Date: Mon, 19 Dec 2022 19:28:01 +0100 Subject: [PATCH 004/226] refactor: contributing file is markdownlint compliant --- CONTRIBUTING.md | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 83a929231..f569f2542 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,3 +1,5 @@ + + # Contributing to TypeGraphQL We would love for you to contribute to TypeGraphQL and help make it even better than it is today! @@ -10,7 +12,7 @@ As a contributor, here are the guidelines we would like you to follow: - [Coding Rules](#rules) - [Commit Message Guidelines](#commit) -## Got a Question or Problem? +

Got a Question or Problem? Do not open issues for general support questions as we want to keep GitHub issues for bug reports and feature requests. @@ -18,12 +20,12 @@ Instead, consider using [Stack Overflow](https://stackoverflow.com/questions/tag You can also ask community for help using the [Github Discussion platform][discussions]. -## Found a Bug? +

Found a Bug? If you find a bug in the source code, you can help us by [submitting an issue](#submit-issue) to our [GitHub Repository][github]. Even better, you can [submit a Pull Request](#submit-pr) with a failing test case that reproduces the issue. -## Missing a Feature? +

Missing a Feature? You can _request_ a new feature by [submitting an issue](#submit-issue) to our GitHub Repository. @@ -34,15 +36,15 @@ If you would like to _implement_ a new feature, please consider the size of the - **Small Features** can be crafted and directly [submitted as a Pull Request](#submit-pr). -## Submission Guidelines +

Submission Guidelines -### Submitting an Issue +

Submitting an Issue Before you submit an issue, please search the issue tracker. An issue for your problem may already exist and the discussion might inform you of workarounds readily available. You can file new issues by selecting from our [new issue templates](https://github.com/MichalLytek/type-graphql/issues/new/choose) and filling out the issue template. -### Submitting a Pull Request (PR) +

Submitting a Pull Request (PR) Before you submit your Pull Request (PR) consider the following guidelines: @@ -97,7 +99,8 @@ If we ask for changes via code reviews then: That's it! Thank you for your contribution! -#### After your pull request is merged + +### After your pull request is merged After your pull request is merged, you can safely delete your branch and pull the changes from the main (upstream) repository: @@ -125,7 +128,7 @@ After your pull request is merged, you can safely delete your branch and pull th git pull --ff upstream master ``` -## Coding Rules +

Coding Rules To ensure consistency throughout the source code, keep these rules in mind as you are working: @@ -133,11 +136,10 @@ To ensure consistency throughout the source code, keep these rules in mind as yo - The code must pass type checking and fullfil all the TSLint rules. -## Commit Message Guidelines +

Commit Message Guidelines For more information checkout this [commit rules guide](https://www.conventionalcommits.org/en/v1.0.0/). [github]: https://github.com/MichalLytek/type-graphql [discussions]: https://github.com/MichalLytek/type-graphql/discussions -[stackoverflow]: https://stackoverflow.com/questions/tagged/typegraphql [allow-maintainer-edits]: https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/allowing-changes-to-a-pull-request-branch-created-from-a-fork#enabling-repository-maintainer-permissions-on-existing-pull-requests From 1a7fc7ac7229df4c62d18f6c12d1bf369657fcbc Mon Sep 17 00:00:00 2001 From: carlocorradini Date: Mon, 19 Dec 2022 19:29:16 +0100 Subject: [PATCH 005/226] refactor: updated license year --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index a162db387..0f5500cbb 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2018-2021 Michał Lytek +Copyright (c) 2018-2023 Michał Lytek Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From bc69836145404bc3a4ff6a4fe03d7cd5e94bea8a Mon Sep 17 00:00:00 2001 From: carlocorradini Date: Mon, 19 Dec 2022 19:52:03 +0100 Subject: [PATCH 006/226] test: jest.config.ts compatibility and working --- package-lock.json | 251 ++++++++++++++++++++++++++++++++-------------- package.json | 4 +- tsconfig.json | 79 +++++---------- 3 files changed, 206 insertions(+), 128 deletions(-) diff --git a/package-lock.json b/package-lock.json index 51333a4c9..fcf67bf0a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -79,11 +79,11 @@ "shelljs": "^0.8.5", "shx": "^0.3.4", "ts-jest": "^29.0.3", - "ts-node": "^9.1.1", + "ts-node": "^10.9.1", "typedi": "^0.10.0", "typeorm": "^0.2.31", "typeorm-typedi-extensions": "^0.4.1", - "typescript": "~4.2.2" + "typescript": "~4.8.3" }, "engines": { "node": ">= 10.13" @@ -1210,6 +1210,28 @@ "node": ">=14.6" } }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "node_modules/@eslint/eslintrc": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.0.tgz", @@ -2388,6 +2410,30 @@ "node": ">= 6" } }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true + }, "node_modules/@typegoose/typegoose": { "version": "7.4.8", "resolved": "https://registry.npmjs.org/@typegoose/typegoose/-/typegoose-7.4.8.tgz", @@ -3245,11 +3291,10 @@ } }, "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", "dev": true, - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -3266,6 +3311,15 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", @@ -6633,18 +6687,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/espree/node_modules/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -7483,20 +7525,6 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -13481,6 +13509,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "dev": true, + "peer": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -13491,6 +13520,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -14168,29 +14198,46 @@ } }, "node_modules/ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", - "dev": true, - "dependencies": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", "arg": "^4.1.0", "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", - "source-map-support": "^0.5.17", + "v8-compile-cache-lib": "^3.0.1", "yn": "3.1.1" }, "bin": { "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", "ts-node-script": "dist/bin-script.js", "ts-node-transpile-only": "dist/bin-transpile.js", "ts-script": "dist/bin-script-deprecated.js" }, - "engines": { - "node": ">=10.0.0" - }, "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } } }, "node_modules/tsconfig-paths": { @@ -14430,9 +14477,9 @@ } }, "node_modules/typescript": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.2.tgz", - "integrity": "sha512-tbb+NVrLfnsJy3M59lsDgrzWIflR4d4TIUjz+heUnHZwdF7YsrMTKoRERiIvI2lvBG95dfpLxB21WZhys1bgaQ==", + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -14683,6 +14730,12 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, "node_modules/v8-to-istanbul": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", @@ -15948,6 +16001,27 @@ "integrity": "sha512-fRghm6eoUEH7Uz57t0SEKJNm4lqODF2/DRiLd2ek7QkzUHKrCetre/5UrvdE78GIUyl0+8GLx9iFwo/XFa6dDA==", "dev": true }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } + } + }, "@eslint/eslintrc": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.0.tgz", @@ -16854,6 +16928,30 @@ "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", "dev": true }, + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true + }, "@typegoose/typegoose": { "version": "7.4.8", "resolved": "https://registry.npmjs.org/@typegoose/typegoose/-/typegoose-7.4.8.tgz", @@ -17557,11 +17655,10 @@ } }, "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "peer": true + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true }, "acorn-jsx": { "version": "5.3.2", @@ -17570,6 +17667,12 @@ "dev": true, "requires": {} }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, "agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", @@ -20109,14 +20212,6 @@ "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" - }, - "dependencies": { - "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "dev": true - } } }, "esprima": { @@ -20793,13 +20888,6 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -25312,6 +25400,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "dev": true, + "peer": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -25321,7 +25410,8 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "dev": true, + "peer": true } } }, @@ -25849,16 +25939,23 @@ } }, "ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", - "dev": true, - "requires": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", "arg": "^4.1.0", "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", - "source-map-support": "^0.5.17", + "v8-compile-cache-lib": "^3.0.1", "yn": "3.1.1" } }, @@ -26047,9 +26144,9 @@ "requires": {} }, "typescript": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.2.tgz", - "integrity": "sha512-tbb+NVrLfnsJy3M59lsDgrzWIflR4d4TIUjz+heUnHZwdF7YsrMTKoRERiIvI2lvBG95dfpLxB21WZhys1bgaQ==", + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", "dev": true }, "uc.micro": { @@ -26237,6 +26334,12 @@ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, "v8-to-istanbul": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", diff --git a/package.json b/package.json index 998315148..bb506fb5a 100644 --- a/package.json +++ b/package.json @@ -125,11 +125,11 @@ "shelljs": "^0.8.5", "shx": "^0.3.4", "ts-jest": "^29.0.3", - "ts-node": "^9.1.1", + "ts-node": "^10.9.1", "typedi": "^0.10.0", "typeorm": "^0.2.31", "typeorm-typedi-extensions": "^0.4.1", - "typescript": "~4.2.2" + "typescript": "~4.8.3" }, "peerDependencies": { "class-validator": ">=0.12.0", diff --git a/tsconfig.json b/tsconfig.json index a889d3d0f..c253f048a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,58 +1,33 @@ { "compilerOptions": { - /* Basic Options */ - "target": "es2018" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */, - "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */, - "lib": [ - /* Specify library files to be included in the compilation. */ "es2018", - "esnext.asynciterable" - ], - // "allowJs": true, /* Allow javascript files to be compiled. */ - // "checkJs": true, /* Report errors in .js files. */ - // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ - "declaration": true /* Generates corresponding '.d.ts' file. */, - "sourceMap": true /* Generates corresponding '.map' file. */, - // "outFile": "./", /* Concatenate and emit output to single file. */ - "outDir": "./build" /* Redirect output structure to the directory. */, - // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ - "removeComments": false /* Do not emit comments to output. */, - // "noEmit": true, /* Do not emit outputs. */ - "importHelpers": true /* Import emit helpers from 'tslib'. */, - // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ - // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ - /* Strict Type-Checking Options */ - "strict": false /* Enable all strict type-checking options. */, - "noImplicitAny": true /* Raise error on expressions and declarations with an implied 'any' type. */, - "strictNullChecks": true /* Enable strict null checks. */, - "strictFunctionTypes": true /* Enable strict checking of function types. */, - "strictPropertyInitialization": false /* Enable strict checking of property initialization in classes. */, - "noImplicitThis": true /* Raise error on 'this' expressions with an implied 'any' type. */, - "alwaysStrict": true /* Parse in strict mode and emit "use strict" for each source file. */, - /* Additional Checks */ - "noUnusedLocals": false /* Report errors on unused locals. */, - "noUnusedParameters": false /* Report errors on unused parameters. */, - "noImplicitReturns": true /* Report error when not all code paths in function return a value. */, - "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */, - /* Module Resolution Options */ - "moduleResolution": "node" /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */, - // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ - "paths": {} /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */, - // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ - // "typeRoots": [], /* List of folders to include type definitions from. */ - // "types": [], /* Type declaration files to be included in compilation. */ - "allowSyntheticDefaultImports": true /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */, - "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, - // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ + "target": "es2018", + "module": "commonjs", + "lib": ["es2018", "esnext.asynciterable"], + "declaration": true, + "sourceMap": true, + "outDir": "./build", + "removeComments": false, + "importHelpers": true, + "strict": false, + "noImplicitAny": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "strictPropertyInitialization": false, + "noImplicitThis": true, + "alwaysStrict": true, + "noUnusedLocals": false, + "noUnusedParameters": false, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "moduleResolution": "node", + "paths": {}, + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, "forceConsistentCasingInFileNames": true, - "skipLibCheck": true /* Don't check libs typings - due to https://github.com/prisma/graphql-request/issues/26 */, - /* Source Map Options */ - // "sourceRoot": "./", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ - // "mapRoot": "./", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ - // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ - /* Experimental Options */ - "experimentalDecorators": true /* Enables experimental support for ES7 decorators. */, - "emitDecoratorMetadata": true /* Enables experimental support for emitting type metadata for decorators. */ + "skipLibCheck": true, + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "resolveJsonModule": true }, "include": ["./src"], "exclude": ["./node_modules", "./build"] From 50d5d0f8366d02961c46c4cb95ca50fe5cb376ae Mon Sep 17 00:00:00 2001 From: carlocorradini Date: Mon, 19 Dec 2022 20:01:04 +0100 Subject: [PATCH 007/226] internal(contributing): fix contributing doc headers --- CONTRIBUTING.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f569f2542..4dc9bf77b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,7 +12,7 @@ As a contributor, here are the guidelines we would like you to follow: - [Coding Rules](#rules) - [Commit Message Guidelines](#commit) -

Got a Question or Problem? +

Got a Question or Problem?

Do not open issues for general support questions as we want to keep GitHub issues for bug reports and feature requests. @@ -20,12 +20,12 @@ Instead, consider using [Stack Overflow](https://stackoverflow.com/questions/tag You can also ask community for help using the [Github Discussion platform][discussions]. -

Found a Bug? +

Found a Bug?

If you find a bug in the source code, you can help us by [submitting an issue](#submit-issue) to our [GitHub Repository][github]. Even better, you can [submit a Pull Request](#submit-pr) with a failing test case that reproduces the issue. -

Missing a Feature? +

Missing a Feature?

You can _request_ a new feature by [submitting an issue](#submit-issue) to our GitHub Repository. @@ -36,15 +36,15 @@ If you would like to _implement_ a new feature, please consider the size of the - **Small Features** can be crafted and directly [submitted as a Pull Request](#submit-pr). -

Submission Guidelines +

Submission Guidelines

-

Submitting an Issue +

Submitting an Issue

Before you submit an issue, please search the issue tracker. An issue for your problem may already exist and the discussion might inform you of workarounds readily available. You can file new issues by selecting from our [new issue templates](https://github.com/MichalLytek/type-graphql/issues/new/choose) and filling out the issue template. -

Submitting a Pull Request (PR) +

Submitting a Pull Request (PR)

Before you submit your Pull Request (PR) consider the following guidelines: @@ -100,6 +100,7 @@ If we ask for changes via code reviews then: That's it! Thank you for your contribution! + ### After your pull request is merged After your pull request is merged, you can safely delete your branch and pull the changes from the main (upstream) repository: @@ -128,7 +129,7 @@ After your pull request is merged, you can safely delete your branch and pull th git pull --ff upstream master ``` -

Coding Rules +

Coding Rules

To ensure consistency throughout the source code, keep these rules in mind as you are working: @@ -136,7 +137,7 @@ To ensure consistency throughout the source code, keep these rules in mind as yo - The code must pass type checking and fullfil all the TSLint rules. -

Commit Message Guidelines +

Commit Message Guidelines

For more information checkout this [commit rules guide](https://www.conventionalcommits.org/en/v1.0.0/). From 4dfde011369727b3508e49b8591ce184eb30cddf Mon Sep 17 00:00:00 2001 From: Carlo Corradini Date: Mon, 19 Dec 2022 20:03:03 +0100 Subject: [PATCH 008/226] internal: fix contributing empty line --- CONTRIBUTING.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4dc9bf77b..aeb355c54 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -100,7 +100,6 @@ If we ask for changes via code reviews then: That's it! Thank you for your contribution! - ### After your pull request is merged After your pull request is merged, you can safely delete your branch and pull the changes from the main (upstream) repository: From c7954783e4c65bfca8e63c87e2be407f72dfa6ba Mon Sep 17 00:00:00 2001 From: carlocorradini Date: Mon, 19 Dec 2022 22:21:42 +0100 Subject: [PATCH 009/226] internal(paths): import can leverage paths starting with ~/ that points to src/ --- package-lock.json | 1060 ++++++++++++--------------------------------- package.json | 7 +- tsconfig.json | 19 +- 3 files changed, 306 insertions(+), 780 deletions(-) diff --git a/package-lock.json b/package-lock.json index fcf67bf0a..f3dd4970f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -80,10 +80,13 @@ "shx": "^0.3.4", "ts-jest": "^29.0.3", "ts-node": "^10.9.1", + "ts-patch": "^2.1.0", + "tsconfig-paths": "^4.1.1", "typedi": "^0.10.0", "typeorm": "^0.2.31", "typeorm-typedi-extensions": "^0.4.1", - "typescript": "~4.8.3" + "typescript": "~4.8.3", + "typescript-transform-paths": "^3.4.4" }, "engines": { "node": ">= 10.13" @@ -1632,22 +1635,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/console/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/@jest/core": { "version": "29.3.1", "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.3.1.tgz", @@ -1695,22 +1682,6 @@ } } }, - "node_modules/@jest/core/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/@jest/core/node_modules/pretty-format": { "version": "29.3.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", @@ -1858,22 +1829,6 @@ } } }, - "node_modules/@jest/reporters/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/@jest/schemas": { "version": "29.0.0", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", @@ -1956,22 +1911,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/transform/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/@jest/transform/node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -2008,22 +1947,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/@jridgewell/gen-mapping": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", @@ -4066,22 +3989,6 @@ "@babel/core": "^7.8.0" } }, - "node_modules/babel-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", @@ -4524,6 +4431,22 @@ } ] }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/char-regex": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", @@ -4736,22 +4659,6 @@ "npm": ">=5.0.0" } }, - "node_modules/cli-highlight/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/cli-highlight/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -5484,22 +5391,6 @@ "balanced-match": "^1.0.0" } }, - "node_modules/cspell/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/cspell/node_modules/commander": { "version": "9.4.1", "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", @@ -6306,6 +6197,39 @@ "node": ">=0.10.0" } }, + "node_modules/eslint-plugin-import/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/eslint-plugin-import/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import/node_modules/tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, "node_modules/eslint-plugin-jest": { "version": "27.1.7", "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.1.7.tgz", @@ -6416,22 +6340,6 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/eslint/node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -9185,22 +9093,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-circus/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/jest-circus/node_modules/pretty-format": { "version": "29.3.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", @@ -9267,22 +9159,6 @@ } } }, - "node_modules/jest-cli/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/jest-cli/node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -9404,22 +9280,6 @@ } } }, - "node_modules/jest-config/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/jest-config/node_modules/pretty-format": { "version": "29.3.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", @@ -9467,22 +9327,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/jest-diff/node_modules/pretty-format": { "version": "29.3.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", @@ -9543,22 +9387,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-each/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/jest-each/node_modules/pretty-format": { "version": "29.3.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", @@ -9702,22 +9530,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/jest-matcher-utils/node_modules/pretty-format": { "version": "29.3.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", @@ -9770,22 +9582,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-message-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/jest-message-util/node_modules/pretty-format": { "version": "29.3.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", @@ -9891,22 +9687,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-resolve/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/jest-runner": { "version": "29.3.1", "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.3.1.tgz", @@ -9939,22 +9719,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-runner/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/jest-runner/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -10007,22 +9771,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-runtime/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/jest-snapshot": { "version": "29.3.1", "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.3.1.tgz", @@ -10058,22 +9806,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-snapshot/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/jest-snapshot/node_modules/pretty-format": { "version": "29.3.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", @@ -10123,22 +9855,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/jest-validate": { "version": "29.3.1", "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.3.1.tgz", @@ -10168,22 +9884,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-validate/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/jest-validate/node_modules/pretty-format": { "version": "29.3.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", @@ -10235,22 +9935,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-watcher/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/jest-worker": { "version": "29.3.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", @@ -10593,22 +10277,6 @@ "url": "https://opencollective.com/lint-staged" } }, - "node_modules/lint-staged/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/lint-staged/node_modules/debug": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", @@ -10654,22 +10322,6 @@ "enquirer": ">= 2.3.0 < 3" } }, - "node_modules/listr2/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -10741,22 +10393,6 @@ "node": ">=10" } }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/log-update": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", @@ -12389,22 +12025,6 @@ "@types/yargs-parser": "*" } }, - "node_modules/pretty-format/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -14240,28 +13860,114 @@ } } }, - "node_modules/tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "node_modules/ts-patch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-patch/-/ts-patch-2.1.0.tgz", + "integrity": "sha512-+6LbQSGgHUnK+grgk9nvKhesc0/dDNxms0IL1XPZeTfmPFCx/QSuwz9k+9yFe0xYDD7xBlHYK0Zp0qrTCaJcAw==", "dev": true, "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", + "chalk": "^4.1.2", + "glob": "^8.0.3", + "global-prefix": "^3.0.0", "minimist": "^1.2.6", - "strip-bom": "^3.0.0" + "resolve": "^1.22.1", + "shelljs": "^0.8.5", + "strip-ansi": "^6.0.1" + }, + "bin": { + "ts-patch": "bin/cli.js" + }, + "peerDependencies": { + "typescript": ">=4.0.0" } }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "node_modules/ts-patch/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "dependencies": { - "minimist": "^1.2.0" + "balanced-match": "^1.0.0" + } + }, + "node_modules/ts-patch/node_modules/glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ts-patch/node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ts-patch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ts-patch/node_modules/minimatch": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", + "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-patch/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" }, "bin": { - "json5": "lib/cli.js" + "which": "bin/which" + } + }, + "node_modules/tsconfig-paths": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.1.1.tgz", + "integrity": "sha512-VgPrtLKpRgEAJsMj5Q/I/mXouC6A/7eJ/X4Nuk6o0cRPwBtznYxTCU4FodbexbzH9somBPEXYi0ZkUViUpJ21Q==", + "dev": true, + "dependencies": { + "json5": "^2.2.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, "node_modules/tsconfig-paths/node_modules/strip-bom": { @@ -14367,22 +14073,6 @@ "typeorm": ">=0.2.30" } }, - "node_modules/typeorm/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/typeorm/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -14489,6 +14179,18 @@ "node": ">=4.2.0" } }, + "node_modules/typescript-transform-paths": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/typescript-transform-paths/-/typescript-transform-paths-3.4.4.tgz", + "integrity": "sha512-b+6JTpJbO9CxVyt9+fIKXpLNUEyzrKXdflsVo/nXbQqelCYkpSsRdI+ikg3SelyE04rUeKlb+Kdt1D8Doa9JoQ==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.4" + }, + "peerDependencies": { + "typescript": ">=3.6.5" + } + }, "node_modules/uc.micro": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", @@ -16334,18 +16036,6 @@ "jest-message-util": "^29.3.1", "jest-util": "^29.3.1", "slash": "^3.0.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } } }, "@jest/core": { @@ -16384,16 +16074,6 @@ "strip-ansi": "^6.0.0" }, "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "pretty-format": { "version": "29.3.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", @@ -16508,18 +16188,6 @@ "string-length": "^4.0.1", "strip-ansi": "^6.0.0", "v8-to-istanbul": "^9.0.1" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } } }, "@jest/schemas": { @@ -16589,16 +16257,6 @@ "write-file-atomic": "^4.0.1" }, "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -16629,18 +16287,6 @@ "@types/node": "*", "@types/yargs": "^17.0.8", "chalk": "^4.0.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } } }, "@jridgewell/gen-mapping": { @@ -18243,18 +17889,6 @@ "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } } }, "babel-plugin-istanbul": { @@ -18588,6 +18222,16 @@ "integrity": "sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A==", "dev": true }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, "char-regex": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", @@ -18753,16 +18397,6 @@ "yargs": "^16.0.0" }, "dependencies": { - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -19087,16 +18721,6 @@ "balanced-match": "^1.0.0" } }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "commander": { "version": "9.4.1", "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", @@ -19779,16 +19403,6 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -20133,6 +19747,33 @@ "requires": { "is-extglob": "^2.1.1" } + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, + "tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } } } }, @@ -22099,16 +21740,6 @@ "stack-utils": "^2.0.3" }, "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "pretty-format": { "version": "29.3.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", @@ -22156,16 +21787,6 @@ "yargs": "^17.3.1" }, "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -22253,16 +21874,6 @@ "strip-json-comments": "^3.1.1" }, "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "pretty-format": { "version": "29.3.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", @@ -22302,16 +21913,6 @@ "pretty-format": "^29.3.1" }, "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "pretty-format": { "version": "29.3.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", @@ -22361,16 +21962,6 @@ "pretty-format": "^29.3.1" }, "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "pretty-format": { "version": "29.3.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", @@ -22485,16 +22076,6 @@ "pretty-format": "^29.3.1" }, "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "pretty-format": { "version": "29.3.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", @@ -22539,16 +22120,6 @@ "stack-utils": "^2.0.3" }, "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "pretty-format": { "version": "29.3.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", @@ -22615,18 +22186,6 @@ "resolve": "^1.20.0", "resolve.exports": "^1.1.0", "slash": "^3.0.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } } }, "jest-resolve-dependencies": { @@ -22668,16 +22227,6 @@ "source-map-support": "0.5.13" }, "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -22724,18 +22273,6 @@ "jest-util": "^29.3.1", "slash": "^3.0.0", "strip-bom": "^4.0.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } } }, "jest-snapshot": { @@ -22770,16 +22307,6 @@ "semver": "^7.3.5" }, "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "pretty-format": { "version": "29.3.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", @@ -22819,18 +22346,6 @@ "ci-info": "^3.2.0", "graceful-fs": "^4.2.9", "picomatch": "^2.2.3" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } } }, "jest-validate": { @@ -22853,16 +22368,6 @@ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "pretty-format": { "version": "29.3.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", @@ -22904,18 +22409,6 @@ "emittery": "^0.13.1", "jest-util": "^29.3.1", "string-length": "^4.0.1" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } } }, "jest-worker": { @@ -23170,16 +22663,6 @@ "stringify-object": "^3.3.0" }, "dependencies": { - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "debug": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", @@ -23211,18 +22694,6 @@ "p-map": "^4.0.0", "rxjs": "^6.6.3", "through": "^2.3.8" - }, - "dependencies": { - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } } }, "locate-path": { @@ -23288,18 +22759,6 @@ "dev": true, "requires": { "chalk": "^4.0.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } } }, "log-update": { @@ -24527,16 +23986,6 @@ "requires": { "@types/yargs-parser": "*" } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } } } }, @@ -25959,27 +25408,91 @@ "yn": "3.1.1" } }, - "tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "ts-patch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-patch/-/ts-patch-2.1.0.tgz", + "integrity": "sha512-+6LbQSGgHUnK+grgk9nvKhesc0/dDNxms0IL1XPZeTfmPFCx/QSuwz9k+9yFe0xYDD7xBlHYK0Zp0qrTCaJcAw==", "dev": true, "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", + "chalk": "^4.1.2", + "glob": "^8.0.3", + "global-prefix": "^3.0.0", "minimist": "^1.2.6", - "strip-bom": "^3.0.0" + "resolve": "^1.22.1", + "shelljs": "^0.8.5", + "strip-ansi": "^6.0.1" }, "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "requires": { - "minimist": "^1.2.0" + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "minimatch": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", + "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" } }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "tsconfig-paths": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.1.1.tgz", + "integrity": "sha512-VgPrtLKpRgEAJsMj5Q/I/mXouC6A/7eJ/X4Nuk6o0cRPwBtznYxTCU4FodbexbzH9somBPEXYi0ZkUViUpJ21Q==", + "dev": true, + "requires": { + "json5": "^2.2.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "dependencies": { "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -26054,16 +25567,6 @@ "yargs": "^16.0.3" }, "dependencies": { - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -26149,6 +25652,15 @@ "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", "dev": true }, + "typescript-transform-paths": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/typescript-transform-paths/-/typescript-transform-paths-3.4.4.tgz", + "integrity": "sha512-b+6JTpJbO9CxVyt9+fIKXpLNUEyzrKXdflsVo/nXbQqelCYkpSsRdI+ikg3SelyE04rUeKlb+Kdt1D8Doa9JoQ==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, "uc.micro": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", diff --git a/package.json b/package.json index bb506fb5a..a60b81679 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,7 @@ "fix:markdown": "markdownlint --fix \"**/*.md\"", "postbuild": "shx rm ./build/browser-shim.d.ts && shx cp ./src/browser-shim.ts ./build", "prebuild": "npm run clean", - "prepare": "husky install", + "prepare": "ts-patch install -s && husky install", "prepublishOnly": "npm run build", "test": "jest --verbose --coverage", "test:ci": "jest --verbose --coverage --ci --forceExit --detectOpenHandles --runInBand", @@ -126,10 +126,13 @@ "shx": "^0.3.4", "ts-jest": "^29.0.3", "ts-node": "^10.9.1", + "ts-patch": "^2.1.0", + "tsconfig-paths": "^4.1.1", "typedi": "^0.10.0", "typeorm": "^0.2.31", "typeorm-typedi-extensions": "^0.4.1", - "typescript": "~4.8.3" + "typescript": "~4.8.3", + "typescript-transform-paths": "^3.4.4" }, "peerDependencies": { "class-validator": ">=0.12.0", diff --git a/tsconfig.json b/tsconfig.json index c253f048a..637debce6 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,6 +6,9 @@ "declaration": true, "sourceMap": true, "outDir": "./build", + "paths": { + "~/*": ["./src/*"] + }, "removeComments": false, "importHelpers": true, "strict": false, @@ -20,15 +23,23 @@ "noImplicitReturns": true, "noFallthroughCasesInSwitch": true, "moduleResolution": "node", - "paths": {}, "allowSyntheticDefaultImports": true, "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "skipLibCheck": true, "experimentalDecorators": true, "emitDecoratorMetadata": true, - "resolveJsonModule": true + "resolveJsonModule": true, + "plugins": [ + { + "transform": "typescript-transform-paths" + }, + { + "transform": "typescript-transform-paths", + "afterDeclarations": true + } + ] }, - "include": ["./src"], - "exclude": ["./node_modules", "./build"] + "exclude": ["./node_modules", "./build"], + "include": ["./src"] } From dc18d5689655b497abc976a83332d39b93a5bf7d Mon Sep 17 00:00:00 2001 From: carlocorradini Date: Mon, 19 Dec 2022 22:23:30 +0100 Subject: [PATCH 010/226] internal(declarations.d.ts): removed since gulp has been removed --- src/declarations.d.ts | 25 ------------------------- 1 file changed, 25 deletions(-) delete mode 100644 src/declarations.d.ts diff --git a/src/declarations.d.ts b/src/declarations.d.ts deleted file mode 100644 index 0d228a413..000000000 --- a/src/declarations.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -// definitions copied from `reflect-metadata` to satisfy gulp-typescript -declare namespace Reflect { - function getMetadata(metadataKey: any, target: Object): any; - function getMetadata(metadataKey: any, target: Object, propertyKey: string | symbol): any; - function decorate(decorators: ClassDecorator[], target: Function): Function; - function decorate( - decorators: Array, - target: Object, - propertyKey: string | symbol, - attributes?: PropertyDescriptor, - ): PropertyDescriptor; - function metadata( - metadataKey: any, - metadataValue: any, - ): { - (target: Function): void; - (target: Object, propertyKey: string | symbol): void; - }; -} - -declare namespace NodeJS { - interface Global { - TypeGraphQLMetadataStorage: import("../src/metadata/metadata-storage").MetadataStorage; - } -} From 1bdf3b8c5e44433511e3f854715d86423d886279 Mon Sep 17 00:00:00 2001 From: carlocorradini Date: Mon, 19 Dec 2022 23:33:44 +0100 Subject: [PATCH 011/226] internal(types): types directory for reflect and type-graphql. reflect has been updated to the official index.d.ts types --- .eslintrc | 11 +- src/@types/Reflect.d.ts | 503 ++++++++++++++++++++++++++++++++++++ src/@types/TypeGraphQL.d.ts | 5 + 3 files changed, 518 insertions(+), 1 deletion(-) create mode 100644 src/@types/Reflect.d.ts create mode 100644 src/@types/TypeGraphQL.d.ts diff --git a/.eslintrc b/.eslintrc index 4b430c49b..2fb4ae273 100644 --- a/.eslintrc +++ b/.eslintrc @@ -48,6 +48,15 @@ "prettier/prettier": "error", "tsdoc/syntax": "warn", "import/no-default-export": "error", - "import/prefer-default-export": "off" + "import/prefer-default-export": "off", + "@typescript-eslint/ban-types": [ + "error", + { + "types": { + "Function": false + }, + "extendDefaults": true + } + ] } } diff --git a/src/@types/Reflect.d.ts b/src/@types/Reflect.d.ts new file mode 100644 index 000000000..9a0651f2e --- /dev/null +++ b/src/@types/Reflect.d.ts @@ -0,0 +1,503 @@ +/*! ***************************************************************************** +Copyright (C) Microsoft. All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABILITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */ + +// Definitions copied from 'reflect-metadata' (https://github.com/rbuckton/reflect-metadata/blob/master/index.d.ts) + +/* eslint-disable @typescript-eslint/no-explicit-any */ + +declare namespace Reflect { + /** + * Applies a set of decorators to a target object. + * @param decorators - An array of decorators. + * @param target - The target object. + * @returns The result of applying the provided decorators. + * @remarks Decorators are applied in reverse order of their positions in the array. + * @example + * + * class Example \{ \} + * + * // constructor + * Example = Reflect.decorate(decoratorsArray, Example); + * + */ + function decorate(decorators: ClassDecorator[], target: Function): Function; + /** + * Applies a set of decorators to a property of a target object. + * @param decorators - An array of decorators. + * @param target - The target object. + * @param propertyKey - The property key to decorate. + * @param attributes - A property descriptor. + * @remarks Decorators are applied in reverse order. + * @example + * + * class Example \{ + * // property declarations are not part of ES6, though they are valid in TypeScript: + * // static staticProperty; + * // property; + * + * static staticMethod() \{ \} + * method() \{ \} + * \} + * + * // property (on constructor) + * Reflect.decorate(decoratorsArray, Example, "staticProperty"); + * + * // property (on prototype) + * Reflect.decorate(decoratorsArray, Example.prototype, "property"); + * + * // method (on constructor) + * Object.defineProperty(Example, "staticMethod", + * Reflect.decorate(decoratorsArray, Example, "staticMethod", + * Object.getOwnPropertyDescriptor(Example, "staticMethod"))); + * + * // method (on prototype) + * Object.defineProperty(Example.prototype, "method", + * Reflect.decorate(decoratorsArray, Example.prototype, "method", + * Object.getOwnPropertyDescriptor(Example.prototype, "method"))); + * + */ + function decorate( + decorators: (PropertyDecorator | MethodDecorator)[], + target: object, + propertyKey: string | symbol, + attributes?: PropertyDescriptor, + ): PropertyDescriptor; + /** + * A default metadata decorator factory that can be used on a class, class member, or parameter. + * @param metadataKey - The key for the metadata entry. + * @param metadataValue - The value for the metadata entry. + * @returns A decorator function. + * @remarks + * If `metadataKey` is already defined for the target and target key, the + * metadataValue for that key will be overwritten. + * @example + * + * // constructor + * \@Reflect.metadata(key, value) + * class Example \{ + * \} + * + * // property (on constructor, TypeScript only) + * class Example \{ + * \@Reflect.metadata(key, value) + * static staticProperty; + * \} + * + * // property (on prototype, TypeScript only) + * class Example \{ + * \@Reflect.metadata(key, value) + * property; + * \} + * + * // method (on constructor) + * class Example \{ + * \@Reflect.metadata(key, value) + * static staticMethod() \{ \} + * \} + * + * // method (on prototype) + * class Example \{ + * \@Reflect.metadata(key, value) + * method() \{ \} + * \} + * + */ + function metadata( + metadataKey: any, + metadataValue: any, + ): { + (target: Function): void; + (target: object, propertyKey: string | symbol): void; + }; + /** + * Define a unique metadata entry on the target. + * @param metadataKey - A key used to store and retrieve metadata. + * @param metadataValue - A value that contains attached metadata. + * @param target - The target object on which to define metadata. + * @example + * + * class Example \{ + * \} + * + * // constructor + * Reflect.defineMetadata("custom:annotation", options, Example); + * + * // decorator factory as metadata-producing annotation. + * function MyAnnotation(options): ClassDecorator \{ + * return target =\> Reflect.defineMetadata("custom:annotation", options, target); + * \} + * + */ + function defineMetadata(metadataKey: any, metadataValue: any, target: object): void; + /** + * Define a unique metadata entry on the target. + * @param metadataKey - A key used to store and retrieve metadata. + * @param metadataValue - A value that contains attached metadata. + * @param target - The target object on which to define metadata. + * @param propertyKey - The property key for the target. + * @example + * + * class Example \{ + * // property declarations are not part of ES6, though they are valid in TypeScript: + * // static staticProperty; + * // property; + * + * static staticMethod(p) \{ \} + * method(p) \{ \} + * \} + * + * // property (on constructor) + * Reflect.defineMetadata("custom:annotation", Number, Example, "staticProperty"); + * + * // property (on prototype) + * Reflect.defineMetadata("custom:annotation", Number, Example.prototype, "property"); + * + * // method (on constructor) + * Reflect.defineMetadata("custom:annotation", Number, Example, "staticMethod"); + * + * // method (on prototype) + * Reflect.defineMetadata("custom:annotation", Number, Example.prototype, "method"); + * + * // decorator factory as metadata-producing annotation. + * function MyAnnotation(options): PropertyDecorator \{ + * return (target, key) =\> Reflect.defineMetadata("custom:annotation", options, target, key); + * \} + * + */ + function defineMetadata( + metadataKey: any, + metadataValue: any, + target: object, + propertyKey: string | symbol, + ): void; + /** + * Gets a value indicating whether the target object or its prototype chain has the provided metadata key defined. + * @param metadataKey - A key used to store and retrieve metadata. + * @param target - The target object on which the metadata is defined. + * @returns `true` if the metadata key was defined on the target object or its prototype chain; otherwise, `false`. + * @example + * + * class Example \{ + * \} + * + * // constructor + * result = Reflect.hasMetadata("custom:annotation", Example); + * + */ + function hasMetadata(metadataKey: any, target: object): boolean; + /** + * Gets a value indicating whether the target object or its prototype chain has the provided metadata key defined. + * @param metadataKey - A key used to store and retrieve metadata. + * @param target - The target object on which the metadata is defined. + * @param propertyKey - The property key for the target. + * @returns `true` if the metadata key was defined on the target object or its prototype chain; otherwise, `false`. + * @example + * + * class Example \{ + * // property declarations are not part of ES6, though they are valid in TypeScript: + * // static staticProperty; + * // property; + * + * static staticMethod(p) \{ \} + * method(p) \{ \} + * \} + * + * // property (on constructor) + * result = Reflect.hasMetadata("custom:annotation", Example, "staticProperty"); + * + * // property (on prototype) + * result = Reflect.hasMetadata("custom:annotation", Example.prototype, "property"); + * + * // method (on constructor) + * result = Reflect.hasMetadata("custom:annotation", Example, "staticMethod"); + * + * // method (on prototype) + * result = Reflect.hasMetadata("custom:annotation", Example.prototype, "method"); + * + */ + function hasMetadata(metadataKey: any, target: object, propertyKey: string | symbol): boolean; + /** + * Gets a value indicating whether the target object has the provided metadata key defined. + * @param metadataKey - A key used to store and retrieve metadata. + * @param target - The target object on which the metadata is defined. + * @returns `true` if the metadata key was defined on the target object; otherwise, `false`. + * @example + * + * class Example \{ + * \} + * + * // constructor + * result = Reflect.hasOwnMetadata("custom:annotation", Example); + * + */ + function hasOwnMetadata(metadataKey: any, target: object): boolean; + /** + * Gets a value indicating whether the target object has the provided metadata key defined. + * @param metadataKey - A key used to store and retrieve metadata. + * @param target - The target object on which the metadata is defined. + * @param propertyKey - The property key for the target. + * @returns `true` if the metadata key was defined on the target object; otherwise, `false`. + * @example + * + * class Example \{ + * // property declarations are not part of ES6, though they are valid in TypeScript: + * // static staticProperty; + * // property; + * + * static staticMethod(p) \{ \} + * method(p) \{ \} + * \} + * + * // property (on constructor) + * result = Reflect.hasOwnMetadata("custom:annotation", Example, "staticProperty"); + * + * // property (on prototype) + * result = Reflect.hasOwnMetadata("custom:annotation", Example.prototype, "property"); + * + * // method (on constructor) + * result = Reflect.hasOwnMetadata("custom:annotation", Example, "staticMethod"); + * + * // method (on prototype) + * result = Reflect.hasOwnMetadata("custom:annotation", Example.prototype, "method"); + * + */ + function hasOwnMetadata(metadataKey: any, target: object, propertyKey: string | symbol): boolean; + /** + * Gets the metadata value for the provided metadata key on the target object or its prototype chain. + * @param metadataKey - A key used to store and retrieve metadata. + * @param target - The target object on which the metadata is defined. + * @returns The metadata value for the metadata key if found; otherwise, `undefined`. + * @example + * + * class Example \{ + * \} + * + * // constructor + * result = Reflect.getMetadata("custom:annotation", Example); + * + */ + function getMetadata(metadataKey: any, target: object): any; + /** + * Gets the metadata value for the provided metadata key on the target object or its prototype chain. + * @param metadataKey - A key used to store and retrieve metadata. + * @param target - The target object on which the metadata is defined. + * @param propertyKey - The property key for the target. + * @returns The metadata value for the metadata key if found; otherwise, `undefined`. + * @example + * + * class Example \{ + * // property declarations are not part of ES6, though they are valid in TypeScript: + * // static staticProperty; + * // property; + * + * static staticMethod(p) \{ \} + * method(p) \{ \} + * \} + * + * // property (on constructor) + * result = Reflect.getMetadata("custom:annotation", Example, "staticProperty"); + * + * // property (on prototype) + * result = Reflect.getMetadata("custom:annotation", Example.prototype, "property"); + * + * // method (on constructor) + * result = Reflect.getMetadata("custom:annotation", Example, "staticMethod"); + * + * // method (on prototype) + * result = Reflect.getMetadata("custom:annotation", Example.prototype, "method"); + * + */ + function getMetadata(metadataKey: any, target: object, propertyKey: string | symbol): any; + /** + * Gets the metadata value for the provided metadata key on the target object. + * @param metadataKey - A key used to store and retrieve metadata. + * @param target - The target object on which the metadata is defined. + * @returns The metadata value for the metadata key if found; otherwise, `undefined`. + * @example + * + * class Example \{ + * \} + * + * // constructor + * result = Reflect.getOwnMetadata("custom:annotation", Example); + * + */ + function getOwnMetadata(metadataKey: any, target: object): any; + /** + * Gets the metadata value for the provided metadata key on the target object. + * @param metadataKey - A key used to store and retrieve metadata. + * @param target - The target object on which the metadata is defined. + * @param propertyKey - The property key for the target. + * @returns The metadata value for the metadata key if found; otherwise, `undefined`. + * @example + * + * class Example \{ + * // property declarations are not part of ES6, though they are valid in TypeScript: + * // static staticProperty; + * // property; + * + * static staticMethod(p) \{ \} + * method(p) \{ \} + * \} + * + * // property (on constructor) + * result = Reflect.getOwnMetadata("custom:annotation", Example, "staticProperty"); + * + * // property (on prototype) + * result = Reflect.getOwnMetadata("custom:annotation", Example.prototype, "property"); + * + * // method (on constructor) + * result = Reflect.getOwnMetadata("custom:annotation", Example, "staticMethod"); + * + * // method (on prototype) + * result = Reflect.getOwnMetadata("custom:annotation", Example.prototype, "method"); + * + */ + function getOwnMetadata(metadataKey: any, target: object, propertyKey: string | symbol): any; + /** + * Gets the metadata keys defined on the target object or its prototype chain. + * @param target - The target object on which the metadata is defined. + * @returns An array of unique metadata keys. + * @example + * + * class Example \{ + * \} + * + * // constructor + * result = Reflect.getMetadataKeys(Example); + * + */ + function getMetadataKeys(target: object): any[]; + /** + * Gets the metadata keys defined on the target object or its prototype chain. + * @param target - The target object on which the metadata is defined. + * @param propertyKey - The property key for the target. + * @returns An array of unique metadata keys. + * @example + * + * class Example \{ + * // property declarations are not part of ES6, though they are valid in TypeScript: + * // static staticProperty; + * // property; + * + * static staticMethod(p) \{ \} + * method(p) \{ \} + * \} + * + * // property (on constructor) + * result = Reflect.getMetadataKeys(Example, "staticProperty"); + * + * // property (on prototype) + * result = Reflect.getMetadataKeys(Example.prototype, "property"); + * + * // method (on constructor) + * result = Reflect.getMetadataKeys(Example, "staticMethod"); + * + * // method (on prototype) + * result = Reflect.getMetadataKeys(Example.prototype, "method"); + * + */ + function getMetadataKeys(target: object, propertyKey: string | symbol): any[]; + /** + * Gets the unique metadata keys defined on the target object. + * @param target - The target object on which the metadata is defined. + * @returns An array of unique metadata keys. + * @example + * + * class Example \{ + * \} + * + * // constructor + * result = Reflect.getOwnMetadataKeys(Example); + * + */ + function getOwnMetadataKeys(target: object): any[]; + /** + * Gets the unique metadata keys defined on the target object. + * @param target - The target object on which the metadata is defined. + * @param propertyKey - The property key for the target. + * @returns An array of unique metadata keys. + * @example + * + * class Example \{ + * // property declarations are not part of ES6, though they are valid in TypeScript: + * // static staticProperty; + * // property; + * + * static staticMethod(p) \{ \} + * method(p) \{ \} + * \} + * + * // property (on constructor) + * result = Reflect.getOwnMetadataKeys(Example, "staticProperty"); + * + * // property (on prototype) + * result = Reflect.getOwnMetadataKeys(Example.prototype, "property"); + * + * // method (on constructor) + * result = Reflect.getOwnMetadataKeys(Example, "staticMethod"); + * + * // method (on prototype) + * result = Reflect.getOwnMetadataKeys(Example.prototype, "method"); + * + */ + function getOwnMetadataKeys(target: object, propertyKey: string | symbol): any[]; + /** + * Deletes the metadata entry from the target object with the provided key. + * @param metadataKey - A key used to store and retrieve metadata. + * @param target - The target object on which the metadata is defined. + * @returns `true` if the metadata entry was found and deleted; otherwise, false. + * @example + * + * class Example \{ + * \} + * + * // constructor + * result = Reflect.deleteMetadata("custom:annotation", Example); + * + */ + function deleteMetadata(metadataKey: any, target: object): boolean; + /** + * Deletes the metadata entry from the target object with the provided key. + * @param metadataKey - A key used to store and retrieve metadata. + * @param target - The target object on which the metadata is defined. + * @param propertyKey - The property key for the target. + * @returns `true` if the metadata entry was found and deleted; otherwise, false. + * @example + * + * class Example \{ + * // property declarations are not part of ES6, though they are valid in TypeScript: + * // static staticProperty; + * // property; + * + * static staticMethod(p) \{ \} + * method(p) \{ \} + * \} + * + * // property (on constructor) + * result = Reflect.deleteMetadata("custom:annotation", Example, "staticProperty"); + * + * // property (on prototype) + * result = Reflect.deleteMetadata("custom:annotation", Example.prototype, "property"); + * + * // method (on constructor) + * result = Reflect.deleteMetadata("custom:annotation", Example, "staticMethod"); + * + * // method (on prototype) + * result = Reflect.deleteMetadata("custom:annotation", Example.prototype, "method"); + * + */ + function deleteMetadata(metadataKey: any, target: object, propertyKey: string | symbol): boolean; +} diff --git a/src/@types/TypeGraphQL.d.ts b/src/@types/TypeGraphQL.d.ts new file mode 100644 index 000000000..3918276a5 --- /dev/null +++ b/src/@types/TypeGraphQL.d.ts @@ -0,0 +1,5 @@ +declare namespace NodeJS { + interface Global { + TypeGraphQLMetadataStorage: import("~/metadata/metadata-storage").MetadataStorage; + } +} From c5680e7ab770edb5d30cb0505d72d09bf5f8a03f Mon Sep 17 00:00:00 2001 From: carlocorradini Date: Tue, 20 Dec 2022 10:39:12 +0100 Subject: [PATCH 012/226] chore(cspell): added shell dictionary --- package-lock.json | 13 +++++++++++++ package.json | 1 + 2 files changed, 14 insertions(+) diff --git a/package-lock.json b/package-lock.json index f3dd4970f..7351d8725 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33,6 +33,7 @@ "@apollo/gateway": "^0.23.2", "@cspell/dict-node": "^4.0.2", "@cspell/dict-npm": "^5.0.1", + "@cspell/dict-shell": "^1.0.1", "@cspell/dict-typescript": "^3.0.2", "@cspell/eslint-plugin": "^6.17.0", "@graphql-modules/core": "^0.7.13", @@ -1156,6 +1157,12 @@ "integrity": "sha512-sIiCQDIMMnNns/fzD61z5npbh5pypaKq07Orqe0+eRfdQpika8iRSGUGFHVbtdd1JzB1DyTCV2e8OwdaQiXqJQ==", "dev": true }, + "node_modules/@cspell/dict-shell": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-shell/-/dict-shell-1.0.1.tgz", + "integrity": "sha512-w5DPhvUXbJUDcNgE279/Ma5cEuXvPHlcA6evi8NRY4a8Btz75UUUT9iRTnB594l8B2Sx1O4d/tHxZo/9OS23ug==", + "dev": true + }, "node_modules/@cspell/dict-software-terms": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.0.6.tgz", @@ -15652,6 +15659,12 @@ "integrity": "sha512-sIiCQDIMMnNns/fzD61z5npbh5pypaKq07Orqe0+eRfdQpika8iRSGUGFHVbtdd1JzB1DyTCV2e8OwdaQiXqJQ==", "dev": true }, + "@cspell/dict-shell": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-shell/-/dict-shell-1.0.1.tgz", + "integrity": "sha512-w5DPhvUXbJUDcNgE279/Ma5cEuXvPHlcA6evi8NRY4a8Btz75UUUT9iRTnB594l8B2Sx1O4d/tHxZo/9OS23ug==", + "dev": true + }, "@cspell/dict-software-terms": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.0.6.tgz", diff --git a/package.json b/package.json index a60b81679..6e42d3541 100644 --- a/package.json +++ b/package.json @@ -79,6 +79,7 @@ "@apollo/gateway": "^0.23.2", "@cspell/dict-node": "^4.0.2", "@cspell/dict-npm": "^5.0.1", + "@cspell/dict-shell": "^1.0.1", "@cspell/dict-typescript": "^3.0.2", "@cspell/eslint-plugin": "^6.17.0", "@graphql-modules/core": "^0.7.13", From cc8cac9c022a0c081c3e1c003b1711e537becd0a Mon Sep 17 00:00:00 2001 From: carlocorradini Date: Tue, 20 Dec 2022 10:53:25 +0100 Subject: [PATCH 013/226] chore(github): added codeowners, funding and dependabot --- .github/CODEOWNERS | 1 + .github/FUNDING.yml | 12 +----------- .github/dependabot.yml | 16 ++++++++++++++++ package.json | 2 +- 4 files changed, 19 insertions(+), 12 deletions(-) create mode 100644 .github/CODEOWNERS create mode 100644 .github/dependabot.yml diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 000000000..8765d8e17 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @MichalLytek diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index aadb9f7c5..e1fe007f2 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,12 +1,2 @@ -# These are supported funding model platforms - -github: typegraphql # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] -patreon: # Replace with a single Patreon username +github: typegraphql open_collective: typegraphql -ko_fi: # Replace with a single Ko-fi username -tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..5270d347b --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,16 @@ +version: 2 +updates: + - package-ecosystem: "npm" + directory: "/" + schedule: + interval: "weekly" + ignore: + - dependency-name: "*" + update-types: ["version-update:semver-patch"] + - package-ecosystem: "npm" + directory: "/website" + schedule: + interval: "weekly" + ignore: + - dependency-name: "*" + update-types: ["version-update:semver-patch"] diff --git a/package.json b/package.json index 6e42d3541..92680d8ec 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "main": "./build/index.js", "types": "./build/index.d.ts", "files": [ - "build" + "./build" ], "scripts": { "build": "tsc --build tsconfig.json", From fdd1fcc7e402eb92d2622e5ba5b294459daf5a84 Mon Sep 17 00:00:00 2001 From: carlocorradini Date: Wed, 21 Dec 2022 11:57:50 +0100 Subject: [PATCH 014/226] chore(benchmarks): fix import statements --- benchmarks/array/type-graphql/async-field-resolvers.ts | 2 +- benchmarks/array/type-graphql/simple-resolvers.ts | 10 +--------- benchmarks/array/type-graphql/standard.ts | 2 +- benchmarks/array/type-graphql/sync-field-resolvers.ts | 2 +- benchmarks/array/type-graphql/sync-getters.ts | 2 +- .../array/type-graphql/with-global-middleware.ts | 10 +--------- benchmarks/simple/graphql-js.ts | 1 - benchmarks/simple/type-graphql.ts | 2 +- 8 files changed, 7 insertions(+), 24 deletions(-) diff --git a/benchmarks/array/type-graphql/async-field-resolvers.ts b/benchmarks/array/type-graphql/async-field-resolvers.ts index 8424302aa..75750c3c2 100644 --- a/benchmarks/array/type-graphql/async-field-resolvers.ts +++ b/benchmarks/array/type-graphql/async-field-resolvers.ts @@ -8,7 +8,7 @@ import { Int, FieldResolver, Root, -} from "../../../build/package/dist"; +} from "../../../build"; import { runBenchmark, ARRAY_ITEMS } from "../run"; @ObjectType() diff --git a/benchmarks/array/type-graphql/simple-resolvers.ts b/benchmarks/array/type-graphql/simple-resolvers.ts index 10579d6a9..4e10b29b8 100644 --- a/benchmarks/array/type-graphql/simple-resolvers.ts +++ b/benchmarks/array/type-graphql/simple-resolvers.ts @@ -1,13 +1,5 @@ import "reflect-metadata"; -import { - buildSchema, - Field, - ObjectType, - Resolver, - Query, - Int, - MiddlewareFn, -} from "../../../build/package/dist"; +import { buildSchema, Field, ObjectType, Resolver, Query, Int, MiddlewareFn } from "../../../build"; import { runBenchmark, ARRAY_ITEMS } from "../run"; @ObjectType({ simpleResolvers: true }) diff --git a/benchmarks/array/type-graphql/standard.ts b/benchmarks/array/type-graphql/standard.ts index 1b5f8036c..9034677b2 100644 --- a/benchmarks/array/type-graphql/standard.ts +++ b/benchmarks/array/type-graphql/standard.ts @@ -1,5 +1,5 @@ import "reflect-metadata"; -import { buildSchema, Field, ObjectType, Resolver, Query, Int } from "../../../build/package/dist"; +import { buildSchema, Field, ObjectType, Resolver, Query, Int } from "../../../build"; import { runBenchmark, ARRAY_ITEMS } from "../run"; @ObjectType() diff --git a/benchmarks/array/type-graphql/sync-field-resolvers.ts b/benchmarks/array/type-graphql/sync-field-resolvers.ts index 9041b84c8..5e2a0836e 100644 --- a/benchmarks/array/type-graphql/sync-field-resolvers.ts +++ b/benchmarks/array/type-graphql/sync-field-resolvers.ts @@ -8,7 +8,7 @@ import { Int, FieldResolver, Root, -} from "../../../build/package/dist"; +} from "../../../build"; import { runBenchmark, ARRAY_ITEMS } from "../run"; @ObjectType() diff --git a/benchmarks/array/type-graphql/sync-getters.ts b/benchmarks/array/type-graphql/sync-getters.ts index ed559e0d3..381361ff3 100644 --- a/benchmarks/array/type-graphql/sync-getters.ts +++ b/benchmarks/array/type-graphql/sync-getters.ts @@ -1,5 +1,5 @@ import "reflect-metadata"; -import { buildSchema, Field, ObjectType, Resolver, Query, Int } from "../../../build/package/dist"; +import { buildSchema, Field, ObjectType, Resolver, Query, Int } from "../../../build"; import { runBenchmark, ARRAY_ITEMS } from "../run"; @ObjectType() diff --git a/benchmarks/array/type-graphql/with-global-middleware.ts b/benchmarks/array/type-graphql/with-global-middleware.ts index f8daaa101..d62b15775 100644 --- a/benchmarks/array/type-graphql/with-global-middleware.ts +++ b/benchmarks/array/type-graphql/with-global-middleware.ts @@ -1,13 +1,5 @@ import "reflect-metadata"; -import { - buildSchema, - Field, - ObjectType, - Resolver, - Query, - Int, - MiddlewareFn, -} from "../../../build/package/dist"; +import { buildSchema, Field, ObjectType, Resolver, Query, Int, MiddlewareFn } from "../../../build"; import { runBenchmark, ARRAY_ITEMS } from "../run"; @ObjectType() diff --git a/benchmarks/simple/graphql-js.ts b/benchmarks/simple/graphql-js.ts index d7839a2cc..bdad87a10 100644 --- a/benchmarks/simple/graphql-js.ts +++ b/benchmarks/simple/graphql-js.ts @@ -1,5 +1,4 @@ import { GraphQLSchema, GraphQLObjectType, GraphQLString } from "graphql"; - import { runBenchmark } from "./run"; const SampleObject: GraphQLObjectType = new GraphQLObjectType({ diff --git a/benchmarks/simple/type-graphql.ts b/benchmarks/simple/type-graphql.ts index d90b719ee..c05545951 100644 --- a/benchmarks/simple/type-graphql.ts +++ b/benchmarks/simple/type-graphql.ts @@ -1,5 +1,5 @@ import "reflect-metadata"; -import { buildSchema, Field, ObjectType, Resolver, Query } from "../../build/package"; +import { buildSchema, Field, ObjectType, Resolver, Query } from "../../build"; import { runBenchmark } from "./run"; @ObjectType() From b49f2509b68452f1bd6efce7132ffc913446d423 Mon Sep 17 00:00:00 2001 From: carlocorradini Date: Wed, 21 Dec 2022 12:15:22 +0100 Subject: [PATCH 015/226] internal: better scripting, added gitattributes and updted editorconfig and prettierignore --- .editorconfig | 6 +- .gitattributes | 187 ++++++++++++++ .prettierignore | 18 +- package-lock.json | 640 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 8 +- 5 files changed, 838 insertions(+), 21 deletions(-) create mode 100644 .gitattributes diff --git a/.editorconfig b/.editorconfig index 6e87a003d..2731d1029 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,12 +1,12 @@ -# Editor configuration, see http://editorconfig.org root = true [*] -charset = utf-8 indent_style = space indent_size = 2 -insert_final_newline = true +end_of_line = lf +charset = utf-8 trim_trailing_whitespace = true +insert_final_newline = true [*.md] max_line_length = off diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..43f853d72 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,187 @@ +* text=auto + +# Source code +*.bash text eol=lf +*.bat text eol=crlf +*.cmd text eol=crlf +*.coffee text +*.css text diff=css +*.htm text diff=html +*.html text diff=html +*.inc text +*.ini text +*.js text +*.json text +*.jsx text +*.less text +*.ls text +*.map text -diff +*.od text +*.onlydata text +*.php text diff=php +*.pl text +*.ps1 text eol=crlf +*.py text diff=python +*.rb text diff=ruby +*.sass text +*.scm text +*.scss text diff=css +*.sh text eol=lf +*.sql text +*.styl text +*.tag text +*.ts text +*.tsx text +*.xml text +*.xhtml text diff=html + +# Docker +Dockerfile text + +# Documentation +*.ipynb text +*.markdown text diff=markdown +*.md text diff=markdown +*.mdwn text diff=markdown +*.mdown text diff=markdown +*.mkd text diff=markdown +*.mkdn text diff=markdown +*.mdtxt text +*.mdtext text +*.txt text +AUTHORS text +CHANGELOG text +CHANGES text +CONTRIBUTING text +COPYING text +copyright text +*COPYRIGHT* text +INSTALL text +license text +LICENSE text +NEWS text +readme text +*README* text +TODO text + +# Templates +*.dot text +*.ejs text +*.erb text +*.haml text +*.handlebars text +*.hbs text +*.hbt text +*.jade text +*.latte text +*.mustache text +*.njk text +*.phtml text +*.svelte text +*.tmpl text +*.tpl text +*.twig text +*.vue text + +# Configs +*.cnf text +*.conf text +*.config text +.editorconfig text +.env text +.gitattributes text +.gitconfig text +.htaccess text +*.lock text -diff +package.json text eol=lf +package-lock.json text -diff +pnpm-lock.yaml text eol=lf -diff +.prettierrc text +yarn.lock text -diff +*.toml text +*.yaml text +*.yml text +browserslist text +Makefile text +makefile text + +# Heroku +Procfile text + +# Graphics +*.ai binary +*.bmp binary +*.eps binary +*.gif binary +*.gifv binary +*.ico binary +*.jng binary +*.jp2 binary +*.jpg binary +*.jpeg binary +*.jpx binary +*.jxr binary +*.pdf binary +*.png binary +*.psb binary +*.psd binary +*.svg text +*.svgz binary +*.tif binary +*.tiff binary +*.wbmp binary +*.webp binary + +# Audio +*.kar binary +*.m4a binary +*.mid binary +*.midi binary +*.mp3 binary +*.ogg binary +*.ra binary + +# Video +*.3gpp binary +*.3gp binary +*.as binary +*.asf binary +*.asx binary +*.avi binary +*.fla binary +*.flv binary +*.m4v binary +*.mng binary +*.mov binary +*.mp4 binary +*.mpeg binary +*.mpg binary +*.ogv binary +*.swc binary +*.swf binary +*.webm binary + +# Archives +*.7z binary +*.gz binary +*.jar binary +*.rar binary +*.tar binary +*.zip binary + +# Fonts +*.ttf binary +*.eot binary +*.otf binary +*.woff binary +*.woff2 binary + +# Executables +*.exe binary +*.pyc binary + +# RC files +*.*rc text + +# Ignore files +*.*ignore text diff --git a/.prettierignore b/.prettierignore index 9d3424a21..68c9e073c 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,18 +1,6 @@ -# node modules -**/node_modules/ - -# builded sources **/build/ **/dist/ - -# coverage reports **/coverage/ - -# IntelliJ stuffs -.idea/ - -# parcel cache -.cache/ - -# changelog -CHANGELOG.md +**/node_modules/ +/.husky/_/ +/.gitattributes diff --git a/package-lock.json b/package-lock.json index 7351d8725..d4fd2d1b0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -73,6 +73,7 @@ "markdownlint": "^0.26.2", "markdownlint-cli": "^0.32.2", "mongoose": "5.10.18", + "npm-run-all": "^4.1.5", "pg": "^8.5.1", "prettier": "^2.2.1", "prettier-plugin-sh": "^0.12.8", @@ -8029,6 +8030,12 @@ "node": ">=0.10.0" } }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -10046,6 +10053,12 @@ "node": ">=4" } }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -10329,6 +10342,43 @@ "enquirer": ">= 2.3.0 < 3" } }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -10756,6 +10806,15 @@ "dev": true, "optional": true }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -11197,6 +11256,12 @@ "node": ">= 0.6" } }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, "node_modules/node-fetch": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", @@ -11218,6 +11283,27 @@ "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", "dev": true }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -11227,6 +11313,160 @@ "node": ">=0.10.0" } }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm-run-all/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/npm-run-all/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/npm-run-all/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/npm-run-all/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm-run-all/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -11870,6 +12110,27 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/pirates": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", @@ -12192,6 +12453,32 @@ "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", "dev": true }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -12790,6 +13077,15 @@ "node": ">=8" } }, + "node_modules/shell-quote": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", + "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/shelljs": { "version": "0.8.5", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", @@ -13168,6 +13464,38 @@ "memory-pager": "^1.0.2" } }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", + "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", + "dev": true + }, "node_modules/split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -13417,6 +13745,23 @@ "node": ">=8" } }, + "node_modules/string.prototype.padend": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz", + "integrity": "sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/string.prototype.trimend": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", @@ -14477,6 +14822,16 @@ "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=", "dev": true }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, "node_modules/validator": { "version": "13.5.2", "resolved": "https://registry.npmjs.org/validator/-/validator-13.5.2.tgz", @@ -20981,6 +21336,12 @@ "parse-passwd": "^1.0.0" } }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, "html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -22503,6 +22864,12 @@ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -22709,6 +23076,36 @@ "through": "^2.3.8" } }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + } + } + }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -23057,6 +23454,12 @@ "dev": true, "optional": true }, + "memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true + }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -23383,6 +23786,12 @@ "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", "dev": true }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, "node-fetch": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", @@ -23401,12 +23810,150 @@ "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", "dev": true }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, + "npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -23883,6 +24430,18 @@ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, + "pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + }, "pirates": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", @@ -24125,6 +24684,28 @@ "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", "dev": true }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "dependencies": { + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + } + } + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -24586,6 +25167,12 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, + "shell-quote": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", + "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==", + "dev": true + }, "shelljs": { "version": "0.8.5", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", @@ -24893,6 +25480,38 @@ "memory-pager": "^1.0.2" } }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", + "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", + "dev": true + }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -25094,6 +25713,17 @@ "strip-ansi": "^6.0.1" } }, + "string.prototype.padend": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz", + "integrity": "sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, "string.prototype.trimend": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", @@ -25891,6 +26521,16 @@ "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=", "dev": true }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, "validator": { "version": "13.5.2", "resolved": "https://registry.npmjs.org/validator/-/validator-13.5.2.tgz", diff --git a/package.json b/package.json index 92680d8ec..07f0530fe 100644 --- a/package.json +++ b/package.json @@ -44,20 +44,21 @@ "scripts": { "build": "tsc --build tsconfig.json", "build:watch": "tsc --build --watch tsconfig.json", - "check": "npm run check:format && check:lint && check:markdown && npm run check:spell && npm run check:type", + "check": "npm-run-all --npm-path npm check:*", "check:format": "prettier --check .", "check:lint": "eslint .", "check:markdown": "markdownlint \"**/*.md\"", "check:spell": "cspell lint --config cspell.json --no-progress --show-context \"**\"", - "check:type": "tsc --noEmit && tsc --noEmit --project ./examples/tsconfig.json", + "check:type": "tsc --noEmit && tsc --noEmit --project ./examples/tsconfig.json && tsc --noEmit --project ./benchmarks/tsconfig.json", "clean": "shx rm -rf build", "docs": "npm run --prefix website start", - "fix": "npm run fix:format && npm run fix:lint && npm run fix:markdown", + "fix": "npm-run-all --npm-path npm fix:*", "fix:format": "prettier --write .", "fix:lint": "eslint --fix .", "fix:markdown": "markdownlint --fix \"**/*.md\"", "postbuild": "shx rm ./build/browser-shim.d.ts && shx cp ./src/browser-shim.ts ./build", "prebuild": "npm run clean", + "prebuild:watch": "npm run clean", "prepare": "ts-patch install -s && husky install", "prepublishOnly": "npm run build", "test": "jest --verbose --coverage", @@ -119,6 +120,7 @@ "markdownlint": "^0.26.2", "markdownlint-cli": "^0.32.2", "mongoose": "5.10.18", + "npm-run-all": "^4.1.5", "pg": "^8.5.1", "prettier": "^2.2.1", "prettier-plugin-sh": "^0.12.8", From 46b13a493272332505b65ededf2618df9cd0b62c Mon Sep 17 00:00:00 2001 From: carlocorradini Date: Wed, 21 Dec 2022 14:26:05 +0100 Subject: [PATCH 016/226] chore(cspell): add dict shell to cspell import --- cspell.json | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/cspell.json b/cspell.json index cabe8dcba..962adcba5 100644 --- a/cspell.json +++ b/cspell.json @@ -5,8 +5,16 @@ "import": [ "@cspell/dict-node/cspell-ext.json", "@cspell/dict-npm/cspell-ext.json", + "@cspell/dict-shell/cspell-ext.json", "@cspell/dict-typescript/cspell-ext.json" ], - "ignorePaths": ["**/build/", "**/dist/", "**/coverage/", "**/node_modules/"], - "words": ["middlewares"] + "ignorePaths": [ + "**/build/", + "**/dist/", + "**/coverage/", + "**/node_modules/" + ], + "words": [ + "middlewares" + ] } From e37263e69fe387b58725c6f0ffda7b1ca5a1b07e Mon Sep 17 00:00:00 2001 From: carlocorradini Date: Sun, 8 Jan 2023 15:35:48 +0100 Subject: [PATCH 017/226] chore(eol): force lf as end eol --- .gitattributes | 2 +- .prettierrc | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitattributes b/.gitattributes index 43f853d72..aecfc23be 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,4 +1,4 @@ -* text=auto +* text=auto eol=lf # Source code *.bash text eol=lf diff --git a/.prettierrc b/.prettierrc index 3cbe4676f..eeb8f342c 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,4 +1,5 @@ { + "endOfLine": "lf", "trailingComma": "all", "tabWidth": 2, "printWidth": 100, From c4d70e49bb70656b9a794d663e036678edd2abc3 Mon Sep 17 00:00:00 2001 From: carlocorradini Date: Wed, 8 Feb 2023 16:38:00 +0100 Subject: [PATCH 018/226] fix: prettier style --- .lintstagedrc | 14 +- CHANGELOG.md | 122 +++++++++++++++++- CONTRIBUTING.md | 2 + cspell.json | 11 +- examples/apollo-cache/recipe-resolver.ts | 6 +- .../helpers/buildFederatedSchema.ts | 2 +- examples/authorization/resolver.ts | 2 +- examples/automatic-validation/examples.gql | 19 ++- .../automatic-validation/recipe-resolver.ts | 2 +- .../automatic-validation/recipes-arguments.ts | 4 +- examples/custom-validation/examples.gql | 19 ++- examples/custom-validation/recipe-resolver.ts | 2 +- .../custom-validation/recipes-arguments.ts | 4 +- examples/enums-and-unions/resolver.ts | 1 + examples/extensions/resolver.ts | 2 +- .../generic-types/paginated-response.type.ts | 2 +- examples/interfaces-inheritance/examples.gql | 16 +-- .../person/person.type.ts | 2 + .../recipe/recipe.args.ts | 4 +- .../recipe/recipe.resolver.ts | 2 +- examples/mikro-orm/examples.gql | 9 +- examples/mixin-classes/resolver.ts | 1 + examples/query-complexity/recipe-resolver.ts | 2 +- examples/redis-subscriptions/examples.gql | 14 +- .../resource/resource.resolver.ts | 4 +- examples/simple-usage/examples.gql | 5 +- examples/simple-usage/recipe-resolver.ts | 4 +- examples/simple-usage/schema.gql | 12 +- .../typegoose/resolvers/recipe-resolver.ts | 2 +- examples/typegoose/schema.gql | 4 +- examples/typeorm-basic-usage/entities/rate.ts | 4 +- .../typeorm-basic-usage/entities/recipe.ts | 3 +- examples/typeorm-basic-usage/entities/user.ts | 2 +- examples/typeorm-basic-usage/examples.gql | 9 +- .../resolvers/rate-resolver.ts | 2 +- .../resolvers/recipe-resolver.ts | 4 +- .../typeorm-lazy-relations/entities/rate.ts | 2 +- .../typeorm-lazy-relations/entities/recipe.ts | 2 +- .../typeorm-lazy-relations/entities/user.ts | 2 +- examples/typeorm-lazy-relations/examples.gql | 9 +- .../resolvers/recipe-resolver.ts | 4 +- examples/using-container/examples.gql | 9 +- examples/using-scoped-container/examples.gql | 9 +- src/browser-shim.ts | 4 +- src/decorators/types.ts | 2 +- src/helpers/auth-middleware.ts | 3 +- src/helpers/decorators.ts | 14 +- src/helpers/findType.ts | 6 +- src/metadata/getMetadataStorage.ts | 2 +- src/metadata/metadata-storage.ts | 35 ++++- src/resolvers/create.ts | 9 +- src/resolvers/helpers.ts | 3 +- src/resolvers/validate-arg.ts | 9 +- src/schema/build-context.ts | 9 ++ src/schema/schema-generator.ts | 13 +- src/utils/container.ts | 2 + tests/functional/circular-refs.ts | 1 + tests/functional/default-values.ts | 4 +- tests/functional/extensions.ts | 8 +- tests/functional/fields.ts | 6 +- tests/functional/generic-types.ts | 2 + tests/functional/interface-resolvers-args.ts | 7 + .../functional/interfaces-and-inheritance.ts | 31 ++++- tests/functional/ioc-container.ts | 6 +- tests/functional/middlewares.ts | 1 + tests/functional/resolvers.ts | 53 +++++--- tests/functional/scalars.ts | 4 +- tests/functional/subscriptions.ts | 4 + tests/functional/typedefs-resolvers.ts | 8 +- tests/functional/unions.ts | 2 - website/blog/2018-03-25-medium-article.md | 39 ++++-- website/blog/2020-08-19-devto-article.md | 32 +++-- website/pages/en/help.js | 17 ++- website/pages/en/users.js | 11 +- website/pages/en/versions.js | 4 +- website/pages/snippets/typeorm.md | 2 +- website/pages/snippets/validation.md | 2 +- website/static/css/prism-theme.css | 15 ++- .../version-0.16.0/authorization.md | 61 +++++---- .../version-0.16.0/bootstrap.md | 9 +- .../version-0.16.0/browser-usage.md | 3 +- .../version-0.16.0/complexity.md | 95 +++++++------- .../versioned_docs/version-0.16.0/enums.md | 1 + .../interfaces-and-inheritance.md | 25 +++- .../version-0.16.0/introduction.md | 20 ++- .../version-0.16.0/middlewares.md | 6 +- .../version-0.16.0/resolvers.md | 63 +++++---- .../versioned_docs/version-0.16.0/scalars.md | 24 +++- .../version-0.16.0/subscriptions.md | 32 +++-- .../version-0.16.0/types-and-fields.md | 13 +- .../versioned_docs/version-0.16.0/unions.md | 20 ++- .../version-0.16.0/validation.md | 30 ++++- .../version-0.17.5/dependency-injection.md | 2 +- .../version-0.16.0-sidebars.json | 17 +-- .../version-0.17.0-sidebars.json | 17 +-- .../version-0.17.4-sidebars.json | 17 +-- .../version-1.0.0-sidebars.json | 17 +-- 97 files changed, 739 insertions(+), 459 deletions(-) diff --git a/.lintstagedrc b/.lintstagedrc index 88c759729..40812b55d 100644 --- a/.lintstagedrc +++ b/.lintstagedrc @@ -1,13 +1,5 @@ { - "{src,tests,examples}/**/*.ts": [ - "eslint --fix", - "prettier --write" - ], - "{src,tests,examples}/**/*.js": [ - "prettier --write" - ], - "*.md": [ - "markdownlint --fix", - "prettier --write" - ] + "{src,tests,examples}/**/*.ts": ["eslint --fix", "prettier --write"], + "{src,tests,examples}/**/*.js": ["prettier --write"], + "*.md": ["markdownlint --fix", "prettier --write"] } diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c246d921..313c7e905 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,11 @@ # Changelog and release notes ## Unreleased + + ### Features + - **Breaking Change**: `AuthChecker` type is now "function or class" - update to `AuthCheckerFn` if the function form is needed in the code - **Breaking Change**: update `graphql-js` peer dependency to `^16.6.0` - support class-based auth checker, which allows for dependency injection @@ -11,7 +14,9 @@ - support disabling inferring default values (#793) - support readonly arrays for roles of `@Authorized` decorator (#935) - add sync version of `buildTypeDefsAndResolvers` function (#803) + ### Fixes + - **Breaking Change**: properly emit types nullability when `defaultValue` is provided and remove `ConflictingDefaultWithNullableError` error (#751) - allow defining extension on field resolver level for fields also defined as a property of the class (#776) - fix throwing error when schema with dynamic default value was built again (#787) @@ -19,29 +24,39 @@ - disable broken exposing input types fields under a changed name via `@Field({ name: "..." })` - support overwriting fields of extended types (#1109) - properly execute args validation for nullable items array (#1328) + ### Others + - **Breaking Change**: update `class-validator` peer dependency to `>=0.14.0` - **Breaking Change**: change build config to ES2019 - drop support for Node.js < 14.5 ## v1.1.1 + ### Fixes + - fix crashing when of union's or interface type's `resolveType` function returns `undefined` or `null` (#731) - fix crashing when no reflected type available for fields with params decorators (#724) - fix not registering object types implementing interface type when interface type is used as object type field type (#736) - properly transform nested array of input type classes (#737) ## v1.1.0 + ### Features + - allow passing custom validation function as `validate` option to `buildSchema` - support defining deprecation reason and description of enum members (#714) + ### Fixes + - **Breaking Change**: throw error when wrong type of value provided as arg or input for `GraphQLISODateTime` and `GraphQLTimestamp` scalars - don't include in schema the fields declared as `@FieldResolver` when that resolvers classes aren't provided in `resolvers` array - fix grammar in `CannotDetermineGraphQLTypeError` error message - properly inherit extensions from parent class and its fields ## v1.0.0 + ### Features + - **Breaking Change**: emit in schema only types actually used by provided resolvers classes (#415) - **Breaking Change**: update `graphql-js` peer dependency to `^15.3.0` - **Breaking Change**: update `graphql-query-complexity` dependency to `^0.7.0` and drop support for `fieldConfigEstimator` (use `fieldExtensionsEstimator` instead) @@ -60,7 +75,9 @@ - expose `createResolversMap` utility that generates apollo-like resolvers object - support IoC containers which `.get()` method returns a `Promise` of resolver instance - update deps to newest major versions (`tslib`, `graphql-query-complexity`) + ### Fixes + - **Breaking Change**: stop returning null for `GraphQLTimestamp` and `GraphQLISODateTime` scalars when returned value is not a `Date` instance - now it throws explicit error instead - **Breaking Change**: fix transforming and validating nested inputs and arrays (#462) - refactor union types function syntax handling to prevent possible errors with circular refs @@ -74,61 +91,87 @@ - fix using shared union and interface types in multiple schemas when `resolveType` is used - properly inherit directives while extending `@InputType` or `@ObjectType` classes (#626) - skip transforming empty array items into input classes + ### Others + - **Breaking Change**: change build config to ES2018 - drop support for Node.js < 10.3 - **Breaking Change**: remove deprecated `DepreciationOptions` interface - **Breaking Change**: remove deprecated direct array syntax for declaring union types ## v0.17.6 + ### Fixes + - fix leaking resolver source code in `MissingSubscriptionTopicsError` error message (#489) ## v0.17.5 + ### Features + - rename `DepreciationOptions` interface to `DeprecationOptions` and deprecate the old one - update deps to newest minor versions (`tslib`, `semver`, `graphql-query-complexity` and `glob`) - support nested array types (`@Field(type => [[Int]])`) (#393) - deprecate the direct array syntax for union types + ### Fixes + - fix errors on circular refs in union types (#364) by adding the function syntax (`() => TClassTypes`) ## v0.17.4 + ### Features + - add support for creating custom parameter decorators (#329) - allow to provide custom `subscribe` function in `@Subscription` decorator (#328) ## v0.17.3 + ### Features -- update packages `semver` to `^6.0.0` and `graphql-subscriptions` to `^1.1.0` + +- update packages `semver` to `^6.0.0` and `graphql-subscriptions` to `^1.1.0` + ### Fixes + - fix broken compatibility with newer `@types/graphql` due to using removed private types (e.g. `MaybePromise`) (#320) ## v0.17.2 + ### Features + - add support for defining `resolveType` function for interfaces and unions (#319) - add support for setting default nullability for fields and return types (#297) - add `skipCheck` option in `buildSchema` to disable checking the correctness of a schema - add postinstall script for printing info on console about supporting the project + ### Fixes + - fix generating plain resolvers for queries and mutations (compatibility with Apollo client state) ## v0.17.1 + ### Features + - add support for emitting schema file in not existing directory (#269) - drop support for Node.js v6 (end of LTS in April 2019) + ### Fixes + - fix typings discovery support for WebStorm (#276) - allow for returning plain objects when using `ObjectType`s that implements `InterfaceType`s or extends other classes (#160) ## v0.17.0 + ### Features + - **Breaking Change**: make `graphql-js` packages a peer dependencies, bump `graphql` to `^14.1.1` and `@types/graphql` to `^14.0.7` (#239) - **Breaking Change**: remove `useContainer` function and allow to register container by `buildSchema` options (#241) - **Breaking Change**: change the default `PrintSchemaOptions` option `commentDescriptions` to false (no more `#` comments in SDL) - add support for passing `PrintSchemaOptions` in `buildSchema.emitSchemaFile` (e.g. `commentDescriptions: true` to restore previous behavior) - add `buildTypeDefsAndResolvers` utils function for generating apollo-like `typeDefs` and `resolvers` pair (#233) - add support for generic types (#255) + ### Fixes + - **Breaking Change**: remove the `formatArgumentValidationError` helper as it's not compatible and not needed in new Apollo Server (#258) - fix calling return type getter function `@Field(type => Foo)` before finishing module evaluation (allow for extending circular classes using `require`) - fix nullifying other custom method decorators - call the method on target instance, not the stored reference to original function (#247) @@ -136,175 +179,250 @@ - prevent unnecessary conversion of an object that is already an instance of the requested type (avoid constructor side-effects) ## v0.16.0 + ### Features + - add support for default values in schema (#203) - add support for lists with nullable items (#211) + ### Fixes + - fix browser shim (compatibility with polyfills for decorator support) ## v0.15.0 + ### Features + - **Breaking Change**: upgrade `graphql` to `^14.0.2`, `graphql-subscriptions` to `^1.0.0` and `@types/graphql` to `^14.0.2` - update all other dependencies - drop support for Node.js v9 -- add capability to emit the schema definition file (*.gql) as a `buildSchema` option +- add capability to emit the schema definition file (\*.gql) as a `buildSchema` option - add `emitSchemaDefinitionFile` helper function for emitting the schema SDL ## v0.14.0 + ### Features + - **Breaking Change**: change `ClassType` type and export it in package index - **Breaking Change**: refactor generic `createUnionType` to remove the 10 types limit (note: requires TypeScript >=3.0.1) - add support for subscribing to dynamic topics - based on args/ctx/root (#137) - add support for query complexity analysis - integration with `graphql-query-complexity` (#139) ## v0.13.1 + ### Fixes + - fix missing loosely typed overload signature for `createUnionType` (remove the 10 types limit) ## v0.13.0 + ### Features + - make `class-validator` a virtual peer dependency and update it to newest `0.9.1` version - add support for creating scoped containers (#113) ## v0.12.3 + ### Features + - add reflect-metadata checks and informative error if no polyfill provided - update `@types/graphql` to latest version (`^0.13.3`) + ### Fixes + - fix throwing error when `of => objectType` wasn't provided in abstract resolver class - fix calling `Object.assign` with boolean arguments (#111) ## v0.12.2 + ### Features + - add support for using type classes in browser (configure webpack to use decorators shim) + ### Fixes + - fix swallowing false argument value (#101) ## v0.12.1 + ### Fixes + - fix bug with overriding methods from parent resolver class (#95) ## v0.12.0 + ### Features + - **Breaking Change**: remove deprecated `ActionData` and `FilterActionData` interfaces - add support for resolver classes inheritance - add `name` decorator option for `@Field` and `@FieldResolver` decorators that allows to set the schema name different than the property name ## v0.11.3 + ### Features + - make auth checker feature generic typed (default `string` for backward compatibility) ## v0.11.2 + ### Features + - attach `MetadataStorage` to global scope (support multiple packages/modules) - rename and deprecate `ActionData` and `FilterActionData` interfaces to `ResolverData` and `ResolverFilterData` ## v0.11.1 + ### Features + - add support for returning null instead of throwing authorization error (`authMode` property of `buildSchema` config) - add support for generating object type field in schema from method with `@FieldResolver` + ### Fixes + - fix bug when converting object scalars to target class instance (#65) ## v0.11.0 + ### Features + - add support for creating and attaching middlewares, guards and interceptors to fields and resolvers - **Breaking Change**: remove deprecated decorators with `GraphQL` prefix and `{ array: true }` type option ## v0.10.0 + ### Features + - add `buildSchemaSync` function to build the schema synchronously (unsafe! without additional errors checks) - update package dependencies - **Breaking Change**: update `@types/graphql` to `0.13.0` + ### Fixes + - decorator option `validate` is now merged with `buildSchema`'s `validate` config instead of overwriting it ## v0.9.1 + ### Fixes + - fix bug with extending non-TypeGraphQL classes ## v0.9.0 + ### Features + - add support for GraphQL subscriptions using `graphql-subscriptions` - update package dependencies - deprecate `{ array: true }` type option ## v0.8.1 + ### Features + - add `@Info()` decorator for injecting GraphQL resolve info to resolvers - add support for injecting parts of `root` and `context` objects with `@Root("field")` and `@Ctx("field")` decorators ## v0.8.0 + ### Features + - add base support for GraphQL enums using TypeScript enums - add support for defining GraphQL unions - add support for importing resolvers from file path glob - deprecate decorators with `GraphQL` prefix - use `@ArgsType`, `@InputType`, `@InterfaceType`, `@ObjectType` and `@Resolver` instead + ### Fixes + - fix not working array type notation in circular dependencies (correct thunk generation) ## v0.7.0 + ### Features + - add authorization feature - `@Authorized` decorator and `authChecker` function in schema options ([see docs](https://github.com/MichalLytek/type-graphql/blob/master/docs/authorization.md)) - add support for defining array type using mongoose-like notation `[Type]` - **Breaking Change**: remove deprecated `@GraphQLArgumentType` decorator - use `@GraphQLArgsType` instead ## v0.6.0 + ### Features + - add support for defining GraphQL interfaces and implementing it by object types - add support for extending input, args, object and interface types classes - add support for implementing GraphQL interfaces without decorators duplication - **Breaking Change**: make `buildSchema` async - now it returns a Promise of `GraphQLSchema` - rename and deprecate `@GraphQLArgumentType` decorator - use `@GraphQLArgsType` instead + ### Fixes + - allow for no args in `@GraphQLResolver` decorator to keep consistency with other resolver classes ## v0.5.0 + ### Features + - create instance of root object when it's type provided in resolver - change `Date` scalar names to `GraphQLISODateTime` and `GraphQLTimestamp` - support only `Date` objects (instances) serialization in `GraphQLTimestamp` (and in `GraphQLISODateTime` too) - update package dependencies - add test suite with 92%+ coverage + ### Fixes + - **Breaking change**: switch array `nullable` option behavior from `[Type]!` to `[Type!]` - add more detailed type reflection error message (parameters support) - fix `ResolverInterface` resolver function type (allow additional parameters) - add support for named param in `@GraphQLResolver` lambda and for object class as param ## v0.4.0 + ### Features + - add basic support for automatic arguments and inputs validation using `class-validator` - add interface `ResolverInterface` for type checking of resolver class methods (field resolvers) - update `graphql` dependency from `^0.12.3` to `^0.13.0` + ### Fixes + - fix default values for arg/input fields (class property initializers) - use `new` instead of `Object.create` ## v0.3.0 + ### Features + - add support for descriptions in schema (types, args, queries, etc.) - add support for declaring deprecation reason on object fields and queries/mutations + ### Fixes + - fix scalars ID alias (GraphQLID not GraphQLString) ## v0.2.0 + ### Features + - add support for Date type (built-in scalar) - add support for custom scalars (and mapping it to TS types) - change `@Context` decorator name to `@Ctx` ## v0.1.2 + ### Fixes + - fix missing type args in schema when declared in field resolver - fix missing resolver function when defined as type field method - fix creating instances of root object when internal fields are Promises (switch from `plainToClass` to vanilla JS) - fix converting field and resolvers args errors while converting gql objects (weird `prototype` stuffs) ## v0.1.1 + ### Features + - add support for omitting return type when use type options, in selected decorators (`@Field`, `@Arg`) + ### Fixes + - fix class getter resolvers bug - missing fields from prototype (`plainToClass` bug) ## v0.1.0 + ### Initial release diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index aeb355c54..a9cfbabc2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -99,8 +99,10 @@ If we ask for changes via code reviews then: That's it! Thank you for your contribution! + ### After your pull request is merged + After your pull request is merged, you can safely delete your branch and pull the changes from the main (upstream) repository: diff --git a/cspell.json b/cspell.json index 962adcba5..b05d48510 100644 --- a/cspell.json +++ b/cspell.json @@ -8,13 +8,6 @@ "@cspell/dict-shell/cspell-ext.json", "@cspell/dict-typescript/cspell-ext.json" ], - "ignorePaths": [ - "**/build/", - "**/dist/", - "**/coverage/", - "**/node_modules/" - ], - "words": [ - "middlewares" - ] + "ignorePaths": ["**/build/", "**/dist/", "**/coverage/", "**/node_modules/"], + "words": ["middlewares"] } diff --git a/examples/apollo-cache/recipe-resolver.ts b/examples/apollo-cache/recipe-resolver.ts index a76efb1e0..98e06fb62 100644 --- a/examples/apollo-cache/recipe-resolver.ts +++ b/examples/apollo-cache/recipe-resolver.ts @@ -12,7 +12,7 @@ export class RecipeResolver { @Query(returns => Recipe, { nullable: true }) async recipe(@Arg("title") title: string): Promise { console.log(`Called 'recipe' with title '${title}' on ${getTime()}`); - return await this.items.find(recipe => recipe.title === title); + return this.items.find(recipe => recipe.title === title); } @Query(returns => Recipe, { nullable: true }) @@ -20,11 +20,11 @@ export class RecipeResolver { @CacheControl({ maxAge: 60 }) async cachedRecipe(@Arg("title") title: string): Promise { console.log(`Called 'cachedRecipe' with title '${title}' on ${getTime()}`); - return await this.items.find(recipe => recipe.title === title); + return this.items.find(recipe => recipe.title === title); } @Query(returns => [Recipe]) async recipes(): Promise { - return await this.items; + return this.items; } } diff --git a/examples/apollo-federation/helpers/buildFederatedSchema.ts b/examples/apollo-federation/helpers/buildFederatedSchema.ts index 80d2e3dc7..a84e83033 100644 --- a/examples/apollo-federation/helpers/buildFederatedSchema.ts +++ b/examples/apollo-federation/helpers/buildFederatedSchema.ts @@ -1,8 +1,8 @@ -import { buildSchema, BuildSchemaOptions, createResolversMap } from "../../../src"; import gql from "graphql-tag"; import deepMerge from "lodash.merge"; import { buildSubgraphSchema } from "@apollo/subgraph"; import { IResolvers, printSchemaWithDirectives } from "@graphql-tools/utils"; +import { buildSchema, BuildSchemaOptions, createResolversMap } from "../../../src"; export async function buildFederatedSchema( options: Omit, diff --git a/examples/authorization/resolver.ts b/examples/authorization/resolver.ts index c548f2565..c0af46701 100644 --- a/examples/authorization/resolver.ts +++ b/examples/authorization/resolver.ts @@ -10,7 +10,7 @@ export class ExampleResolver { // anyone can read recipes collection @Query(returns => [Recipe]) async recipes(): Promise { - return await this.recipesData; + return this.recipesData; } @Authorized() // only logged users can add new recipe diff --git a/examples/automatic-validation/examples.gql b/examples/automatic-validation/examples.gql index 8dd36fe8a..ea57cf16b 100644 --- a/examples/automatic-validation/examples.gql +++ b/examples/automatic-validation/examples.gql @@ -7,27 +7,24 @@ query GetRecipes { } mutation CorrectAddRecipe { - addRecipe(input: { - title: "Correct title" - description: "Very very very very very very very very long description" - }) { + addRecipe( + input: { + title: "Correct title" + description: "Very very very very very very very very long description" + } + ) { creationDate } } mutation AddRecipeWithoutDesc { - addRecipe(input: { - title: "Correct title" - }) { + addRecipe(input: { title: "Correct title" }) { creationDate } } mutation IncorrectAddRecipe { - addRecipe(input: { - title: "Correct title" - description: "Too short description" - }) { + addRecipe(input: { title: "Correct title", description: "Too short description" }) { creationDate } } diff --git a/examples/automatic-validation/recipe-resolver.ts b/examples/automatic-validation/recipe-resolver.ts index f49b45a88..bb0b3d81a 100644 --- a/examples/automatic-validation/recipe-resolver.ts +++ b/examples/automatic-validation/recipe-resolver.ts @@ -13,7 +13,7 @@ export class RecipeResolver { async recipes(@Args() options: RecipesArguments): Promise { const start: number = options.skip; const end: number = options.skip + options.take; - return await this.items.slice(start, end); + return this.items.slice(start, end); } @Mutation(returns => Recipe) diff --git a/examples/automatic-validation/recipes-arguments.ts b/examples/automatic-validation/recipes-arguments.ts index a83c854ba..87983fcd6 100644 --- a/examples/automatic-validation/recipes-arguments.ts +++ b/examples/automatic-validation/recipes-arguments.ts @@ -5,10 +5,10 @@ import { ArgsType, Field, Int } from "../../src"; export class RecipesArguments { @Field(type => Int) @Min(0) - skip: number = 0; + skip = 0; @Field(type => Int) @Min(1) @Max(50) - take: number = 10; + take = 10; } diff --git a/examples/custom-validation/examples.gql b/examples/custom-validation/examples.gql index 8dd36fe8a..ea57cf16b 100644 --- a/examples/custom-validation/examples.gql +++ b/examples/custom-validation/examples.gql @@ -7,27 +7,24 @@ query GetRecipes { } mutation CorrectAddRecipe { - addRecipe(input: { - title: "Correct title" - description: "Very very very very very very very very long description" - }) { + addRecipe( + input: { + title: "Correct title" + description: "Very very very very very very very very long description" + } + ) { creationDate } } mutation AddRecipeWithoutDesc { - addRecipe(input: { - title: "Correct title" - }) { + addRecipe(input: { title: "Correct title" }) { creationDate } } mutation IncorrectAddRecipe { - addRecipe(input: { - title: "Correct title" - description: "Too short description" - }) { + addRecipe(input: { title: "Correct title", description: "Too short description" }) { creationDate } } diff --git a/examples/custom-validation/recipe-resolver.ts b/examples/custom-validation/recipe-resolver.ts index f49b45a88..bb0b3d81a 100644 --- a/examples/custom-validation/recipe-resolver.ts +++ b/examples/custom-validation/recipe-resolver.ts @@ -13,7 +13,7 @@ export class RecipeResolver { async recipes(@Args() options: RecipesArguments): Promise { const start: number = options.skip; const end: number = options.skip + options.take; - return await this.items.slice(start, end); + return this.items.slice(start, end); } @Mutation(returns => Recipe) diff --git a/examples/custom-validation/recipes-arguments.ts b/examples/custom-validation/recipes-arguments.ts index fc4280ab7..3faeca7f5 100644 --- a/examples/custom-validation/recipes-arguments.ts +++ b/examples/custom-validation/recipes-arguments.ts @@ -6,10 +6,10 @@ export class RecipesArguments { @Field(type => Int) // use decorators for Joi @Joiful.number().min(0) - skip: number = 0; + skip = 0; @Field(type => Int) // use decorators for Joi @Joiful.number().min(1).max(50) - take: number = 10; + take = 10; } diff --git a/examples/enums-and-unions/resolver.ts b/examples/enums-and-unions/resolver.ts index a0b68fc5c..5bbf89276 100644 --- a/examples/enums-and-unions/resolver.ts +++ b/examples/enums-and-unions/resolver.ts @@ -10,6 +10,7 @@ import { sampleCooks } from "./cook.samples"; @Resolver() export class ExampleResolver { private recipesData: Recipe[] = sampleRecipes; + private cooks: Cook[] = sampleCooks; @Query(returns => [Recipe]) diff --git a/examples/extensions/resolver.ts b/examples/extensions/resolver.ts index 4da36935a..be54356fd 100644 --- a/examples/extensions/resolver.ts +++ b/examples/extensions/resolver.ts @@ -10,7 +10,7 @@ export class ExampleResolver { @Query(returns => [Recipe]) async recipes(): Promise { - return await this.recipesData; + return this.recipesData; } @Mutation() diff --git a/examples/generic-types/paginated-response.type.ts b/examples/generic-types/paginated-response.type.ts index 948c52847..969491171 100644 --- a/examples/generic-types/paginated-response.type.ts +++ b/examples/generic-types/paginated-response.type.ts @@ -1,7 +1,7 @@ import { ClassType, Field, ObjectType, Int } from "../../src"; export default function PaginatedResponse( - itemsFieldValue: ClassType | String | Number | Boolean, + itemsFieldValue: ClassType | string | number | boolean, ) { // `isAbstract` decorator option is mandatory to prevent registering in schema @ObjectType({ isAbstract: true }) diff --git a/examples/interfaces-inheritance/examples.gql b/examples/interfaces-inheritance/examples.gql index 8c520715e..1814957e6 100644 --- a/examples/interfaces-inheritance/examples.gql +++ b/examples/interfaces-inheritance/examples.gql @@ -14,22 +14,18 @@ query GetPersons { } mutation AddStudent { - addStudent(input: { - name: "Student 1" - dateOfBirth: "1991-11-30T00:00:00.000Z" - universityName: "Uni 1" - }) { + addStudent( + input: { name: "Student 1", dateOfBirth: "1991-11-30T00:00:00.000Z", universityName: "Uni 1" } + ) { id age } } mutation AddEmployee { - addEmployee(input: { - name: "Employee 1" - dateOfBirth: "1995-07-23T00:00:00.000Z" - companyName: "Company 1" - }) { + addEmployee( + input: { name: "Employee 1", dateOfBirth: "1995-07-23T00:00:00.000Z", companyName: "Company 1" } + ) { id age } diff --git a/examples/interfaces-inheritance/person/person.type.ts b/examples/interfaces-inheritance/person/person.type.ts index c38eba7a3..d69e425f1 100644 --- a/examples/interfaces-inheritance/person/person.type.ts +++ b/examples/interfaces-inheritance/person/person.type.ts @@ -5,7 +5,9 @@ import { IPerson } from "./person.interface"; @ObjectType({ implements: IPerson }) export class Person implements IPerson { id: string; + name: string; + age: number; @Field() diff --git a/examples/middlewares-custom-decorators/recipe/recipe.args.ts b/examples/middlewares-custom-decorators/recipe/recipe.args.ts index 7ee59e943..030ff6cb8 100644 --- a/examples/middlewares-custom-decorators/recipe/recipe.args.ts +++ b/examples/middlewares-custom-decorators/recipe/recipe.args.ts @@ -5,10 +5,10 @@ import { ArgsType, Field, Int } from "../../../src"; export class RecipesArgs { @Field(type => Int) @Min(0) - skip: number = 0; + skip = 0; @Field(type => Int) @Min(1) @Max(50) - take: number = 10; + take = 10; } diff --git a/examples/middlewares-custom-decorators/recipe/recipe.resolver.ts b/examples/middlewares-custom-decorators/recipe/recipe.resolver.ts index f11803ab0..3daca0972 100644 --- a/examples/middlewares-custom-decorators/recipe/recipe.resolver.ts +++ b/examples/middlewares-custom-decorators/recipe/recipe.resolver.ts @@ -21,6 +21,6 @@ export class RecipeResolver { console.log(`User "${currentUser.name}" queried for recipes!`); const start = options.skip; const end = options.skip + options.take; - return await this.items.slice(start, end); + return this.items.slice(start, end); } } diff --git a/examples/mikro-orm/examples.gql b/examples/mikro-orm/examples.gql index 424e0bc4a..feb6721e3 100644 --- a/examples/mikro-orm/examples.gql +++ b/examples/mikro-orm/examples.gql @@ -31,9 +31,7 @@ query GetRecipe { } mutation AddRecipe { - addRecipe(recipe: { - title: "New Recipe" - }) { + addRecipe(recipe: { title: "New Recipe" }) { id ratings { value @@ -45,10 +43,7 @@ mutation AddRecipe { } mutation RateRecipe { - rate(rate: { - recipeId: 3 - value: 4 - }) { + rate(rate: { recipeId: 3, value: 4 }) { id ratings { value diff --git a/examples/mixin-classes/resolver.ts b/examples/mixin-classes/resolver.ts index 089396fc9..a4eb2902b 100644 --- a/examples/mixin-classes/resolver.ts +++ b/examples/mixin-classes/resolver.ts @@ -7,6 +7,7 @@ import User from "./types/user"; @Resolver() export default class UserResolver { private autoIncrementId = 0; + private readonly usersData: User[] = []; @Query(returns => [User]) diff --git a/examples/query-complexity/recipe-resolver.ts b/examples/query-complexity/recipe-resolver.ts index ff37c3b17..933cdccc2 100644 --- a/examples/query-complexity/recipe-resolver.ts +++ b/examples/query-complexity/recipe-resolver.ts @@ -18,7 +18,7 @@ export class RecipeResolver implements ResolverInterface { complexity: ({ childComplexity, args }) => args.count * childComplexity, }) async recipes(@Arg("count") count: number): Promise { - return await this.items.slice(0, count); + return this.items.slice(0, count); } /* Complexity in field resolver overrides complexity of equivalent field type */ diff --git a/examples/redis-subscriptions/examples.gql b/examples/redis-subscriptions/examples.gql index 15dab7377..7ce211d6c 100644 --- a/examples/redis-subscriptions/examples.gql +++ b/examples/redis-subscriptions/examples.gql @@ -1,5 +1,5 @@ query FirstRecipe { - recipe(id:"1") { + recipe(id: "1") { title description comments { @@ -11,19 +11,11 @@ query FirstRecipe { } mutation AddCommentToRecipe1 { - addNewComment(comment: { - recipeId: "1", - nickname: "MichalLytek", - content: "Nice one!" - }) + addNewComment(comment: { recipeId: "1", nickname: "MichalLytek", content: "Nice one!" }) } mutation AddCommentToRecipe2 { - addNewComment(comment: { - recipeId: "2", - nickname: "MichalLytek", - content: "Nice two!" - }) + addNewComment(comment: { recipeId: "2", nickname: "MichalLytek", content: "Nice two!" }) } subscription NewCommentsForRecipe2 { diff --git a/examples/resolvers-inheritance/resource/resource.resolver.ts b/examples/resolvers-inheritance/resource/resource.resolver.ts index 7e388b88c..47ea1c8f8 100644 --- a/examples/resolvers-inheritance/resource/resource.resolver.ts +++ b/examples/resolvers-inheritance/resource/resource.resolver.ts @@ -18,10 +18,10 @@ import { ResourceService, ResourceServiceFactory } from "./resource.service"; @ArgsType() export class GetAllArgs { @Field(type => Int) - skip: number = 0; + skip = 0; @Field(type => Int) - take: number = 10; + take = 10; } export function ResourceResolver( diff --git a/examples/simple-usage/examples.gql b/examples/simple-usage/examples.gql index 67e1aed95..35edc9e98 100644 --- a/examples/simple-usage/examples.gql +++ b/examples/simple-usage/examples.gql @@ -19,10 +19,7 @@ query GetRecipes { } mutation AddRecipe { - addRecipe(recipe: { - title: "New recipe" - description: "Simple description" - }) { + addRecipe(recipe: { title: "New recipe", description: "Simple description" }) { creationDate } } diff --git a/examples/simple-usage/recipe-resolver.ts b/examples/simple-usage/recipe-resolver.ts index 4b2e24dbc..6ff70e2b9 100644 --- a/examples/simple-usage/recipe-resolver.ts +++ b/examples/simple-usage/recipe-resolver.ts @@ -19,12 +19,12 @@ export class RecipeResolver implements ResolverInterface { @Query(returns => Recipe, { nullable: true }) async recipe(@Arg("title") title: string): Promise { - return await this.items.find(recipe => recipe.title === title); + return this.items.find(recipe => recipe.title === title); } @Query(returns => [Recipe], { description: "Get all the recipes from around the world " }) async recipes(): Promise { - return await this.items; + return this.items; } @Mutation(returns => Recipe) diff --git a/examples/simple-usage/schema.gql b/examples/simple-usage/schema.gql index f2d492a24..8ba21d6ec 100644 --- a/examples/simple-usage/schema.gql +++ b/examples/simple-usage/schema.gql @@ -15,16 +15,22 @@ type Mutation { type Query { recipe(title: String!): Recipe - """Get all the recipes from around the world """ + """ + Get all the recipes from around the world + """ recipes: [Recipe!]! } -"""Object representing cooking recipe""" +""" +Object representing cooking recipe +""" type Recipe { averageRating: Float creationDate: DateTime! - """The recipe description with preparation info""" + """ + The recipe description with preparation info + """ description: String ratings: [Int!]! ratingsCount(minRate: Int = 0): Int! diff --git a/examples/typegoose/resolvers/recipe-resolver.ts b/examples/typegoose/resolvers/recipe-resolver.ts index f9c3185c8..af10dc105 100644 --- a/examples/typegoose/resolvers/recipe-resolver.ts +++ b/examples/typegoose/resolvers/recipe-resolver.ts @@ -18,7 +18,7 @@ export class RecipeResolver { @Query(returns => [Recipe]) async recipes(): Promise { - return await RecipeModel.find({}); + return RecipeModel.find({}); } @Mutation(returns => Recipe) diff --git a/examples/typegoose/schema.gql b/examples/typegoose/schema.gql index 25561bb10..b47f0387b 100644 --- a/examples/typegoose/schema.gql +++ b/examples/typegoose/schema.gql @@ -13,7 +13,9 @@ type Mutation { rate(rate: RateInput!): Recipe! } -"""Mongo object id scalar type""" +""" +Mongo object id scalar type +""" scalar ObjectId type Query { diff --git a/examples/typeorm-basic-usage/entities/rate.ts b/examples/typeorm-basic-usage/entities/rate.ts index 10c4d3294..94ed3515b 100644 --- a/examples/typeorm-basic-usage/entities/rate.ts +++ b/examples/typeorm-basic-usage/entities/rate.ts @@ -1,4 +1,3 @@ -import { ObjectType, Field, Int } from "../../../src"; import { Column, Entity, @@ -7,6 +6,7 @@ import { CreateDateColumn, RelationId, } from "typeorm"; +import { ObjectType, Field, Int } from "../../../src"; import { User } from "./user"; import { Recipe } from "./recipe"; @@ -24,6 +24,7 @@ export class Rate { @Field(type => User) @ManyToOne(type => User) user: User; + @RelationId((rate: Rate) => rate.user) userId: number; @@ -33,6 +34,7 @@ export class Rate { @ManyToOne(type => Recipe) recipe: Recipe; + @RelationId((rate: Rate) => rate.recipe) recipeId: number; } diff --git a/examples/typeorm-basic-usage/entities/recipe.ts b/examples/typeorm-basic-usage/entities/recipe.ts index 77293e365..7e5c4e0c8 100644 --- a/examples/typeorm-basic-usage/entities/recipe.ts +++ b/examples/typeorm-basic-usage/entities/recipe.ts @@ -1,5 +1,5 @@ -import { Field, ID, ObjectType } from "../../../src"; import { Entity, PrimaryGeneratedColumn, Column, OneToMany, ManyToOne, RelationId } from "typeorm"; +import { Field, ID, ObjectType } from "../../../src"; import { Rate } from "./rate"; import { User } from "./user"; @@ -26,6 +26,7 @@ export class Recipe { @Field(type => User) @ManyToOne(type => User) author: User; + @RelationId((recipe: Recipe) => recipe.author) authorId: number; } diff --git a/examples/typeorm-basic-usage/entities/user.ts b/examples/typeorm-basic-usage/entities/user.ts index b2f3b206f..97afd0c16 100644 --- a/examples/typeorm-basic-usage/entities/user.ts +++ b/examples/typeorm-basic-usage/entities/user.ts @@ -1,5 +1,5 @@ -import { Field, ID, ObjectType } from "../../../src"; import { PrimaryGeneratedColumn, Column, Entity } from "typeorm"; +import { Field, ID, ObjectType } from "../../../src"; @ObjectType() @Entity() diff --git a/examples/typeorm-basic-usage/examples.gql b/examples/typeorm-basic-usage/examples.gql index 424e0bc4a..feb6721e3 100644 --- a/examples/typeorm-basic-usage/examples.gql +++ b/examples/typeorm-basic-usage/examples.gql @@ -31,9 +31,7 @@ query GetRecipe { } mutation AddRecipe { - addRecipe(recipe: { - title: "New Recipe" - }) { + addRecipe(recipe: { title: "New Recipe" }) { id ratings { value @@ -45,10 +43,7 @@ mutation AddRecipe { } mutation RateRecipe { - rate(rate: { - recipeId: 3 - value: 4 - }) { + rate(rate: { recipeId: 3, value: 4 }) { id ratings { value diff --git a/examples/typeorm-basic-usage/resolvers/rate-resolver.ts b/examples/typeorm-basic-usage/resolvers/rate-resolver.ts index dc7244a68..deae903ff 100644 --- a/examples/typeorm-basic-usage/resolvers/rate-resolver.ts +++ b/examples/typeorm-basic-usage/resolvers/rate-resolver.ts @@ -1,6 +1,6 @@ -import { Resolver, FieldResolver, Root } from "../../../src"; import { Repository } from "typeorm"; import { InjectRepository } from "typeorm-typedi-extensions"; +import { Resolver, FieldResolver, Root } from "../../../src"; import { Rate } from "../entities/rate"; import { User } from "../entities/user"; diff --git a/examples/typeorm-basic-usage/resolvers/recipe-resolver.ts b/examples/typeorm-basic-usage/resolvers/recipe-resolver.ts index 9a79a1f02..f0a7e994a 100644 --- a/examples/typeorm-basic-usage/resolvers/recipe-resolver.ts +++ b/examples/typeorm-basic-usage/resolvers/recipe-resolver.ts @@ -1,6 +1,6 @@ -import { Resolver, Query, FieldResolver, Arg, Root, Mutation, Ctx, Int } from "../../../src"; import { Repository } from "typeorm"; import { InjectRepository } from "typeorm-typedi-extensions"; +import { Resolver, Query, FieldResolver, Arg, Root, Mutation, Ctx, Int } from "../../../src"; import { Recipe } from "../entities/recipe"; import { Rate } from "../entities/rate"; @@ -36,7 +36,7 @@ export class RecipeResolver { ...recipeInput, authorId: user.id, }); - return await this.recipeRepository.save(recipe); + return this.recipeRepository.save(recipe); } @Mutation(returns => Recipe) diff --git a/examples/typeorm-lazy-relations/entities/rate.ts b/examples/typeorm-lazy-relations/entities/rate.ts index f494e5654..e0de51c5e 100644 --- a/examples/typeorm-lazy-relations/entities/rate.ts +++ b/examples/typeorm-lazy-relations/entities/rate.ts @@ -1,5 +1,5 @@ -import { ObjectType, Field, Int } from "../../../src"; import { Column, Entity, ManyToOne, PrimaryGeneratedColumn, CreateDateColumn } from "typeorm"; +import { ObjectType, Field, Int } from "../../../src"; import { User } from "./user"; import { Recipe } from "./recipe"; diff --git a/examples/typeorm-lazy-relations/entities/recipe.ts b/examples/typeorm-lazy-relations/entities/recipe.ts index 7211e7bc2..f9e80cd7c 100644 --- a/examples/typeorm-lazy-relations/entities/recipe.ts +++ b/examples/typeorm-lazy-relations/entities/recipe.ts @@ -1,5 +1,5 @@ -import { Field, ID, ObjectType } from "../../../src"; import { Entity, PrimaryGeneratedColumn, Column, OneToMany, ManyToOne } from "typeorm"; +import { Field, ID, ObjectType } from "../../../src"; import { Rate } from "./rate"; import { User } from "./user"; diff --git a/examples/typeorm-lazy-relations/entities/user.ts b/examples/typeorm-lazy-relations/entities/user.ts index e21a5c0b4..f17f4f636 100644 --- a/examples/typeorm-lazy-relations/entities/user.ts +++ b/examples/typeorm-lazy-relations/entities/user.ts @@ -1,5 +1,5 @@ -import { Field, ID, ObjectType } from "../../../src"; import { PrimaryGeneratedColumn, Column, Entity, OneToMany } from "typeorm"; +import { Field, ID, ObjectType } from "../../../src"; import { Recipe } from "./recipe"; import { Lazy } from "../helpers"; diff --git a/examples/typeorm-lazy-relations/examples.gql b/examples/typeorm-lazy-relations/examples.gql index b14efabe4..9c2cfe35f 100644 --- a/examples/typeorm-lazy-relations/examples.gql +++ b/examples/typeorm-lazy-relations/examples.gql @@ -34,9 +34,7 @@ query GetRecipe { } mutation AddRecipe { - addRecipe(recipe: { - title: "New Recipe" - }) { + addRecipe(recipe: { title: "New Recipe" }) { id ratings { value @@ -48,10 +46,7 @@ mutation AddRecipe { } mutation RateRecipe { - rate(rate: { - recipeId: 3 - value: 4 - }) { + rate(rate: { recipeId: 3, value: 4 }) { id ratings { value diff --git a/examples/typeorm-lazy-relations/resolvers/recipe-resolver.ts b/examples/typeorm-lazy-relations/resolvers/recipe-resolver.ts index 5054d3ef6..28c5006f4 100644 --- a/examples/typeorm-lazy-relations/resolvers/recipe-resolver.ts +++ b/examples/typeorm-lazy-relations/resolvers/recipe-resolver.ts @@ -1,6 +1,6 @@ -import { Resolver, Query, Arg, Mutation, Ctx, Int } from "../../../src/"; import { Repository } from "typeorm"; import { InjectRepository } from "typeorm-typedi-extensions"; +import { Resolver, Query, Arg, Mutation, Ctx, Int } from "../../../src"; import { Recipe } from "../entities/recipe"; import { Rate } from "../entities/rate"; @@ -55,6 +55,6 @@ export class RecipeResolver { ); // return updated recipe - return await this.recipeRepository.save(recipe); + return this.recipeRepository.save(recipe); } } diff --git a/examples/using-container/examples.gql b/examples/using-container/examples.gql index b69c4d482..637acc8de 100644 --- a/examples/using-container/examples.gql +++ b/examples/using-container/examples.gql @@ -17,14 +17,7 @@ query GetRecipes { } mutation AddRecipe { - addRecipe(recipe: { - title: "New recipe", - ingredients: [ - "One", - "Two", - "Three", - ], - }) { + addRecipe(recipe: { title: "New recipe", ingredients: ["One", "Two", "Three"] }) { id numberInCollection } diff --git a/examples/using-scoped-container/examples.gql b/examples/using-scoped-container/examples.gql index 22152b814..4b81d4d6c 100644 --- a/examples/using-scoped-container/examples.gql +++ b/examples/using-scoped-container/examples.gql @@ -20,14 +20,7 @@ query GetRecipes { } mutation AddRecipe { - addRecipe(recipe: { - title: "New recipe", - ingredients: [ - "One", - "Two", - "Three", - ], - }) { + addRecipe(recipe: { title: "New recipe", ingredients: ["One", "Two", "Three"] }) { id title } diff --git a/src/browser-shim.ts b/src/browser-shim.ts index c33a30ae0..6b44bd060 100644 --- a/src/browser-shim.ts +++ b/src/browser-shim.ts @@ -37,9 +37,7 @@ import * as src from "./index"; export const dummyValue = ""; -export function dummyFn() { - return; -} +export function dummyFn() {} export function dummyDecorator() { return dummyFn; } diff --git a/src/decorators/types.ts b/src/decorators/types.ts index b25812aa1..4db122c70 100644 --- a/src/decorators/types.ts +++ b/src/decorators/types.ts @@ -9,7 +9,7 @@ import { } from "../interfaces"; import { ValidateSettings } from "../schema/build-context"; -export interface RecursiveArray extends Array | TValue> {} +export type RecursiveArray = Array | TValue>; export type TypeValue = ClassType | GraphQLScalarType | Function | object | symbol; export type ReturnTypeFuncValue = TypeValue | RecursiveArray; diff --git a/src/helpers/auth-middleware.ts b/src/helpers/auth-middleware.ts index 32c306443..775bb810b 100644 --- a/src/helpers/auth-middleware.ts +++ b/src/helpers/auth-middleware.ts @@ -21,7 +21,8 @@ export function AuthMiddleware( if (!accessGranted) { if (authMode === "null") { return null; - } else if (authMode === "error") { + } + if (authMode === "error") { throw roles.length === 0 ? new UnauthorizedError() : new ForbiddenError(); } } diff --git a/src/helpers/decorators.ts b/src/helpers/decorators.ts index 092fd6f2a..e3a97a0ee 100644 --- a/src/helpers/decorators.ts +++ b/src/helpers/decorators.ts @@ -13,11 +13,10 @@ export function getTypeDecoratorParams( returnTypeFunc: returnTypeFuncOrOptions as ReturnTypeFunc, options: maybeOptions || {}, }; - } else { - return { - options: returnTypeFuncOrOptions || {}, - }; } + return { + options: returnTypeFuncOrOptions || {}, + }; } export function getNameDecoratorParams( @@ -29,11 +28,10 @@ export function getNameDecoratorParams( name: nameOrOptions, options: maybeOptions || ({} as T), }; - } else { - return { - options: nameOrOptions || ({} as T), - }; } + return { + options: nameOrOptions || ({} as T), + }; } export function getArrayFromOverloadedRest(overloadedArray: Array): T[] { diff --git a/src/helpers/findType.ts b/src/helpers/findType.ts index db1cb896c..8f026f9e6 100644 --- a/src/helpers/findType.ts +++ b/src/helpers/findType.ts @@ -67,14 +67,14 @@ export function findType({ getType, typeOptions: options, }; - } else if (metadataDesignType) { + } + if (metadataDesignType) { return { getType: () => metadataDesignType!, typeOptions: options, }; - } else { - throw new Error("Ooops... this should never happen :)"); } + throw new Error("Ooops... this should never happen :)"); } function findTypeValueArrayDepth( diff --git a/src/metadata/getMetadataStorage.ts b/src/metadata/getMetadataStorage.ts index b6ee089b5..a1b3df48c 100644 --- a/src/metadata/getMetadataStorage.ts +++ b/src/metadata/getMetadataStorage.ts @@ -1,4 +1,4 @@ -import { MetadataStorage } from "../metadata/metadata-storage"; +import { MetadataStorage } from "./metadata-storage"; declare global { var TypeGraphQLMetadataStorage: MetadataStorage; diff --git a/src/metadata/metadata-storage.ts b/src/metadata/metadata-storage.ts index 0c7c8f1bd..ba94add67 100644 --- a/src/metadata/metadata-storage.ts +++ b/src/metadata/metadata-storage.ts @@ -31,23 +31,41 @@ import { SchemaGeneratorOptions } from "../schema/schema-generator"; export class MetadataStorage { queries: ResolverMetadata[] = []; + mutations: ResolverMetadata[] = []; + subscriptions: SubscriptionResolverMetadata[] = []; + fieldResolvers: FieldResolverMetadata[] = []; + objectTypes: ObjectClassMetadata[] = []; + inputTypes: ClassMetadata[] = []; + argumentTypes: ClassMetadata[] = []; + interfaceTypes: InterfaceClassMetadata[] = []; + authorizedFields: AuthorizedMetadata[] = []; + enums: EnumMetadata[] = []; + unions: UnionMetadataWithSymbol[] = []; + middlewares: MiddlewareMetadata[] = []; + classDirectives: DirectiveClassMetadata[] = []; + fieldDirectives: DirectiveFieldMetadata[] = []; + classExtensions: ExtensionsClassMetadata[] = []; + fieldExtensions: ExtensionsFieldMetadata[] = []; + resolverClasses: ResolverClassMetadata[] = []; + fields: FieldMetadata[] = []; + params: ParamMetadata[] = []; constructor() { @@ -57,33 +75,43 @@ export class MetadataStorage { collectQueryHandlerMetadata(definition: ResolverMetadata) { this.queries.push(definition); } + collectMutationHandlerMetadata(definition: ResolverMetadata) { this.mutations.push(definition); } + collectSubscriptionHandlerMetadata(definition: SubscriptionResolverMetadata) { this.subscriptions.push(definition); } + collectFieldResolverMetadata(definition: FieldResolverMetadata) { this.fieldResolvers.push(definition); } + collectObjectMetadata(definition: ObjectClassMetadata) { this.objectTypes.push(definition); } + collectInputMetadata(definition: ClassMetadata) { this.inputTypes.push(definition); } + collectArgsMetadata(definition: ClassMetadata) { this.argumentTypes.push(definition); } + collectInterfaceMetadata(definition: InterfaceClassMetadata) { this.interfaceTypes.push(definition); } + collectAuthorizedFieldMetadata(definition: AuthorizedMetadata) { this.authorizedFields.push(definition); } + collectEnumMetadata(definition: EnumMetadata) { this.enums.push(definition); } + collectUnionMetadata(definition: UnionMetadata) { const unionSymbol = Symbol(definition.name); this.unions.push({ @@ -92,6 +120,7 @@ export class MetadataStorage { }); return unionSymbol; } + collectMiddlewareMetadata(definition: MiddlewareMetadata) { this.middlewares.push(definition); } @@ -99,9 +128,11 @@ export class MetadataStorage { collectResolverClassMetadata(definition: ResolverClassMetadata) { this.resolverClasses.push(definition); } + collectClassFieldMetadata(definition: FieldMetadata) { this.fields.push(definition); } + collectHandlerParamMetadata(definition: ParamMetadata) { this.params.push(definition); } @@ -109,6 +140,7 @@ export class MetadataStorage { collectDirectiveClassMetadata(definition: DirectiveClassMetadata) { this.classDirectives.push(definition); } + collectDirectiveFieldMetadata(definition: DirectiveFieldMetadata) { this.fieldDirectives.push(definition); } @@ -116,6 +148,7 @@ export class MetadataStorage { collectExtensionsClassMetadata(definition: ExtensionsClassMetadata) { this.classExtensions.push(definition); } + collectExtensionsFieldMetadata(definition: ExtensionsFieldMetadata) { this.fieldExtensions.push(definition); } @@ -291,7 +324,7 @@ export class MetadataStorage { private buildExtendedResolversMetadata() { this.resolverClasses.forEach(def => { - const target = def.target; + const { target } = def; let superResolver = Object.getPrototypeOf(target); // copy and modify metadata of resolver from parent resolver class diff --git a/src/resolvers/create.ts b/src/resolvers/create.ts index 8be8f27f5..03a7846cf 100644 --- a/src/resolvers/create.ts +++ b/src/resolvers/create.ts @@ -46,9 +46,8 @@ export function createHandlerResolver( return params.then(resolvedParams => targetInstance[resolverMetadata.methodName].apply(targetInstance, resolvedParams), ); - } else { - return targetInstance[resolverMetadata.methodName].apply(targetInstance, params); } + return targetInstance[resolverMetadata.methodName].apply(targetInstance, params); }), ); } @@ -64,9 +63,8 @@ export function createHandlerResolver( return params.then(resolvedParams => targetInstance[resolverMetadata.methodName].apply(targetInstance, resolvedParams), ); - } else { - return targetInstance[resolverMetadata.methodName].apply(targetInstance, params); } + return targetInstance[resolverMetadata.methodName].apply(targetInstance, params); }); }; } @@ -110,9 +108,8 @@ export function createAdvancedFieldResolver( return params.then(resolvedParams => handlerOrGetterValue.apply(targetInstance, resolvedParams), ); - } else { - return handlerOrGetterValue.apply(targetInstance, params); } + return handlerOrGetterValue.apply(targetInstance, params); }); }; } diff --git a/src/resolvers/helpers.ts b/src/resolvers/helpers.ts index 61bcbe8c6..f18e667b4 100644 --- a/src/resolvers/helpers.ts +++ b/src/resolvers/helpers.ts @@ -61,9 +61,8 @@ export function getParams( }); if (paramValues.some(isPromiseLike)) { return Promise.all(paramValues); - } else { - return paramValues; } + return paramValues; } export function applyAuthChecker( diff --git a/src/resolvers/validate-arg.ts b/src/resolvers/validate-arg.ts index a51b3ea2d..adc070cf5 100644 --- a/src/resolvers/validate-arg.ts +++ b/src/resolvers/validate-arg.ts @@ -23,11 +23,10 @@ export async function validateArg( return argValue; } - const validatorOptions: ValidatorOptions = Object.assign( - {}, - typeof globalValidate === "object" ? globalValidate : {}, - typeof argValidate === "object" ? argValidate : {}, - ); + const validatorOptions: ValidatorOptions = { + ...(typeof globalValidate === "object" ? globalValidate : {}), + ...(typeof argValidate === "object" ? argValidate : {}), + }; if (validatorOptions.skipMissingProperties !== false) { validatorOptions.skipMissingProperties = true; } diff --git a/src/schema/build-context.ts b/src/schema/build-context.ts index 0e34106ee..f4febae97 100644 --- a/src/schema/build-context.ts +++ b/src/schema/build-context.ts @@ -42,14 +42,23 @@ export interface BuildContextOptions { export abstract class BuildContext { static dateScalarMode: DateScalarMode; + static scalarsMaps: ScalarsTypeMap[]; + static validate: ValidateSettings; + static authChecker?: AuthChecker; + static authMode: AuthMode; + static pubSub: PubSubEngine; + static globalMiddlewares: Array>; + static container: IOCContainer; + static nullableByDefault: boolean; + static disableInferringDefaultValues: boolean; /** diff --git a/src/schema/schema-generator.ts b/src/schema/schema-generator.ts index 095919256..f1308ade0 100644 --- a/src/schema/schema-generator.ts +++ b/src/schema/schema-generator.ts @@ -105,10 +105,15 @@ export interface SchemaGeneratorOptions extends BuildContextOptions { export abstract class SchemaGenerator { private static objectTypesInfo: ObjectTypeInfo[] = []; + private static inputTypesInfo: InputObjectTypeInfo[] = []; + private static interfaceTypesInfo: InterfaceTypeInfo[] = []; + private static enumTypesInfo: EnumTypeInfo[] = []; + private static unionTypesInfo: UnionTypeInfo[] = []; + private static usedInterfaceTypes = new Set(); static async generateFromMetadata(options: SchemaGeneratorOptions): Promise { @@ -308,7 +313,7 @@ export abstract class SchemaGenerator { let fields = fieldsMetadata.reduce>( (fieldsMap, field) => { - const fieldResolvers = getMetadataStorage().fieldResolvers; + const { fieldResolvers } = getMetadataStorage(); const filteredFieldResolversMetadata = !resolvers ? fieldResolvers : fieldResolvers.filter( @@ -359,7 +364,7 @@ export abstract class SchemaGenerator { const superClass = getSuperClassType(); if (superClass) { const superClassFields = getFieldMetadataFromObjectType(superClass); - fields = Object.assign({}, superClassFields, fields); + fields = { ...superClassFields, ...fields }; } } return fields; @@ -467,7 +472,7 @@ export abstract class SchemaGenerator { const superClass = getSuperClassType(); if (superClass) { const superClassFields = getFieldMetadataFromObjectType(superClass); - fields = Object.assign({}, superClassFields, fields); + fields = { ...superClassFields, ...fields }; } } return fields; @@ -538,7 +543,7 @@ export abstract class SchemaGenerator { const superClass = getSuperClassType(); if (superClass) { const superClassFields = getFieldMetadataFromInputType(superClass); - fields = Object.assign({}, superClassFields, fields); + fields = { ...superClassFields, ...fields }; } } return fields; diff --git a/src/utils/container.ts b/src/utils/container.ts index 2bb6c8a60..899fedd73 100644 --- a/src/utils/container.ts +++ b/src/utils/container.ts @@ -31,7 +31,9 @@ class DefaultContainer { export class IOCContainer { private container: ContainerType | undefined; + private containerGetter: ContainerGetter | undefined; + private defaultContainer = new DefaultContainer(); constructor(iocContainerOrContainerGetter?: ContainerType | ContainerGetter) { diff --git a/tests/functional/circular-refs.ts b/tests/functional/circular-refs.ts index e3448021c..80cd65f9d 100644 --- a/tests/functional/circular-refs.ts +++ b/tests/functional/circular-refs.ts @@ -16,6 +16,7 @@ describe("Circular references", () => { class SampleObject { @Field(type => CircularRef1) ref1: any; + @Field(type => CircularRef2) ref2: any; } diff --git a/tests/functional/default-values.ts b/tests/functional/default-values.ts index 9e5c1a33e..943368826 100644 --- a/tests/functional/default-values.ts +++ b/tests/functional/default-values.ts @@ -40,7 +40,7 @@ describe("default values", () => { }); it("should not throw error when schema with dynamic default has been built again", async () => { - await expect(buildSchema({ resolvers: [sampleResolver] })).resolves.not.toThrowError(); + await expect(buildSchema({ resolvers: [sampleResolver] })).resolves.not.toThrow(); }); }); @@ -52,7 +52,7 @@ describe("default values", () => { @InputType() class SampleInitializerInput { @Field() - inputField: string = "defaultValueFromPropertyInitializer"; + inputField = "defaultValueFromPropertyInitializer"; } @InputType() diff --git a/tests/functional/extensions.ts b/tests/functional/extensions.ts index eff32b1ff..22905d1d0 100644 --- a/tests/functional/extensions.ts +++ b/tests/functional/extensions.ts @@ -47,21 +47,21 @@ describe("Extensions", () => { class SampleObjectType { @Field() @Extensions({ role: "user" }) - withExtensions: string = "withExtensions"; + withExtensions = "withExtensions"; @Field() @Extensions({ first: "first value", second: "second value" }) - withMultipleExtensions: string = "withMultipleExtensions"; + withMultipleExtensions = "withMultipleExtensions"; @Field() @Extensions({ first: "first value" }) @Extensions({ second: "second value", third: "third value" }) - withMultipleExtensionsDecorators: string = "hello"; + withMultipleExtensionsDecorators = "hello"; @Field() @Extensions({ duplicate: "first value" }) @Extensions({ duplicate: "second value" }) - withConflictingExtensionsKeys: string = "hello"; + withConflictingExtensionsKeys = "hello"; @Field() withInput(@Arg("input") input: ExtensionsOnFieldInput): string { diff --git a/tests/functional/fields.ts b/tests/functional/fields.ts index 992922688..153bcce7d 100644 --- a/tests/functional/fields.ts +++ b/tests/functional/fields.ts @@ -56,10 +56,10 @@ describe("Fields - schema", () => { nullableObjectArrayField: SampleNestedObject[] | null; @Field(typoe => [String], { nullable: "itemsAndList" }) - arrayWithNullableItemField: String[]; + arrayWithNullableItemField: string[]; @Field(typoe => [String], { nullable: "items" }) - nonnullArrayWithNullableItemField: String[]; + nonnullArrayWithNullableItemField: string[]; @Field({ name: "overwrittenName", nullable: true }) overwrittenStringField: string; @@ -111,7 +111,7 @@ describe("Fields - schema", () => { expect(schemaIntrospection).toBeDefined(); }); - it("it should register complexity info for field", async () => { + it("should register complexity info for field", async () => { const metadataStorage = getMetadataStorage(); const sampleObj = metadataStorage.objectTypes.find(it => it.name === "SampleObject")!; const complexField = sampleObj.fields!.find(it => it.name === "complexField")!; diff --git a/tests/functional/generic-types.ts b/tests/functional/generic-types.ts index d477d2af7..5720cafb0 100644 --- a/tests/functional/generic-types.ts +++ b/tests/functional/generic-types.ts @@ -83,6 +83,7 @@ describe("Generic types", () => { class SampleType implements SampleInterfaceType { @Field() baseField: string; + @Field() sampleField: string; } @@ -427,6 +428,7 @@ describe("Generic types", () => { class ChildSample { @Field() sampleField: string; + @Field() childField: string; } diff --git a/tests/functional/interface-resolvers-args.ts b/tests/functional/interface-resolvers-args.ts index fafcd3aa5..9cfb45de4 100644 --- a/tests/functional/interface-resolvers-args.ts +++ b/tests/functional/interface-resolvers-args.ts @@ -35,6 +35,7 @@ describe("Interfaces with resolvers and arguments", () => { class SampleArgs1 { @Field(_type => Int) classArg1: number; + @Field(_type => Int) classArg2: number; } @@ -259,26 +260,32 @@ describe("Interfaces with resolvers and arguments", () => { queryForSampleInterfaceWithArgs(): SampleInterfaceWithArgs { return new SampleImplementingObjectWithArgsAndOwnResolver(); } + @Query() queryForSampleInterfaceWithArgsAndInlineResolver(): SampleInterfaceWithArgsAndInlineResolver { return new SampleImplementingObjectWithArgsAndInheritedResolver(); } + @Query() queryForSampleInterfaceWithArgsAndFieldResolver(): SampleInterfaceWithArgsAndFieldResolver { return new SampleImplementingObjectWithArgsAndInheritedFieldResolver(); } + @Query() queryForSampleImplementingObjectWithArgsAndOwnResolver(): SampleImplementingObjectWithArgsAndOwnResolver { return new SampleImplementingObjectWithArgsAndOwnResolver(); } + @Query() queryForSampleImplementingObjectWithArgsAndInheritedResolver(): SampleImplementingObjectWithArgsAndInheritedResolver { return new SampleImplementingObjectWithArgsAndInheritedResolver(); } + @Query() queryForSampleImplementingObjectWithArgsAndInheritedFieldResolver(): SampleImplementingObjectWithArgsAndInheritedFieldResolver { return new SampleImplementingObjectWithArgsAndInheritedFieldResolver(); } + @Query() queryForSampleInterfaceImplementingInterfaceWithArgsAndInlineResolver(): SampleInterfaceImplementingInterfaceWithArgsAndInlineResolver { return new SampleObjectImplementingInterfaceImplementingWithArgsAndInheritedResolver(); diff --git a/tests/functional/interfaces-and-inheritance.ts b/tests/functional/interfaces-and-inheritance.ts index c1325b75f..c1c4d1297 100644 --- a/tests/functional/interfaces-and-inheritance.ts +++ b/tests/functional/interfaces-and-inheritance.ts @@ -52,6 +52,7 @@ describe("Interfaces and inheritance", () => { abstract class SampleInterface1 { @Field(type => ID) id: string; + @Field() interfaceStringField1: string; } @@ -59,6 +60,7 @@ describe("Interfaces and inheritance", () => { abstract class SampleInterface2 { @Field(type => ID) id: string; + @Field() interfaceStringField2: string; } @@ -70,7 +72,9 @@ describe("Interfaces and inheritance", () => { @InterfaceType({ implements: [SampleInterface1] }) abstract class SampleInterfaceImplementing1 implements SampleInterface1 { id: string; + interfaceStringField1: string; + @Field() ownStringField1: string; } @@ -78,7 +82,9 @@ describe("Interfaces and inheritance", () => { @ObjectType({ implements: SampleInterface1 }) class SampleImplementingObject1 implements SampleInterface1 { id: string; + interfaceStringField1: string; + @Field() ownField1: number; } @@ -86,16 +92,21 @@ describe("Interfaces and inheritance", () => { class SampleImplementingObject2 implements SampleInterface1 { @Field(type => ID) id: string; + @Field() interfaceStringField1: string; + @Field() ownField2: number; } @ObjectType({ implements: [SampleInterface1, SampleInterface2] }) class SampleMultiImplementingObject implements SampleInterface1, SampleInterface2 { id: string; + interfaceStringField1: string; + interfaceStringField2: string; + @Field() ownField3: number; } @@ -478,6 +489,7 @@ describe("Interfaces and inheritance", () => { class ChildObject implements IBase { @Field(type => Number, { nullable: true }) baseField: string; + @Field() argField: string; } @@ -561,8 +573,9 @@ describe("Interfaces and inheritance", () => { class BaseArgs { @Field() baseArgField: string; + @Field(type => Int, { nullable: true }) - optionalBaseArgField: number = 255; + optionalBaseArgField = 255; } @ArgsType() class ChildArgs extends BaseArgs { @@ -574,8 +587,9 @@ describe("Interfaces and inheritance", () => { class BaseInput { @Field() baseInputField: string; + @Field(type => Int, { nullable: true }) - optionalBaseInputField: number = 255; + optionalBaseInputField = 255; } @InputType() class ChildInput extends BaseInput { @@ -594,13 +608,16 @@ describe("Interfaces and inheritance", () => { @ObjectType({ implements: BaseInterface }) class FirstImplementation implements BaseInterface { baseInterfaceField: string; + interfaceFieldToBeRenamed?: string; + @Field() firstField: string; } @ObjectType({ implements: BaseInterface }) class SecondImplementation implements BaseInterface { baseInterfaceField: string; + @Field() secondField: string; } @@ -613,7 +630,6 @@ describe("Interfaces and inheritance", () => { if ("secondField" in value) { return "SecondInterfaceWithStringResolveTypeObject"; } - return; }, }) abstract class InterfaceWithStringResolveType { @@ -623,12 +639,14 @@ describe("Interfaces and inheritance", () => { @ObjectType({ implements: InterfaceWithStringResolveType }) class FirstInterfaceWithStringResolveTypeObject implements InterfaceWithStringResolveType { baseInterfaceField: string; + @Field() firstField: string; } @ObjectType({ implements: InterfaceWithStringResolveType }) class SecondInterfaceWithStringResolveTypeObject implements InterfaceWithStringResolveType { baseInterfaceField: string; + @Field() secondField: string; } @@ -641,7 +659,6 @@ describe("Interfaces and inheritance", () => { if ("secondField" in value) { return SecondInterfaceWithClassResolveTypeObject; } - return; }, }) abstract class InterfaceWithClassResolveType { @@ -651,12 +668,14 @@ describe("Interfaces and inheritance", () => { @ObjectType({ implements: InterfaceWithClassResolveType }) class FirstInterfaceWithClassResolveTypeObject implements InterfaceWithClassResolveType { baseInterfaceField: string; + @Field() firstField: string; } @ObjectType({ implements: InterfaceWithClassResolveType }) class SecondInterfaceWithClassResolveTypeObject implements InterfaceWithClassResolveType { baseInterfaceField: string; + @Field() secondField: string; } @@ -1265,6 +1284,7 @@ describe("Interfaces and inheritance", () => { class SampleUnusedObjectType implements SampleUnusedInterface { @Field() sampleField: string; + @Field() sampleUnusedInterfaceField: SampleUnusedInterface; } @@ -1277,6 +1297,7 @@ describe("Interfaces and inheritance", () => { class SampleObjectTypeImplementingUsedInterface implements SampleUsedInterface { @Field() sampleField: string; + @Field() sampleAdditionalField: string; } @@ -1370,6 +1391,7 @@ describe("Interfaces and inheritance", () => { class FirstSampleObject implements SampleUsedInterface { @Field() sampleField: string; + @Field() sampleFirstAdditionalField: string; } @@ -1377,6 +1399,7 @@ describe("Interfaces and inheritance", () => { class SecondSampleObject implements SampleUsedInterface { @Field() sampleField: string; + @Field() sampleSecondAdditionalField: string; } diff --git a/tests/functional/ioc-container.ts b/tests/functional/ioc-container.ts index 6d1a49d44..5db628d5c 100644 --- a/tests/functional/ioc-container.ts +++ b/tests/functional/ioc-container.ts @@ -36,6 +36,7 @@ describe("IOC container", () => { @Resolver(of => SampleObject) class SampleResolver { constructor(private service: SampleService) {} + @Query() sampleQuery(): SampleObject { serviceValue = this.service.value; @@ -69,6 +70,7 @@ describe("IOC container", () => { @Resolver(of => SampleObject) class SampleResolver { value = Math.random(); + @Query() sampleQuery(): SampleObject { resolverValue = this.value; @@ -131,7 +133,7 @@ describe("IOC container", () => { }); it("should properly get container from container getter function", async () => { - let called: boolean = false; + let called = false; @Resolver() class SampleResolver { @@ -172,7 +174,7 @@ describe("IOC container", () => { }); it("should properly get instance from an async container", async () => { - let called: boolean = false; + let called = false; @Service() @Resolver() diff --git a/tests/functional/middlewares.ts b/tests/functional/middlewares.ts index de0d0c9e1..2b68f1e69 100644 --- a/tests/functional/middlewares.ts +++ b/tests/functional/middlewares.ts @@ -92,6 +92,7 @@ describe("Middlewares", () => { }; class ClassMiddleware implements MiddlewareInterface { private logName = "ClassMiddleware"; + async use(action: ResolverData, next: NextFn) { middlewareLogs.push(`${this.logName} before`); const result = await next(); diff --git a/tests/functional/resolvers.ts b/tests/functional/resolvers.ts index 503c712e8..c7024123e 100644 --- a/tests/functional/resolvers.ts +++ b/tests/functional/resolvers.ts @@ -62,44 +62,54 @@ describe("Resolvers", () => { class SampleInput { @Field() field: string; + @Field({ defaultValue: "defaultStringFieldDefaultValue" }) defaultStringField: string; + @Field() - implicitDefaultStringField: string = "implicitDefaultStringFieldDefaultValue"; + implicitDefaultStringField = "implicitDefaultStringFieldDefaultValue"; + @Field() - inheritDefaultField: string = "inheritDefaultFieldValue"; + inheritDefaultField = "inheritDefaultFieldValue"; } @InputType() class SampleInputChild extends SampleInput { @Field({ defaultValue: "defaultValueOverwritten" }) defaultStringField: string; + @Field() - implicitDefaultStringField: string = "implicitDefaultValueOverwritten"; + implicitDefaultStringField = "implicitDefaultValueOverwritten"; } @ArgsType() class SampleArgs { @Field() stringArg: string; + @Field(type => Int, { nullable: true }) numberArg: number; + @Field() inputObjectArg: SampleInput; + @Field({ defaultValue: "defaultStringArgDefaultValue" }) defaultStringArg: string; + @Field() - implicitDefaultStringArg: string = "implicitDefaultStringArgDefaultValue"; + implicitDefaultStringArg = "implicitDefaultStringArgDefaultValue"; + @Field() - inheritDefaultArg: string = "inheritDefaultArgValue"; + inheritDefaultArg = "inheritDefaultArgValue"; } @ArgsType() class SampleArgsChild extends SampleArgs { @Field({ defaultValue: "defaultValueOverwritten" }) defaultStringArg: string; + @Field() - implicitDefaultStringArg: string = "implicitDefaultValueOverwritten"; + implicitDefaultStringArg = "implicitDefaultValueOverwritten"; } @ObjectType() @@ -995,6 +1005,7 @@ describe("Resolvers", () => { sampleQuery(): string { return "sampleQuery"; } + @FieldResolver() sampleField() { return "sampleField"; @@ -1028,6 +1039,7 @@ describe("Resolvers", () => { sampleQuery(): string { return "sampleQuery"; } + @FieldResolver() independentField() { return "independentField"; @@ -1140,7 +1152,7 @@ describe("Resolvers", () => { @InputType() class SampleInput { @Field({ defaultValue: "decoratorDefaultValue" }) - inputField: string = "initializerDefaultValue"; + inputField = "initializerDefaultValue"; } @Resolver() @@ -1237,6 +1249,7 @@ describe("Resolvers", () => { @ArgsType() class SampleArgs { private readonly TRUE = true; + instanceField = Math.random(); @Field() @@ -1261,6 +1274,7 @@ describe("Resolvers", () => { @InputType() class SampleInput { private readonly TRUE = true; + instanceField = Math.random(); @Field() @@ -1312,9 +1326,11 @@ describe("Resolvers", () => { @ObjectType() class SampleObject { private readonly TRUE = true; + isTrue() { return this.TRUE; } + constructor() { sampleObjectConstructorCallCount++; } @@ -1323,16 +1339,22 @@ describe("Resolvers", () => { @Field() fieldResolverField: number; + @Field() fieldResolverGetter: number; + @Field({ complexity: 5 }) fieldResolverMethod: number; + @Field() fieldResolverMethodWithArgs: number; + @Field() fieldResolverWithRoot: number; + @Field({ complexity: 10 }) complexResolverMethod: number; + @Field() get getterField(): number { return this.instanceValue; @@ -1357,10 +1379,13 @@ describe("Resolvers", () => { @Resolver(of => SampleObject) class SampleResolver implements ResolverInterface { factor = 1; + randomValueField = Math.random() * this.factor; + get randomValueGetter() { return Math.random() * this.factor; } + getRandomValue() { return Math.random() * this.factor; } @@ -1418,9 +1443,8 @@ describe("Resolvers", () => { mutationWithArgs(@Args() args: SampleArgs): number { if (args.isTrue()) { return args.factor * args.instanceField; - } else { - return -1.0; } + return -1.0; } @Mutation() @@ -1433,9 +1457,8 @@ describe("Resolvers", () => { mutationWithInput(@Arg("input") input: SampleInput): number { if (input.isTrue()) { return input.factor * input.instanceField; - } else { - return -1.0; } + return -1.0; } @Mutation() @@ -1497,9 +1520,8 @@ describe("Resolvers", () => { fieldResolverWithRoot(@Root() root: SampleObject) { if (root.isTrue()) { return root.instanceValue; - } else { - return -1.0; } + return -1.0; } @FieldResolver() @@ -2079,6 +2101,7 @@ describe("Resolvers", () => { class SampleObject { @Field() sampleField: string; + @Field() resolvedField: string; } @@ -2144,7 +2167,7 @@ describe("Resolvers", () => { const schemaInfo = await getSchemaInfo({ resolvers: [SampleResolver], }); - const schemaIntrospection = schemaInfo.schemaIntrospection; + const { schemaIntrospection } = schemaInfo; const sampleObjectType = schemaIntrospection.types.find( type => type.name === "SampleObject", ) as IntrospectionObjectType; @@ -2183,7 +2206,7 @@ describe("Resolvers", () => { const schemaInfo = await getSchemaInfo({ resolvers: [SampleResolver, ChildResolver], }); - const schemaIntrospection = schemaInfo.schemaIntrospection; + const { schemaIntrospection } = schemaInfo; const sampleObjectType = schemaIntrospection.types.find( type => type.name === "SampleObject", ) as IntrospectionObjectType; diff --git a/tests/functional/scalars.ts b/tests/functional/scalars.ts index 9aa31c603..a838df804 100644 --- a/tests/functional/scalars.ts +++ b/tests/functional/scalars.ts @@ -225,7 +225,7 @@ describe("Scalars", () => { returnScalar }`; const result: any = await graphql({ schema, source: query }); - const returnScalar = result.data!.returnScalar; + const { returnScalar } = result.data!; expect(returnScalar).toEqual("TypeGraphQL serialize"); }); @@ -497,7 +497,7 @@ describe("Scalars", () => { const beforeQuery = Date.now(); const result: any = await graphql({ schema: localSchema, source: query }); const afterQuery = Date.now(); - const returnDate = result.data!.returnDate; + const { returnDate } = result.data!; expect(returnDate).toBeLessThanOrEqual(afterQuery); expect(returnDate).toBeGreaterThanOrEqual(beforeQuery); diff --git a/tests/functional/subscriptions.ts b/tests/functional/subscriptions.ts index afa837ab3..a9267b6c3 100644 --- a/tests/functional/subscriptions.ts +++ b/tests/functional/subscriptions.ts @@ -58,6 +58,7 @@ describe("Subscriptions", () => { sampleQuery(): boolean { return true; } + @Subscription({ topics: "STH" }) sampleSubscription(): boolean { return true; @@ -610,6 +611,7 @@ describe("Subscriptions", () => { dumbQuery(): boolean { return true; } + @Mutation() pubSubMutation(@PubSub() pubSubArg: PubSubEngine): boolean { pubSubArg.publish("TEST", { test: true }); @@ -647,6 +649,7 @@ describe("Subscriptions", () => { dumbQuery(): boolean { return true; } + @Mutation(returns => Boolean) async pubSubMutation( @Arg("value") value: number, @@ -655,6 +658,7 @@ describe("Subscriptions", () => { await pubSub.publish("TEST", value); return true; } + @Subscription({ topics: [] }) sampleSubscription(): boolean { return true; diff --git a/tests/functional/typedefs-resolvers.ts b/tests/functional/typedefs-resolvers.ts index d89a1cb20..6c599d0ba 100644 --- a/tests/functional/typedefs-resolvers.ts +++ b/tests/functional/typedefs-resolvers.ts @@ -84,6 +84,7 @@ describe("typeDefs and resolvers", () => { class SampleType1 implements SampleInterface { @Field() sampleInterfaceStringField: string; + @Field({ description: "sampleType1StringFieldDescription" }) sampleType1StringField: string; } @@ -92,6 +93,7 @@ describe("typeDefs and resolvers", () => { class SampleType2 implements SampleInterface { @Field() sampleInterfaceStringField: string; + @Field({ deprecationReason: "sampleType2StringFieldDeprecation" }) sampleType2StringField: string; } @@ -100,6 +102,7 @@ describe("typeDefs and resolvers", () => { class SampleType3 { @Field() sampleInterfaceStringField: string; + @Field() sampleType3StringField: string; } @@ -109,8 +112,9 @@ describe("typeDefs and resolvers", () => { @Field() @MinLength(10) sampleInputStringField: string; + @Field() - sampleInputDefaultStringField: string = "sampleInputDefaultStringField"; + sampleInputDefaultStringField = "sampleInputDefaultStringField"; } enum SampleNumberEnum { @@ -141,7 +145,6 @@ describe("typeDefs and resolvers", () => { if ("sampleType3StringField" in value) { return "SampleType3"; } - return; }, }); @@ -617,6 +620,7 @@ describe("typeDefs and resolvers", () => { class SampleType { @Field() sampleInterfaceStringField: string; + @Field({ description: "sampleTypeStringFieldDescription" }) sampleTypeStringField: string; } diff --git a/tests/functional/unions.ts b/tests/functional/unions.ts index e7b391885..52557717b 100644 --- a/tests/functional/unions.ts +++ b/tests/functional/unions.ts @@ -58,7 +58,6 @@ describe("Unions", () => { if ("fieldTwo" in value) { return "ObjectTwo"; } - return; }, }); @@ -72,7 +71,6 @@ describe("Unions", () => { if ("fieldTwo" in value) { return ObjectTwo; } - return; }, }); diff --git a/website/blog/2018-03-25-medium-article.md b/website/blog/2018-03-25-medium-article.md index 76b752b3b..66cb68c30 100644 --- a/website/blog/2018-03-25-medium-article.md +++ b/website/blog/2018-03-25-medium-article.md @@ -14,27 +14,32 @@ We all love GraphQL! It’s so great and solves many problems that we have with ![type-graphql-logo](/blog/assets/logo_mini.png) ## Motivation + As I mentioned, developing a GraphQL API in Node.js with TypeScript might be a painful process. Why? Let’s take a look at the steps we usually have to make. At first, we create the all the schema types in SDL. We also create our data models using ORM classes, which represents our db entities. Then we start to write resolvers for our queries, mutations and fields but this force us to begin with creating TS interfaces for all arguments and inputs or even object types. And after that we can actually implements the resolvers, using weird generic signatures, e.g.: ```typescript -export const recipesResolver: GraphQLFieldResolver = - async (_, args) => { - // stuffs like validation, auth checking, getting from container - // and our business logic, e.g.: - const repository = getRepository(Recipe); - return repository.find(); - } +export const recipesResolver: GraphQLFieldResolver = async ( + _, + args, +) => { + // stuffs like validation, auth checking, getting from container + // and our business logic, e.g.: + const repository = getRepository(Recipe); + return repository.find(); +}; ``` + The biggest problem is the rendundancy in our codebase, that makes difficult to keep this things in sync. To add new field to our entity, we have to jump through all the files — modify entity class, then modify part of the schema and then update the interface. The same goes with inputs or arguments, it’s easy to forget to update one or make a mistake with the type. Also, what if we’ve made a typo in field name? The rename feature (F2) won’t work correctly. **TypeGraphQL** comes to address this issues, based on experience from over a dozen months of developing GraphQL APIs in TypeScript. The main idea is to have only one source of truth by defining the schema using classes and a bit of decorators help. Additional features like dependency injection, validation or auth guards helps with common task that normally we would have to handle by ourselves. ## Getting started + To explore all powerful capabilities of TypeGraphQL, we will create a sample GraphQL API for cooking recipes. -Let’s start with the Recipe type, which is the foundations of our API. +Let’s start with the Recipe type, which is the foundations of our API. We want to get equivalent of this type described in SDL: ```graphql @@ -48,6 +53,7 @@ type Recipe { ``` So we create the Recipe class with all properties and types: + ```typescript class Recipe { id: string; @@ -59,6 +65,7 @@ class Recipe { ``` Then we annotate the class and it properties with decorators: + ```typescript @ObjectType() class Recipe { @@ -82,7 +89,9 @@ class Recipe { The detailed rules when to use `nullable`, `array` and other options are described in [fields and types docs](https://github.com/MichalLytek/type-graphql/blob/master/docs/types-and-fields.md). ### Resolvers + After that we want to create typical crud queries and mutation. To do that we create the resolver (controller) class that will have injected RecipeService in constructor: + ```typescript @Resolver(Recipe) class RecipeResolver { @@ -127,7 +136,9 @@ class RecipeResolver { We use `@Authorized()` decorator to restrict access only for authorized users or the one that fulfill the roles requirements. The detailed rules when and why we declare `returns => Recipe` functions and others are described in [resolvers docs](https://github.com/MichalLytek/type-graphql/blob/master/docs/resolvers.md). ### Inputs and arguments + Ok, but what are theNewRecipeInput and RecipesArgs? There are of course classes that declares input type and arguments: + ```typescript @InputType() class NewRecipeDataInput { @@ -151,25 +162,28 @@ class RecipesArgs { skip: number = 0; @Field(type => Int, { nullable: true }) - @Min(1) @Max(50) + @Min(1) + @Max(50) take: number = 25; } ``` `@Length`, `@Min` or `@MaxArraySize` are decorators from [`class-validator`](https://github.com/typestack/class-validator) that automatically perform fields validation in TypeGraphQL. - ### Building schema + The last step that we have to do is to actually build the schema from TypeGraphQL definition. We use buildSchema function for this: + ```typescript const schema = await buildSchema({ - resolvers: [RecipeResolver] + resolvers: [RecipeResolver], }); // ...creating express server or sth ``` Et voilà! Now we have fully working GraphQL schema! If we print it, we would receive exactly this: + ```graphql type Recipe { id: ID! @@ -194,16 +208,19 @@ type Mutation { ``` ## Want more? + That was only a tip of the iceberg — a very simple example with basic GraphQL types. Do you use interfaces, enums, unions and custom scalars? That’s great because TypeGraphQL fully supports them too! If you want to see how it looks in more complicated case, you can go to the [Examples section](https://github.com/MichalLytek/type-graphql/blob/master/examples) where you can find how nice TypeGraphQL integrates with TypeORM. Want to learn about more advanced concepts like authorization checker, inheritance support or field resolvers? Check out the [Docs section](https://github.com/MichalLytek/type-graphql/blob/master/docs). ## Work in progress + Currently released version is a **MVP** (Minimum Viable Product). It is well tested (95% coverage, 4400 lines of test code) and has 90% of the planned features already implemented. However there’s some work to be done before 1.0.0 release and it’s mostly about documentation (website, api reference and jsdoc). There are also plans for more features like better TypeORM and dataloader integration or middlewares and custom decorators support — [the full list of ideas](https://github.com/MichalLytek/type-graphql/issues?q=is%3Aissue+is%3Aopen+label%3A%22Enhancement+%3Anew%3A%22) is available on the GitHub repo. You can also keep track of [development’s progress on project board](https://github.com/MichalLytek/type-graphql/projects/1). ## Spread the word + I strongly encourage you to give it a try and experiment with **TypeGraphQL**. I promise, it will reduce your codebase by a half or more! diff --git a/website/blog/2020-08-19-devto-article.md b/website/blog/2020-08-19-devto-article.md index a3dac4020..451949528 100644 --- a/website/blog/2020-08-19-devto-article.md +++ b/website/blog/2020-08-19-devto-article.md @@ -25,25 +25,25 @@ This post is focused mostly on presenting new features and describing changes in One of the most important things which is also often neglected by developers - the performance. One of the key focus area for the 1.0 release was making it blazingly fast ⚡ -TypeGraphQL is basically an abstraction layer built on top of the reference GraphQL implementation for JavaScript - `graphql-js`. To measure the overhead of the abstraction, a few demo examples were made to compare it against the "bare metal" - using raw `graphql-js` library. +TypeGraphQL is basically an abstraction layer built on top of the reference GraphQL implementation for JavaScript - `graphql-js`. To measure the overhead of the abstraction, a few demo examples were made to compare it against the "bare metal" - using raw `graphql-js` library. It turned out that in the most demanding cases like returning an array of 25 000 nested objects, the old version `0.17` was even about 5 times slower! -| library | execution time | -| -------------------- | :------------: | -| TypeGraphQL `v0.17` | 1253.28 ms | -| `graphql-js` | 265.52 ms | +| library | execution time | +| ------------------- | :------------: | +| TypeGraphQL `v0.17` | 1253.28 ms | +| `graphql-js` | 265.52 ms | After profiling the code and finding all the root causes (like always using async execution path), the overhead was reduced from 500% to **just 17%** in `v1.0.0`! By using [`simpleResolvers`](https://typegraphql.com/docs/performance.html#further-performance-tweaks) it can be reduced even further, up to 13%: | | execution time | | ------------------------ | :------------: | -| `graphql-js` | 265.52 ms | -| **TypeGraphQL `v1.0`** | 310.36 ms | -| with "simpleResolvers" | 299.61 ms | +| `graphql-js` | 265.52 ms | +| **TypeGraphQL `v1.0`** | 310.36 ms | +| with "simpleResolvers" | 299.61 ms | | with a global middleware | 1267.82 ms | -Such small overhead is much easier to accept than the initial 500%! +Such small overhead is much easier to accept than the initial 500%! More info about how to enable the performance optimizations in the more complex cases can be found [in the docs 📖](https://typegraphql.com/docs/performance.html). ## Schema isolation @@ -53,7 +53,7 @@ This is another feature that is not visible from the first sight but gives new p In 0.17.x and before, the schema was built from all the metadata collected by evaluating the TypeGraphQL decorators. The drawback of this approach was the schema leaks - every subsequent calls of `buildSchema` was returning the same schema which was combined from all the types and resolvers that could be find in the metadata storage. In TypeGraphQL 1.0 it's no longer true! -The schemas are now isolated which means that the [`buildSchema` call takes the `resolvers` array from options](https://typegraphql.com/docs/bootstrap.html#create-executable-schema) and emit only the queries, mutation and types that are related to those resolvers. +The schemas are now isolated which means that the [`buildSchema` call takes the `resolvers` array from options](https://typegraphql.com/docs/bootstrap.html#create-executable-schema) and emit only the queries, mutation and types that are related to those resolvers. ```ts const firstSchema = await buildSchema({ @@ -75,7 +75,7 @@ GraphQL directives though the syntax might remind the TS decorators, as "a direc ```graphql type Query { - foobar: String! @auth(requires: USER) + foobar: String! @auth(requires: USER) } ``` @@ -91,6 +91,7 @@ class FooBarResolver { } } ``` + However, on the other side we have the GraphQL extensions which are the JS way to achieve the same goal. It's the recommended way of putting the metadata about the types when applying some custom logic. To declare the extensions for type or selected field, we need to use `@Extensions` decorator, e.g.: @@ -136,17 +137,20 @@ abstract class IPerson { ## More descriptive errors messages -One of the most irritating issues for newcomers were the laconic error messages that haven't provided enough info to easily find the mistakes in the code. +One of the most irritating issues for newcomers were the laconic error messages that haven't provided enough info to easily find the mistakes in the code. Messages like _"Cannot determine GraphQL input type for users"_ or even the a generic _"Generating schema error"_ were clearly not helpful enough while searching for the place where the flaws were located. Now, when the error occurs, it is broadly explained, why it happened and what could we do to fix that, e.g.: + ```text Unable to infer GraphQL type from TypeScript reflection system. You need to provide explicit type for argument named 'filter' of 'getUsers' of 'UserResolver' class. ``` + or: + ```text Some errors occurred while generating GraphQL schema: Interface field 'IUser.accountBalance' expects type 'String!' @@ -157,7 +161,7 @@ That should allow developers to safe tons of time and really speed up the develo ## Transforming nested inputs and arrays -In the previous releases, an instance of the input type class was created only on the first level of inputs nesting. +In the previous releases, an instance of the input type class was created only on the first level of inputs nesting. So, in cases like this: ```ts @@ -179,7 +183,7 @@ class SampleResolver { } ``` -the `nestedField` property of `input` was just a plain `Object`, not an instance of the `SomeNestedInput` class. That behavior was producing some unwanted issues, including limited support for [inputs and args validation](https://typegraphql.com/docs/validation.html). +the `nestedField` property of `input` was just a plain `Object`, not an instance of the `SomeNestedInput` class. That behavior was producing some unwanted issues, including limited support for [inputs and args validation](https://typegraphql.com/docs/validation.html). Since 1.0 release, it's no longer an issue and all the nested args and inputs are properly transformed to the corresponding input type classes instances, even including deeply nested arrays 💪 diff --git a/website/pages/en/help.js b/website/pages/en/help.js index 864c2a47f..e5c373b38 100644 --- a/website/pages/en/help.js +++ b/website/pages/en/help.js @@ -5,29 +5,28 @@ * LICENSE file in the root directory of this source tree. */ -const React = require('react'); +const React = require("react"); -const CompLibrary = require('../../core/CompLibrary.js'); +const CompLibrary = require("../../core/CompLibrary.js"); const Container = CompLibrary.Container; const GridBlock = CompLibrary.GridBlock; -const siteConfig = require(process.cwd() + '/siteConfig.js'); +const siteConfig = require(process.cwd() + "/siteConfig.js"); class Help extends React.Component { render() { const supportLinks = [ { - content: - 'Learn more using the [documentation on this site.](/test-site/docs/en/doc1.html)', - title: 'Browse Docs', + content: "Learn more using the [documentation on this site.](/test-site/docs/en/doc1.html)", + title: "Browse Docs", }, { - content: 'Ask questions about the documentation and project', - title: 'Join the community', + content: "Ask questions about the documentation and project", + title: "Join the community", }, { content: "Find out what's new with this project", - title: 'Stay up to date', + title: "Stay up to date", }, ]; diff --git a/website/pages/en/users.js b/website/pages/en/users.js index f359cc5b3..e61bffab5 100644 --- a/website/pages/en/users.js +++ b/website/pages/en/users.js @@ -5,12 +5,12 @@ * LICENSE file in the root directory of this source tree. */ -const React = require('react'); +const React = require("react"); -const CompLibrary = require('../../core/CompLibrary.js'); +const CompLibrary = require("../../core/CompLibrary.js"); const Container = CompLibrary.Container; -const siteConfig = require(process.cwd() + '/siteConfig.js'); +const siteConfig = require(process.cwd() + "/siteConfig.js"); class Users extends React.Component { render() { @@ -27,7 +27,7 @@ class Users extends React.Component { return (
- +

Who's Using This?

@@ -37,7 +37,8 @@ class Users extends React.Component {

Are you using this project?

+ className="button" + > Add your company
diff --git a/website/pages/en/versions.js b/website/pages/en/versions.js index fc9f6938c..3230e8686 100644 --- a/website/pages/en/versions.js +++ b/website/pages/en/versions.js @@ -75,9 +75,7 @@ function Versions(props) { {version} Documentation diff --git a/website/pages/snippets/typeorm.md b/website/pages/snippets/typeorm.md index 4b5673fe1..9f3ac97bf 100644 --- a/website/pages/snippets/typeorm.md +++ b/website/pages/snippets/typeorm.md @@ -17,7 +17,7 @@ export class Rate { @CreateDateColumn() date: Date; - @ManyToOne(type => Recipe) + @ManyToOne(type => Recipe) recipe: Promise; } ``` diff --git a/website/pages/snippets/validation.md b/website/pages/snippets/validation.md index 912f5738a..2886d4025 100644 --- a/website/pages/snippets/validation.md +++ b/website/pages/snippets/validation.md @@ -5,7 +5,7 @@ export class RecipeInput { @MaxLength(30) title: string; - @Field({ nullable: true }) + @Field({ nullable: true }) @Length(30, 255) description?: string; diff --git a/website/static/css/prism-theme.css b/website/static/css/prism-theme.css index bbe3d25d2..80a3116b3 100644 --- a/website/static/css/prism-theme.css +++ b/website/static/css/prism-theme.css @@ -6,15 +6,20 @@ code { color: #dcdcaa; } -.token.punctuation, .token.operator, .token.constant, .hljs.graphql { +.token.punctuation, +.token.operator, +.token.constant, +.hljs.graphql { color: #d4d4d4; } -.token.keyword, .token.boolean { +.token.keyword, +.token.boolean { color: #569cd6; } -.token.class-name, .token.builtin { +.token.class-name, +.token.builtin { color: #4ec9b0; } @@ -34,7 +39,9 @@ code { color: #d16969; } -.hljs, .token.attr-name, .token.property { +.hljs, +.token.attr-name, +.token.property { color: #9cdcfe; } diff --git a/website/versioned_docs/version-0.16.0/authorization.md b/website/versioned_docs/version-0.16.0/authorization.md index 2c202f027..0679801b4 100644 --- a/website/versioned_docs/version-0.16.0/authorization.md +++ b/website/versioned_docs/version-0.16.0/authorization.md @@ -11,8 +11,10 @@ In express.js (and other Node.js framework) we use middlewares for this, like `p And that's why authorization is a first-class feature in `TypeGraphQL`! ## How to use? + At first, you need to use `@Authorized` decorator as a guard on a field or a query/mutation. Example object type's fields guards: + ```typescript @ObjectType() class MyObject { @@ -39,6 +41,7 @@ By default the roles are `string` but you can change it easily as the decorator This way authed users (regardless of theirs roles) could read only `publicField` or `authorizedField` from `MyObject` object. They will receive `null` when accessing `hiddenField` field and will receive error (that will propagate through the whole query tree looking for nullable field) for `adminField` when they don't satisfy roles constraints. Sample query and mutations guards: + ```typescript @Resolver() class MyResolver { @@ -64,22 +67,28 @@ class MyResolver { } } ``` + Authed users (regardless of theirs roles) will be able to read data from `publicQuery` and `authedQuery` but will receive error trying to perform `adminMutation` when their roles doesn't include `ADMIN` or `MODERATOR`. In next step, you need to create your auth checker function. Its implementation may depends on your business logic: -```typescript -export const customAuthChecker: AuthChecker = - ({ root, args, context, info }, roles) => { - // here you can read user from context - // and check his permission in db against `roles` argument - // that comes from `@Authorized`, eg. ["ADMIN", "MODERATOR"] - return true; // or false if access denied - } +```typescript +export const customAuthChecker: AuthChecker = ( + { root, args, context, info }, + roles, +) => { + // here you can read user from context + // and check his permission in db against `roles` argument + // that comes from `@Authorized`, eg. ["ADMIN", "MODERATOR"] + + return true; // or false if access denied +}; ``` + The second argument of `AuthChecker` generic type is `RoleType` - use it together with `@Authorized` decorator generic type. The last step is to register the function while building the schema: + ```typescript import { customAuthChecker } from "../auth/custom-auth-checker.ts"; @@ -87,26 +96,29 @@ const schema = await buildSchema({ resolvers: [MyResolver], // here we register the auth checking function // or defining it inline - authChecker: customAuthChecker, -}) + authChecker: customAuthChecker, +}); ``` + And it's done! 😉 If you need silent auth guards and you don't want to return auth errors to users, you can set `authMode` property of `buildSchema` config object to `"null"`: + ```typescript const schema = await buildSchema({ resolvers: ["./**/*.resolver.ts"], - authChecker: customAuthChecker, + authChecker: customAuthChecker, authMode: "null", -}) +}); ``` + It will then return `null` instead of throwing authorization error. ## Recipes You can also use `TypeGraphQL` with JWT authentication. Example using `apollo-server-express`: -```typescript +```typescript import express from "express"; import { ApolloServer, gql } from "apollo-server-express"; import * as jwt from "express-jwt"; @@ -114,10 +126,10 @@ import * as jwt from "express-jwt"; import { schema } from "../example/above"; const app = express(); -const path = '/graphql'; +const path = "/graphql"; // Create a GraphQL server -const server = new ApolloServer({ +const server = new ApolloServer({ schema, context: ({ req }) => { const context = { @@ -129,20 +141,25 @@ const server = new ApolloServer({ }); // Mount a jwt or other authentication middleware that is run before the GraphQL execution -app.use(path, jwt({ - secret: "TypeGraphQL", - credentialsRequired: false, -})); +app.use( + path, + jwt({ + secret: "TypeGraphQL", + credentialsRequired: false, + }), +); // Apply the GraphQL server middleware server.applyMiddleware({ app, path }); -// Launch the express server +// Launch the express server app.listen({ port: 4000 }, () => - console.log(`🚀 Server ready at http://localhost:4000${server.graphqlPath}`) -) + console.log(`🚀 Server ready at http://localhost:4000${server.graphqlPath}`), +); ``` + Then you can use standard, token based authorization in HTTP header like in classic REST API and take advantages of `TypeGraphQL` authorization mechanism. ## Example + You can see how this works together in the [simple real life example](https://github.com/MichalLytek/type-graphql/tree/master/examples/authorization). diff --git a/website/versioned_docs/version-0.16.0/bootstrap.md b/website/versioned_docs/version-0.16.0/bootstrap.md index 8ae0beec5..326303ea2 100644 --- a/website/versioned_docs/version-0.16.0/bootstrap.md +++ b/website/versioned_docs/version-0.16.0/bootstrap.md @@ -26,10 +26,7 @@ So you can also provide an array of paths to resolver module files instead, whic ```typescript const schema = await buildSchema({ - resolvers: [ - __dirname + "/modules/**/*.resolver.ts", - __dirname + "/resolvers/**/*.ts", - ], + resolvers: [__dirname + "/modules/**/*.resolver.ts", __dirname + "/resolvers/**/*.ts"], }); ``` @@ -53,7 +50,7 @@ bootstrap(); // actually run the async function ## Create HTTP GraphQL endpoint -In most cases, the GraphQL app is served by a HTTP server. After building the schema we can create the GraphQL endpoint with a variety of tools such as [`graphql-yoga`](https://github.com/prisma/graphql-yoga) or [`apollo-server`](https://github.com/apollographql/apollo-server). Here is an example using [`apollo-server`](https://github.com/apollographql/apollo-server): +In most cases, the GraphQL app is served by a HTTP server. After building the schema we can create the GraphQL endpoint with a variety of tools such as [`graphql-yoga`](https://github.com/prisma/graphql-yoga) or [`apollo-server`](https://github.com/apollographql/apollo-server). Here is an example using [`apollo-server`](https://github.com/apollographql/apollo-server): ```typescript import { ApolloServer } from "apollo-server"; @@ -64,7 +61,7 @@ async function bootstrap() { // ... Building schema here // Create GraphQL server - const server = new ApolloServer({ + const server = new ApolloServer({ schema, playground: true, }); diff --git a/website/versioned_docs/version-0.16.0/browser-usage.md b/website/versioned_docs/version-0.16.0/browser-usage.md index 079200648..95969f31c 100644 --- a/website/versioned_docs/version-0.16.0/browser-usage.md +++ b/website/versioned_docs/version-0.16.0/browser-usage.md @@ -5,9 +5,11 @@ original_id: browser-usage --- ## Using classes in client app + Sometimes you might want to use the classes, that you've created and annotated with TypeGraphQL decorators, in your client app that works in browser. For example, you may want to reuse the args or input classes with `class-validator` decorators or the object type classes with some helpful custom methods. As TypeGraphQL is a Node.js framework, it doesn't work in browser environment, so you may quickly got an error, e.g. `ERROR in ./node_modules/fs.realpath/index.js`, while trying to build your app with Webpack. To fix that, you have to configure Webpack to use the decorators shim instead of normal module. All you need is to add this plugin code to your webpack config: + ```js plugins: [ ..., // here any other existing plugins that you already have @@ -18,4 +20,3 @@ plugins: [ ``` Also, thanks to this your bundle will be much lighter as you don't embedded the whole TypeGraphQL library code in your app. - diff --git a/website/versioned_docs/version-0.16.0/complexity.md b/website/versioned_docs/version-0.16.0/complexity.md index e31d873fd..82bc88f46 100644 --- a/website/versioned_docs/version-0.16.0/complexity.md +++ b/website/versioned_docs/version-0.16.0/complexity.md @@ -3,81 +3,82 @@ title: Query complexity id: version-0.16.0-complexity original_id: complexity --- -A single GraphQL query can potentially generate huge workload for a server, like thousands of database operations which can be used to cause DDoS attacks. To keep track and limit of what each GraphQL operation can do , `TypeGraphQL` provides you the option of integrating with Query Complexity tools like [graphql-query-complexity](https://github.com/ivome/graphql-query-complexity). +A single GraphQL query can potentially generate huge workload for a server, like thousands of database operations which can be used to cause DDoS attacks. To keep track and limit of what each GraphQL operation can do , `TypeGraphQL` provides you the option of integrating with Query Complexity tools like [graphql-query-complexity](https://github.com/ivome/graphql-query-complexity). The cost analysis-based solution is very promising, since you can define a “cost” per field and then analyze the AST to estimate the total cost of the GraphQL query. Of course all the analysis is handled by `graphql-query-complexity` . All you need to do is define your complexity cost for the fields (fields, mutations, subscriptions) in`TypeGraphQL` and implement `graphql-query-complexity` in whatever GraphQL server you have. ## How to use? + At first, you need to pass `complexity` as an option to the decorator on a field/query/mutation. Example of complexity -```typescript +```typescript @ObjectType() class MyObject { @Field({ complexity: 2 }) publicField: string; - @Field({ complexity: ({args, childComplexity}) => childComplexity + 1 }) + @Field({ complexity: ({ args, childComplexity }) => childComplexity + 1 }) complexField: string; } ``` -You can omit the `complexity` option if the complexity value is 1. -You can pass complexity as option to any of `@Field`, `@FieldResolver`, `@Mutation` & `@Subscription`. For the same property, if both the `@Fieldresolver` as well as `@Field` have complexity defined , then the complexity passed to the field resolver decorator takes precedence. +You can omit the `complexity` option if the complexity value is 1. +You can pass complexity as option to any of `@Field`, `@FieldResolver`, `@Mutation` & `@Subscription`. For the same property, if both the `@Fieldresolver` as well as `@Field` have complexity defined , then the complexity passed to the field resolver decorator takes precedence. -In next step, you need to integrate `graphql-query-complexity` with your GraphQL server. +In next step, you need to integrate `graphql-query-complexity` with your GraphQL server. ```typescript - // Create GraphQL server - const server = new GraphQLServer({ schema }); - - // Configure server options - const serverOptions: Options = { - port: 4000, - endpoint: "/graphql", - playground: "/playground", - validationRules: req => [ - queryComplexity({ - // The maximum allowed query complexity, queries above this threshold will be rejected - maximumComplexity: 8, - // The query variables. This is needed because the variables are not available - // in the visitor of the graphql-js library - variables: req.query.variables, - // Optional callback function to retrieve the determined query complexity - // Will be invoked weather the query is rejected or not - // This can be used for logging or to implement rate limiting - onComplete: (complexity: number) => { - console.log("Query Complexity:", complexity); - }, - estimators: [ - // Using fieldConfigEstimator is mandatory to make it work with type-graphql - fieldConfigEstimator(), - // This will assign each field a complexity of 1 if no other estimator - // returned a value. We can define the default value for field not explicitly annotated - simpleEstimator({ - defaultComplexity: 1, - }), - ], - }), - ], - }; - - // Start the server - server.start(serverOptions, ({ port, playground }) => { - console.log( - `Server is running, GraphQL Playground available at http://localhost:${port}${playground}`, - ); - }); +// Create GraphQL server +const server = new GraphQLServer({ schema }); + +// Configure server options +const serverOptions: Options = { + port: 4000, + endpoint: "/graphql", + playground: "/playground", + validationRules: req => [ + queryComplexity({ + // The maximum allowed query complexity, queries above this threshold will be rejected + maximumComplexity: 8, + // The query variables. This is needed because the variables are not available + // in the visitor of the graphql-js library + variables: req.query.variables, + // Optional callback function to retrieve the determined query complexity + // Will be invoked weather the query is rejected or not + // This can be used for logging or to implement rate limiting + onComplete: (complexity: number) => { + console.log("Query Complexity:", complexity); + }, + estimators: [ + // Using fieldConfigEstimator is mandatory to make it work with type-graphql + fieldConfigEstimator(), + // This will assign each field a complexity of 1 if no other estimator + // returned a value. We can define the default value for field not explicitly annotated + simpleEstimator({ + defaultComplexity: 1, + }), + ], + }), + ], +}; + +// Start the server +server.start(serverOptions, ({ port, playground }) => { + console.log( + `Server is running, GraphQL Playground available at http://localhost:${port}${playground}`, + ); +}); ``` And it's done! 😉 For more info about how query complexity is computed, please visit[graphql-query-complexity](https://github.com/ivome/graphql-query-complexity). - ## Example + You can see how this works together in the [simple query complexity example](https://github.com/MichalLytek/type-graphql/tree/master/examples/query-complexity). diff --git a/website/versioned_docs/version-0.16.0/enums.md b/website/versioned_docs/version-0.16.0/enums.md index a556fc51a..815958cad 100644 --- a/website/versioned_docs/version-0.16.0/enums.md +++ b/website/versioned_docs/version-0.16.0/enums.md @@ -10,6 +10,7 @@ Enums allow to limit the range of possible variable's values to a set of predefi GraphQL also has enum type support, so `TypeGraphQL` allows you to use TypeScript enums in your GraphQL schema. ## Usage + First of all, you need to create a TypeScript enum. It can be a numeric or string enum - the internal value of enums will be taken from enums definition values and the public names from the enum keys: diff --git a/website/versioned_docs/version-0.16.0/interfaces-and-inheritance.md b/website/versioned_docs/version-0.16.0/interfaces-and-inheritance.md index 8ed2b6d8c..96ea3ff54 100644 --- a/website/versioned_docs/version-0.16.0/interfaces-and-inheritance.md +++ b/website/versioned_docs/version-0.16.0/interfaces-and-inheritance.md @@ -9,9 +9,10 @@ The main idea of TypeGraphQL is to create GraphQL types based on TypeScript clas In object-oriented programming it is common to create interfaces which describes the contract that classes implementing them has to fulfill. We also compose classes using inheritance. Hence TypeGraphQL supports both GraphQL interfaces as well as composing type definitions by extending the classes. ## Interfaces + TypeScript has first class support for interfaces. Unfortunately, they only exist at compile-time, so we can't use them to build GraphQL schema at runtime by using decorators. -Luckily, we can use an abstract class for this purpose. It behaves almost like an interface (can't be "newed", can be implemented by class), it just won't stop developers from implementing a method or initializing a field. But as long as we treat it like an interface, we can safely use it. +Luckily, we can use an abstract class for this purpose. It behaves almost like an interface (can't be "newed", can be implemented by class), it just won't stop developers from implementing a method or initializing a field. But as long as we treat it like an interface, we can safely use it. So, how do you create GraphQL interface definition? We create an abstract class and decorate it with `@InterfaceType()`. The rest is exactly the same as with object types: we use `@Field` to declare the shape of the type: @@ -44,12 +45,14 @@ The only difference is that we have to let TypeGraphQL know that this `ObjectTyp We can also omit the decorators as the GraphQL types will be copied from the interface definition - this way we don't have to maintain two definitions and just rely on TypeScript type checking of correct interface implementation. -Be aware that when your object type is implementing GraphQL interface type, __you have to return an instance of the type class__ in your resolvers. Otherwise, `graphql-js` will not be able to detect the underlying GraphQL type correctly. +Be aware that when your object type is implementing GraphQL interface type, **you have to return an instance of the type class** in your resolvers. Otherwise, `graphql-js` will not be able to detect the underlying GraphQL type correctly. ## Types inheritance + One of the most known principles of software development is DRY - don't repeat yourself - which tells about avoiding redundancy in our code. -While creating GraphQL API, it's a common pattern to have pagination args in resolvers, like `skip` and `take`. So instead of repeating yourself, you can declare it once: +While creating GraphQL API, it's a common pattern to have pagination args in resolvers, like `skip` and `take`. So instead of repeating yourself, you can declare it once: + ```typescript @ArgsType() class PaginationArgs { @@ -62,6 +65,7 @@ class PaginationArgs { ``` and then reuse it everywhere: + ```typescript @ArgsType() class GetTodosArgs extends PaginationArgs { @@ -71,6 +75,7 @@ class GetTodosArgs extends PaginationArgs { ``` This technique also works with input type classes, as well as with object type classes: + ```typescript @ObjectType() class Person { @@ -88,9 +93,11 @@ class Student extends Person { Note that both the subclass and the parent class must be decorated with the same type of decorator, like `@ObjectType()` in the example `Person -> Student` above. Mixing decorator types across parent and child classes is prohibited and might result in schema building error - you can't e.g decorate the subclass with `@ObjectType()` and the parent with `@InputType()`. ## Resolvers inheritance + The special kind of inheritance in TypeGraphQL is a resolver classes inheritance. This pattern allows you to e.g. create a base CRUD resolver class for your resource/entity, so you don't have to repeat the common boilerplate code all the time. As we need to generate unique query/mutation names, we have to create a factory function for our base class: + ```typescript function createBaseResolver() { abstract class BaseResolver {} @@ -98,9 +105,11 @@ function createBaseResolver() { return BaseResolver; } ``` + Be aware that with some `tsconfig.json` settings you might receive `[ts] Return type of exported function has or is using private name 'BaseResolver'` error - in that case you might need to use `any` as a return type or create a separate class/interface describing the class methods and properties. This factory should take a parameter that we can use to generate queries/mutations names, as well as the type that we would return from the resolvers: + ```typescript function createBaseResolver(suffix: string, objectTypeCls: T) { abstract class BaseResolver {} @@ -110,6 +119,7 @@ function createBaseResolver(suffix: string, objectTypeCls: ``` It's very important to mark the `BaseResolver` class using `@Resolver` decorator with `{ isAbstract: true }` option that will prevent throwing error due to registering multiple queries/mutations with the same name. + ```typescript function createBaseResolver(suffix: string, objectTypeCls: T) { @Resolver({ isAbstract: true }) @@ -120,6 +130,7 @@ function createBaseResolver(suffix: string, objectTypeCls: ``` Then we can implement the resolvers methods in the same way as always. The only difference is that we can use `name` decorator option for `@Query`, `@Mutation` and `@Subscription` decorators to overwrite the name that will be emitted in schema: + ```typescript function createBaseResolver(suffix: string, objectTypeCls: T) { @Resolver({ isAbstract: true }) @@ -127,9 +138,7 @@ function createBaseResolver(suffix: string, objectTypeCls: protected items: T[] = []; @Query(type => [objectTypeCls], { name: `getAll${suffix}` }) - async getAll( - @Arg("first", type => Int) first: number, - ): Promise { + async getAll(@Arg("first", type => Int) first: number): Promise { return this.items.slice(0, first); } } @@ -139,6 +148,7 @@ function createBaseResolver(suffix: string, objectTypeCls: ``` After that we can create a specific resolver class that will extend the base resolver class: + ```typescript const PersonBaseResolver = createBaseResolver("person", Person); @@ -149,6 +159,7 @@ export class PersonResolver extends PersonBaseResolver { ``` We can also add specific queries and mutation in our resolver class, just like always: + ```typescript const PersonBaseResolver = createBaseResolver("person", Person); @@ -161,11 +172,13 @@ export class PersonResolver extends PersonBaseResolver { } } ``` + And that's it! We just need to normally register `PersonResolver` in `buildSchema` and the extended resolver will be working correctly. Be aware that if you want to overwrite the query/mutation/subscription from parent resolver class, you need to generate the same schema name (using `name` decorator option or the class method name). It will overwrite the implementation along with GraphQL args and return types. If you only provide different implementation of the inherited method like `getOne`, it won't work. ## Examples + More advanced usage example of interfaces and types inheritance (e.g. with query returning interface type) you can see in [this examples folder](https://github.com/MichalLytek/type-graphql/tree/master/examples/interfaces-inheritance). For more advanced resolvers inheritance example, please go to [the example folder](https://github.com/MichalLytek/type-graphql/tree/master/examples/resolvers-inheritance). diff --git a/website/versioned_docs/version-0.16.0/introduction.md b/website/versioned_docs/version-0.16.0/introduction.md index 7e13f5938..16dbdaaeb 100644 --- a/website/versioned_docs/version-0.16.0/introduction.md +++ b/website/versioned_docs/version-0.16.0/introduction.md @@ -5,11 +5,13 @@ id: version-0.16.0-introduction original_id: introduction --- -We all love GraphQL! It's so great and solves many problems that we have with REST API, such as overfetching and underfetching. But developing a GraphQL API in Node.js with TypeScript is sometimes a bit of a pain. +We all love GraphQL! It's so great and solves many problems that we have with REST API, such as overfetching and underfetching. But developing a GraphQL API in Node.js with TypeScript is sometimes a bit of a pain. ## What? + **TypeGraphQL** is a library that makes this process enjoyable, by defining the schema using only classes and a bit of decorators magic. Example object type: + ```typescript @ObjectType() class Recipe { @@ -27,17 +29,21 @@ class Recipe { It also has a set of useful features, like validation, authorization and dependency injection, which helps develop GraphQL API quickly & easily! ## Why? + As I mentioned, developing a GraphQL API in Node.js with TypeScript is sometimes a bit of a pain. Why? Let's take a look at the steps we usually have to make. First, we create all the schema types in SDL. We also create our data models using [ORM classes](https://github.com/typeorm/typeorm), which represents our db entities. Then we start to write resolvers for our queries, mutations and fields. This forces us, however, to begin with creating TS interfaces for all arguments and inputs and/or object types. After that, we can actually implement the resolvers, using weird generic signatures, e.g.: + ```typescript -export const recipesResolver: GraphQLFieldResolver = - async (_, args) => { - // our business logic, e.g.: - const repository = getRepository(Recipe); - return repository.find(); - } +export const recipesResolver: GraphQLFieldResolver = async ( + _, + args, +) => { + // our business logic, e.g.: + const repository = getRepository(Recipe); + return repository.find(); +}; ``` The biggest problem is the redundancy in our codebase which makes it difficult to keep things in sync. To add a new field to our entity, we have to jump through all the files: modify entity class, then modify part of the schema, and finally update the interface. The same goes with inputs or arguments: it's easy to forget to update one or make a mistake with the type. Also, what if we've made a typo in field name? The rename feature (F2) won't work correctly. diff --git a/website/versioned_docs/version-0.16.0/middlewares.md b/website/versioned_docs/version-0.16.0/middlewares.md index eec7936ad..c5a07a95e 100644 --- a/website/versioned_docs/version-0.16.0/middlewares.md +++ b/website/versioned_docs/version-0.16.0/middlewares.md @@ -12,8 +12,8 @@ Middlewares are a piece of reusable code that can be easily attached to resolver Middlewares are a very powerful but also a bit complicated feature. Basically, they are functions that take 2 arguments: -* resolver data - the same as for resolvers (`root`, `args`, `context`, `info`) -* `next` function - used to control execution of next middlewares and the resolver to which they are attached +- resolver data - the same as for resolvers (`root`, `args`, `context`, `info`) +- `next` function - used to control execution of next middlewares and the resolver to which they are attached You might be familiar with how middlewares works in [`express.js`](https://expressjs.com/en/guide/writing-middleware.html) but TypeGraphQL middlewares are inspired by the [`koa.js` ones](http://koajs.com/#application). The difference is that the `next` function returns a promise of the value of further middlewares stack and resolver execution. @@ -183,6 +183,7 @@ const schema = await buildSchema({ ### Custom decorators If you want to have a more descriptive and declarative API, you can also create custom decorators. They work in the same way like the reusable middleware function, however in this case you need to return the `UseMiddleware` decorator function: + ```typescript export function ValidateArgs(schema: Schema) { return UseMiddleware(async ({ args }, next) => { @@ -194,6 +195,7 @@ export function ValidateArgs(schema: Schema) { ``` The usage is then very simple, as you have a custom, descriptive decorator - just place it above resolver/field and pass the required arguments to id: + ```typescript @Resolver() export class RecipeResolver { diff --git a/website/versioned_docs/version-0.16.0/resolvers.md b/website/versioned_docs/version-0.16.0/resolvers.md index 1953d294d..2d08c6916 100644 --- a/website/versioned_docs/version-0.16.0/resolvers.md +++ b/website/versioned_docs/version-0.16.0/resolvers.md @@ -9,15 +9,16 @@ Besides [declaring GraphQL's object types](types-and-fields.md), TypeGraphQL all ## Queries and mutations ### Resolvers classes + First you have to create a resolver class and annotate it with `@Resolver()` decorator. This class will behave like a controller from classic REST frameworks: + ```typescript @Resolver() -class RecipeResolver { - -} +class RecipeResolver {} ``` You can use a DI framework (as described in [dependency injection docs](dependency-injection.md)) to inject class dependencies (like services or repositories) or store data inside resolvers class - it's guaranteed to be a single instance per app. + ```typescript @Resolver() class RecipeResolver { @@ -26,6 +27,7 @@ class RecipeResolver { ``` Then you can create class methods which will handle queries and mutations. For example let's add the `recipes` query to return a collection of all recipes: + ```typescript @Resolver() class RecipeResolver { @@ -40,7 +42,8 @@ class RecipeResolver { We also need to do two things. The first is to add the `@Query` decorator, which marks the class method as a GraphQL query. -The second is to provide the return type. Since the method is async, the reflection metadata system shows the return type as `Promise`, so we have to add the decorator's parameter as `returns => [Recipe]` to declare it resolve to an array of `Recipe` object types. +The second is to provide the return type. Since the method is async, the reflection metadata system shows the return type as `Promise`, so we have to add the decorator's parameter as `returns => [Recipe]` to declare it resolve to an array of `Recipe` object types. + ```typescript @Resolver() class RecipeResolver { @@ -54,9 +57,11 @@ class RecipeResolver { ``` ### Arguments + Usually queries have some arguments - it might be an id of the resource, the search phrase or pagination settings. TypeGraphQL allows you to define the arguments in two ways. First is the inline method using `@Arg()` decorator. The drawback is the need of repeating argument name (due to a reflection system limitation) in the decorator parameter. As you can see below, you can also pass a `defaultValue` options that will be reflected in the GraphQL schema. + ```typescript @Resolver() class RecipeResolver { @@ -70,7 +75,9 @@ class RecipeResolver { } } ``` -This works well when there are 2 - 3 args. But when you have many more, the resolver's method definitions becomes bloated. In that case you can use a class definition to describe the arguments. It looks like the object type class but it has `@ArgsType()` decorator on top. + +This works well when there are 2 - 3 args. But when you have many more, the resolver's method definitions becomes bloated. In that case you can use a class definition to describe the arguments. It looks like the object type class but it has `@ArgsType()` decorator on top. + ```typescript @ArgsType() class GetRecipesArgs { @@ -97,7 +104,8 @@ class GetRecipesArgs { skip: number; @Field(type => Int) - @Min(1) @Max(50) + @Min(1) + @Max(50) take = 25; @Field({ nullable: true }) @@ -111,6 +119,7 @@ class GetRecipesArgs { Then all that left to do is to use the args class as the type of the method parameter. We can use the destructuring syntax to have access to single arguments as variables, instead of the reference to the whole args object. + ```typescript @Resolver() class RecipeResolver { @@ -120,7 +129,7 @@ class RecipeResolver { // sample implementation let recipes = this.recipesCollection; if (title) { - recipes = recipes.filter(recipe => recipe.title === title) + recipes = recipes.filter(recipe => recipe.title === title); } return recipes.slice(startIndex, endIndex); } @@ -128,6 +137,7 @@ class RecipeResolver { ``` This declarations will result in the following part of the schema in SDL: + ```graphql type Query { recipes(skip: Int = 0, take: Int = 25, title: String): [Recipe!] @@ -135,23 +145,23 @@ type Query { ``` ### Input types + GraphQL's mutations we can create analogously, by declaring the class method, using `@Mutation` decorator, providing return type (if needed), creating arguments, etc. But for mutation we usually use `input` types, hence TypeGraphQL allows you to create inputs in the same way as the [object types](types-and-fields.md) but using `@InputType()` decorator: + ```typescript @InputType() -class AddRecipeInput { - -} +class AddRecipeInput {} ``` We can also leverage TypeScript type checking system and ensure that we won't accidentally change the type of property by implementing `Partial` type: + ```typescript @InputType() -class AddRecipeInput implements Partial { - -} +class AddRecipeInput implements Partial {} ``` Then we can declare all the input fields we would need, using `@Field()` decorator: + ```typescript @InputType({ description: "New recipe data" }) class AddRecipeInput implements Partial { @@ -166,15 +176,13 @@ class AddRecipeInput implements Partial { After that we can use the `AddRecipeInput` type in our mutation. We can do this inline (using `@Arg()` decorator) or as a field of the args class like in query's example above. We might also need access to the context. To achieve this we use the `@Ctx()` decorator with the optional user-defined `Context` interface: + ```typescript @Resolver() class RecipeResolver { // ... @Mutation() - addRecipe( - @Arg("data") newRecipeData: AddRecipeInput, - @Ctx() ctx: Context, - ): Recipe { + addRecipe(@Arg("data") newRecipeData: AddRecipeInput, @Ctx() ctx: Context): Recipe { // sample implementation const recipe = RecipesUtils.create(newRecipeData, ctx.user); this.recipesCollection.push(recipe); @@ -182,15 +190,18 @@ class RecipeResolver { } } ``` + Because our method is synchronous and explicitly returns `Recipe`, we can omit the `@Mutation()` type annotation. This declaration will result in the following part of the schema in SDL: + ```graphql input AddRecipeInput { title: String! description: String } ``` + ```graphql type Mutation { addRecipe(data: AddRecipeInput!): Recipe! @@ -200,9 +211,11 @@ type Mutation { By using parameter decorators, we can get rid of the unnecessary parameters (like `root`) that bloat our method definition and have to be ignored by prefixing the parameter name with `_`. Also, we can achieve a clean separation between GraphQL and our business code with decorators, so our resolvers and their methods behave just like services which we can easily unit-test. ## Field resolvers + Queries and mutations are not the only type of resolvers. We often create object type field resolvers (e.g. when a `user` type has a field `posts`) which we have to resolve by fetching relational data from the database. Field resolvers in TypeGraphQL are very similar to queries and mutations - we create them as a method on the resolver class but with a few modifications. Firstly, we need to declare which object type's fields we are resolving by providing the type to the `@Resolver` decorator: + ```typescript @Resolver(of => Recipe) class RecipeResolver { @@ -212,6 +225,7 @@ class RecipeResolver { Then we can create the class method that become the field resolver. In our example we have the `averageRating` field in the `Recipe` object type that should calculate the average from the `ratings` array. + ```typescript @Resolver(of => Recipe) class RecipeResolver { @@ -224,6 +238,7 @@ class RecipeResolver { ``` We need to mark the method as a field resolver with the `@FieldResolver()` decorator. Because we've defined the type of the field in the `Recipe` class definition, there's no need to do this again. We also need to decorate the method's parameters with `@Root` to inject the recipe object. + ```typescript @Resolver(of => Recipe) class RecipeResolver { @@ -239,6 +254,7 @@ class RecipeResolver { For enhanced type safety you can implement the `ResolverInterface` interface. It's a small helper that will check if the return type of field resolver methods, like `averageRating(...)`, match the `averageRating` property of the `Recipe` class and whether the first parameter of the method is the object type (`Recipe` class). + ```typescript @Resolver(of => Recipe) class RecipeResolver implements ResolverInterface { @@ -252,6 +268,7 @@ class RecipeResolver implements ResolverInterface { ``` Here is a full sample implementation of the `averageRating` field resolver: + ```typescript @Resolver(of => Recipe) class RecipeResolver implements ResolverInterface { @@ -260,9 +277,7 @@ class RecipeResolver implements ResolverInterface { @FieldResolver() averageRating(@Root() recipe: Recipe) { const ratingsSum = recipe.ratings.reduce((a, b) => a + b, 0); - return recipe.ratings.length - ? ratingsSum / recipe.ratings.length - : null; + return recipe.ratings.length ? ratingsSum / recipe.ratings.length : null; } } ``` @@ -276,7 +291,7 @@ class Recipe { title: string; @Field({ deprecationReason: "Use `title` instead" }) - get name(): string { + get name(): string { return this.title; } @@ -290,11 +305,11 @@ class Recipe { const ratingsSum = ratings.reduce((a, b) => a + b, 0); return ratingsSum / ratings.length; - }; + } } ``` -However, if the code is more complicated and has side effects (i.e. api calls, fetching from databases), use a resolver class's method instead. That way you can leverage the dependency injection mechanism, which is really helpful in testing. For example: +However, if the code is more complicated and has side effects (i.e. api calls, fetching from databases), use a resolver class's method instead. That way you can leverage the dependency injection mechanism, which is really helpful in testing. For example: ```typescript @Resolver(of => Recipe) @@ -315,8 +330,10 @@ class RecipeResolver implements ResolverInterface { Note that if a field name of a field resolver doesn't exit in resolver object type, it will create in schema a field with this name. This feature is useful when the field is purely calculable (eg. `averageRating` from `ratings` array) and you don't want to pollute the class signature. ## Resolvers inheritance + Inheritance of resolver classes is an advanced topic covered in [inheritance docs](inheritance.md#resolvers-inheritance). ## Examples + These code samples are made up just for tutorial purposes. You can find more advanced, real examples in the repository [examples folder](https://github.com/MichalLytek/type-graphql/tree/master/examples). diff --git a/website/versioned_docs/version-0.16.0/scalars.md b/website/versioned_docs/version-0.16.0/scalars.md index 777de840a..a7e0b50b6 100644 --- a/website/versioned_docs/version-0.16.0/scalars.md +++ b/website/versioned_docs/version-0.16.0/scalars.md @@ -5,12 +5,15 @@ original_id: scalars --- ## Aliases + TypeGraphQL provides aliases for 3 basic scalars: + - Int --> GraphQLInt; - Float --> GraphQLFloat; - ID --> GraphQLID; This shorthand allows you to save keystrokes when declaring field type: + ```typescript // import the aliases import { ID, Float, Int } from "type-graphql"; @@ -27,9 +30,11 @@ class MysteryObject { probability: number; } ``` + In the last case you can omit the `type => Float` since JavaScript `Number` will become `GraphQLFloat` in the schema automatically. -Other scalars - i.e. `GraphQLString` and `GraphQLBoolean` - do not need aliases. When possible, they will be reflected automatically: +Other scalars - i.e. `GraphQLString` and `GraphQLBoolean` - do not need aliases. When possible, they will be reflected automatically: + ```typescript @ObjectType() class User { @@ -42,11 +47,13 @@ class User { ``` However in some cases you will have to explicitly declare the string/bool scalar type. Use JS constructor functions (`String`, `Boolean`) then: + ```typescript @ObjectType() class SampleObject { @Field(type => String, { nullable: true }) - get optionalInfo(): string | undefined { // TS reflected type is `Object` :( + get optionalInfo(): string | undefined { + // TS reflected type is `Object` :( if (Math.random() > 0.5) { return "Gotcha!"; } @@ -55,13 +62,16 @@ class SampleObject { ``` ## Date Scalars + TypeGraphQL provides built-in scalars for the `Date` type. There are two versions of this scalar: + - timestamp based (`"timestamp"`) - `1518037458374` - ISO format (`"isoDate"`) - `"2018-02-07T21:04:39.573Z"` -They are exported from `type-graphql` package as `GraphQLISODateScalar` and `GraphQLTimestampScalar`. +They are exported from `type-graphql` package as `GraphQLISODateScalar` and `GraphQLTimestampScalar`. By default TypeGraphQL use the ISO date format, however you can change it in `buildSchema` options: + ```typescript import { buildSchema } from "type-graphql"; @@ -72,6 +82,7 @@ const schema = await buildSchema({ ``` There's no need to explicitly declare the field type then: + ```typescript @ObjectType() class User { @@ -79,12 +90,15 @@ class User { registrationDate: Date; } ``` + If you use `ts-node`, be aware you must execute it with the `--type-check` flag due to a [Date reflection bug](https://github.com/TypeStrong/ts-node/issues/511). ## Custom Scalars + TypeGraphQL also support custom scalar types. First of all, you need to create your own `GraphQLScalarType` instance or import the scalar type from a 3rd-party npm library. For example, Mongo's ObjectId: + ```typescript import { GraphQLScalarType, Kind } from "graphql"; import { ObjectId } from "mongodb"; @@ -108,6 +122,7 @@ export const ObjectIdScalar = new GraphQLScalarType({ ``` Then you can just use it in your field decorators: + ```typescript // import the earlier created const import { ObjectIdScalar } from "../my-scalars/ObjectId"; @@ -126,6 +141,7 @@ class User { ``` Optionally, you can declare the association between the reflected property type and your scalars to automatically map them (no need to explicit type annotation!): + ```typescript @ObjectType() class User { @@ -135,6 +151,7 @@ class User { ``` All you need to do is register the association map in the `buildSchema` options: + ```typescript import { ObjectId } from "mongodb"; import { ObjectIdScalar } from "../my-scalars/ObjectId"; @@ -145,4 +162,5 @@ const schema = await buildSchema({ scalarsMap: [{ type: ObjectId, scalar: ObjectIdScalar }], }); ``` + However, be aware that this will work only when the TypeScript reflection mechanism can handle it. So your class property type must be the `class`, not an enum, union or an interface. diff --git a/website/versioned_docs/version-0.16.0/subscriptions.md b/website/versioned_docs/version-0.16.0/subscriptions.md index 174a5b5b7..fe56b6294 100644 --- a/website/versioned_docs/version-0.16.0/subscriptions.md +++ b/website/versioned_docs/version-0.16.0/subscriptions.md @@ -9,9 +9,11 @@ However, oftentimes clients want to get pushed updates from the server when data To support that, GraphQL has a third operation: subscription. TypeGraphQL of course has great support for subscription, using [graphql-subscriptions](https://github.com/apollographql/graphql-subscriptions) package created by [Apollo GraphQL](https://www.apollographql.com/). ## Creating subscriptions + Subscription resolvers are basically similar to [queries and mutation resolvers](resolvers.md) but a little bit more complicated. At first, we create normal class method as always, this time annotated with `@Subscription()` decorator. + ```typescript class SampleResolver { // ... @@ -23,10 +25,11 @@ class SampleResolver { ``` Then we have to provide to which topics we want to subscribe. This can be a single topic string, an array of topics or a function to dynamically create a topic based on subscription args passed on the query. We can also use TS enums for enhanced type safety. + ```typescript class SampleResolver { // ... - @Subscription({ + @Subscription({ topics: "NOTIFICATIONS", // single topic topics: ["NOTIFICATIONS", "ERRORS"] // or topics array topics: ({ args, payload, context }) => args.topic // or dynamic topic function @@ -37,13 +40,13 @@ class SampleResolver { } ``` - We can also provide the `filter` option to decide which events from topics should trigger our subscription. This function should return `boolean` or `Promise`. + ```typescript class SampleResolver { // ... - @Subscription({ + @Subscription({ topics: "NOTIFICATIONS", filter: ({ payload, args }) => args.priorities.includes(payload.priority), }) @@ -54,10 +57,11 @@ class SampleResolver { ``` Then we can implement the subscription resolver. It will receive the payload from triggered topic of pubsub system using `@Root()` decorator. There we can transform it to the returned shape. + ```typescript class SampleResolver { // ... - @Subscription({ + @Subscription({ topics: "NOTIFICATIONS", filter: ({ payload, args }) => args.priorities.includes(payload.priority), }) @@ -68,18 +72,20 @@ class SampleResolver { return { ...notificationPayload, date: new Date(), - } + }; } } ``` ## Triggering subscriptions topics + Ok, we've created subscriptions, but what is the `pubsub` system and how to trigger the topics? They might be triggered from external sources like a DB. We also can do this in mutations, e.g. when we modify some resource that clients want to receive notifications about the changes. So, assuming we have this mutation for adding new comment: + ```typescript class SampleResolver { // ... @@ -94,14 +100,12 @@ class SampleResolver { We use `@PubSub()` decorator to inject the `pubsub` into our method params. There we can trigger the topics and send the payload to all topic subscribers. + ```typescript class SampleResolver { // ... @Mutation(returns => Boolean) - async addNewComment( - @Arg("comment") input: CommentInput, - @PubSub() pubSub: PubSubEngine, - ) { + async addNewComment(@Arg("comment") input: CommentInput, @PubSub() pubSub: PubSubEngine) { const comment = this.commentsService.createNew(input); await this.commentsRepository.save(comment); // here we can trigger subscriptions topics @@ -114,6 +118,7 @@ class SampleResolver { For easier testability (easier mocking/stubbing), we can also inject only the `publish` method bound to selected topic. To do this, we use `@PubSub("TOPIC_NAME")` decorator and the `Publisher` type: + ```typescript class SampleResolver { // ... @@ -134,23 +139,26 @@ class SampleResolver { And that's it! Now all subscriptions attached to `NOTIFICATIONS` topic will be triggered while performing `addNewComment` mutation. ## Using custom PubSub system + By default, TypeGraphQL use simple `PubSub` system from `grapqhl-subscriptions` which is based on EventEmitter. This solution has a big drawback that it will works correctly only when we have single instance (process) of our Node.js app. -For better scalability you'll want to use one of the [PubSub implementations]((https://github.com/apollographql/graphql-subscriptions#pubsub-implementations)) backed by an external store. +For better scalability you'll want to use one of the [PubSub implementations](<(https://github.com/apollographql/graphql-subscriptions#pubsub-implementations)>) backed by an external store. It might be e.g. Redis with [`graphql-redis-subscriptions`](https://github.com/davidyaha/graphql-redis-subscriptions) package. All you need to do is to create an instance of PubSub according to package instruction and the provide it to TypeGraphQL `buildSchema` options: + ```typescript const myRedisPubSub = getConfiguredRedisPubSub(); const schema = await buildSchema({ resolvers: [__dirname + "/**/*.resolver.ts"], pubSub: myRedisPubSub, -}) +}); ``` ## Creating subscription server + The [bootstrap guide](bootstrap.md) and all the earlier examples used [`apollo-server`](https://github.com/apollographql/apollo-server) to create HTTP endpoint for our GraphQL API. Fortunately, to make subscriptions work, we don't need to manually provide transport layer that doesn't have constraints of HTTP and can do a push-based communication (WebSockets). @@ -166,9 +174,11 @@ const server = new ApolloServer({ }, }); ``` + And it's done!. We have a working GraphQL subscription server on `/subscriptions`, along with a normal HTTP GraphQL server. ## Examples + You can see how the subscriptions works in a [simple example](https://github.com/MichalLytek/type-graphql/tree/master/examples/simple-subscriptions). For production usage, it's better to use something more scalable, e.g. a Redis-based pubsub system - [working example is also available](https://github.com/MichalLytek/type-graphql/tree/master/examples/redis-subscriptions). diff --git a/website/versioned_docs/version-0.16.0/types-and-fields.md b/website/versioned_docs/version-0.16.0/types-and-fields.md index 6b2882447..35725bc64 100644 --- a/website/versioned_docs/version-0.16.0/types-and-fields.md +++ b/website/versioned_docs/version-0.16.0/types-and-fields.md @@ -7,6 +7,7 @@ original_id: types-and-fields The main idea of TypeGraphQL is to automatically create GraphQL schema definition from TypeScript's classes. To avoid the need of schema definition files and interfaces describing the schema, we use a bit of reflection magic and decorators. Let's start with defining the example TypeScript class. It will represent our `Recipe` model with fields storing recipe's data: + ```typescript class Recipe { id: string; @@ -17,6 +18,7 @@ class Recipe { ``` First what we have to do is to decorate the class with e.g. `@ObjectType` decorator. It marks the class as the `type` known from GraphQL SDL or `GraphQLObjectType` from `graphql-js`: + ```typescript @ObjectType() class Recipe { @@ -29,6 +31,7 @@ class Recipe { Then we need to declare which class properties should be mapped to GraphQL fields. To do this, we use `@Field` decorator, which is also used to collect the metadata from TypeScript reflection system: + ```typescript @ObjectType() class Recipe { @@ -47,18 +50,20 @@ class Recipe { ``` For simple types (like `string` or `boolean`) it's enough but unfortunately, due to TypeScript's reflection limitation, we need to provide info about generic types (like `Array` or `Promise`). So to declare `Rate[]` type, there are two options available: + - `@Field(type => [Rate])` (the recommended way - explicit `[ ]` syntax for Array) - `@Field(itemType => Rate)` (`array` is inferred from reflection - also ok but prone to error) Why function syntax, not simple `{ type: Rate }` config object? Because this way we solve problems with circular dependencies (e.g. Post <--> User), so it was adopted as a convention. You can use the shorthand syntax `@Field(() => Rate)` if you want to save some keystrokes but it might be less readable for others. -For nullable properties like `averageRating` (it might be not defined when recipe has no ratings yet), we mark the class property as optional with `?:` operator and also have to pass `{ nullable: true }` decorator parameter. Be aware that when you declare your type as a nullable union (e.g. `string | null`), you need to explicitly provide the type to the `@Field` decorator. +For nullable properties like `averageRating` (it might be not defined when recipe has no ratings yet), we mark the class property as optional with `?:` operator and also have to pass `{ nullable: true }` decorator parameter. Be aware that when you declare your type as a nullable union (e.g. `string | null`), you need to explicitly provide the type to the `@Field` decorator. In case of lists, you may also need to define the nullability in a more detailed fashion. The basic `{ nullable: true | false }` settings apply only to the a whole list (`[Item!]` or `[Item!]!`), so if you need a sparse array, you can control the list items nullability via `nullable: items` (for `[Item]!`) or `nullable: itemsAndList` (for `[Item]`) option. In the config object we can also provide `description` and `deprecationReason` for GraphQL schema purposes. So after this changes our example class would look like this: + ```typescript @ObjectType({ description: "The recipe model" }) class Recipe { @@ -77,6 +82,7 @@ class Recipe { ``` Which in result will generate following part of GraphQL schema in SDL: + ```graphql type Recipe { id: ID! @@ -87,6 +93,7 @@ type Recipe { ``` Analogously, the `Rate` type class would look like this: + ```typescript @ObjectType() class Rate { @@ -99,7 +106,9 @@ class Rate { user: User; } ``` + which results in this equivalent of GraphQL's SDL: + ```graphql type Rate { value: Int! @@ -107,7 +116,7 @@ type Rate { } ``` -As you could see, for `id` property of `Recipe` we've passed `type => ID` and for `value` field of `Rate` - `type => Int`. This way we can overwrite the inferred type from reflection metadata. You can read more about the ID and Int scalars in [the scalars docs](scalars.md). There is also a section about the built-in `Date` scalar. +As you could see, for `id` property of `Recipe` we've passed `type => ID` and for `value` field of `Rate` - `type => Int`. This way we can overwrite the inferred type from reflection metadata. You can read more about the ID and Int scalars in [the scalars docs](scalars.md). There is also a section about the built-in `Date` scalar. Also the `user` property doesn't have `@Field()` decorator - this way we can hide some properties of our data model. In this case we need to store in database `user` info inside `Rate` object to prevent multiple rates but we don't want to make it public, accessible to every API consumer. diff --git a/website/versioned_docs/version-0.16.0/unions.md b/website/versioned_docs/version-0.16.0/unions.md index b995a5c97..80e18e138 100644 --- a/website/versioned_docs/version-0.16.0/unions.md +++ b/website/versioned_docs/version-0.16.0/unions.md @@ -4,11 +4,12 @@ id: version-0.16.0-unions original_id: unions --- -Sometimes our API has to be flexible and return not a specific type but the one from the range of possible types. The example might be a movie site's search functionality: using the provided phrase we search in database not only for movies but also for actors, so the query has to return the list `Movie` or `Actor` types. +Sometimes our API has to be flexible and return not a specific type but the one from the range of possible types. The example might be a movie site's search functionality: using the provided phrase we search in database not only for movies but also for actors, so the query has to return the list `Movie` or `Actor` types. You can read more about GraphQL union type in [official docs](http://graphql.org/learn/schema/#union-types). ## Usage + Let's start by creating the object types from example above: ```typescript @@ -21,6 +22,7 @@ class Movie { rating: number; } ``` + ```typescript @ObjectType() class Actor { @@ -33,11 +35,12 @@ class Actor { ``` Then we have to create the union type from the object types above: + ```typescript import { createUnionType } from "type-graphql"; const SearchResultUnion = createUnionType({ - name: "SearchResult", // the name of the GraphQL union + name: "SearchResult", // the name of the GraphQL union types: [Movie, Actor], // array of object types classes }); ``` @@ -45,13 +48,12 @@ const SearchResultUnion = createUnionType({ All that left to do is to use the union type in the query. Notice, that due to TypeScript's reflection limitation, you have to explicitly use `SearchResultUnion` value in `@Query` decorator return type annotation. For TS compile-time type safety you can also use `typeof SearchResultUnion` which is equal to type `Movie | Actor`. + ```typescript @Resolver() class SearchResolver { @Query(returns => [SearchResultUnion]) - async search( - @Arg("phrase") phrase: string, - ): Promise> { + async search(@Arg("phrase") phrase: string): Promise> { const movies = await Movies.findAll(phrase); const actors = await Actors.findAll(phrase); @@ -59,17 +61,21 @@ class SearchResolver { } } ``` + Be aware that when your query/mutation return type (or field type) is an union, you have to return an specific instance of the object type class. Otherwise, `graphql-js` will not be able to detect the underlying GraphQL type correctly when you use plain JS objects. **Et Voilà!** You can now build the schema and make the example query 😉 + ```graphql query { search(phrase: "Holmes") { - ... on Actor { # maybe Katie Holmes? + ... on Actor { + # maybe Katie Holmes? name age } - ... on Movie { # for sure Sherlock Holmes! + ... on Movie { + # for sure Sherlock Holmes! name rating } diff --git a/website/versioned_docs/version-0.16.0/validation.md b/website/versioned_docs/version-0.16.0/validation.md index e397e3fd6..ce76e8f5c 100644 --- a/website/versioned_docs/version-0.16.0/validation.md +++ b/website/versioned_docs/version-0.16.0/validation.md @@ -6,12 +6,15 @@ original_id: validation --- ## Scalars + The standard way to make sure that the input and arguments are correct, like the `email` field really has an e-mail, is to use [custom scalars](https://github.com/MichalLytek/type-graphql/blob/master/docs/scalars.md) e.g. `GraphQLEmail` from [`graphql-custom-types`](https://github.com/stylesuxx/graphql-custom-types). However creating scalars for all single case of data type (credit card number, base64, IP, URL) might be cumbersome. And that's why TypeGraphQL has built-in support for validation of arguments and inputs using [`class-validator`](https://github.com/typestack/class-validator) features! You can use awesomeness of decorators to declare the requirement for incoming data (e.g. number is in range 0-255 or password is longer than 8 chars) in an easy way. ## How to use + At first, you have to decorate the input/arguments class with appropriate decorators from `class-validator`. So we take this: + ```typescript @InputType() export class RecipeInput { @@ -22,7 +25,9 @@ export class RecipeInput { description?: string; } ``` + and produce this: + ```typescript import { MaxLength, Length } from "class-validator"; @@ -37,9 +42,11 @@ export class RecipeInput { description?: string; } ``` + And that's it! 😉 TypeGraphQL will automatically validate your inputs and arguments based on the definitions: + ```typescript @Resolver(of => Recipe) export class RecipeResolver { @@ -56,6 +63,7 @@ export class RecipeResolver { Of course [there are many more decorators](https://github.com/typestack/class-validator#validation-decorators), not only the simple `@Length` used in the example above, so take a look at `class-validator` documentation. This feature is enabled by default. However, if you need, you can disable it: + ```typescript const schema = await buildSchema({ resolvers: [RecipeResolver], @@ -64,6 +72,7 @@ const schema = await buildSchema({ ``` And if you need, you can still enable it per resolver's argument: + ```typescript class RecipeResolver { @Mutation(returns => Recipe) @@ -74,6 +83,7 @@ class RecipeResolver { ``` You can also pass `ValidatorOptions` object, for setting features like [validation groups](https://github.com/typestack/class-validator#validation-groups): + ```typescript class RecipeResolver { @Mutation(returns => Recipe) @@ -91,19 +101,25 @@ Note that by default `skipMissingProperties` setting of `class-validator` is set GraphQL will also checks whether the fields have correct types (String, Int, Float, Boolean, etc.) so you don't have to use `@IsOptional`, `@Allow`, `@IsString` or `@IsInt` decorators at all! ## Response to the client + When client send incorrect data to the server: + ```graphql mutation ValidationMutation { - addRecipe(input: { - # too long! - title: "Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet" - }) { + addRecipe( + input: { + # too long! + title: "Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet" + } + ) { title creationDate } } ``` + the [`ArgumentValidationError`](https://github.com/MichalLytek/type-graphql/blob/master/src/errors/ArgumentValidationError.ts) will be throwed. To send more detailed error info to the client than `Argument Validation Error` string, you have to format the error - `TypeGraphQL` provides a helper for this case. Example using the `apollo-server` package from [bootstrap guide](bootstrap.md): + ```typescript import { formatArgumentValidationError } from "type-graphql"; @@ -116,6 +132,7 @@ const server = new ApolloServer({ ``` So when `ArgumentValidationError` occurs, client will receive this JSON with nice `validationErrors` property: + ```json { "errors": [ @@ -127,9 +144,7 @@ So when `ArgumentValidationError` occurs, client will receive this JSON with nic "column": 3 } ], - "path": [ - "addRecipe" - ], + "path": ["addRecipe"], "validationErrors": [ { "target": { @@ -152,4 +167,5 @@ So when `ArgumentValidationError` occurs, client will receive this JSON with nic Of course you can replace this with your own custom implementation of function that will transform `GraphQLError` with `ValidationError` array to the desired output format. ## Example + You can see how this fits together in the [simple real life example](https://github.com/MichalLytek/type-graphql/tree/master/examples/automatic-validation). diff --git a/website/versioned_docs/version-0.17.5/dependency-injection.md b/website/versioned_docs/version-0.17.5/dependency-injection.md index 422974da6..7fdbbf37f 100644 --- a/website/versioned_docs/version-0.17.5/dependency-injection.md +++ b/website/versioned_docs/version-0.17.5/dependency-injection.md @@ -120,7 +120,7 @@ const server = new ApolloServer({ We also have to dispose the container after the request has been handled and the response is ready. Otherwise, there would be a huge memory leak as the new instances of services and resolvers have been created for each request but they haven't been cleaned up. -Apollo Server since version 2.2.0 has a [plugins](https://www.apollographql.com/docs/apollo-server/integrations/plugins/) feature that supports [`willSendResponse`](https://www.apollographql.com/docs/apollo-server/integrations/plugins/#willsendresponse) lifecycle event. We can leverage it to clean up the container after handling the request. +Apollo Server since version 2.2.0 has a [plugins](https://www.apollographql.com/docs/apollo-server/integrations/plugins/) feature that supports [`willSendResponse`](https://www.apollographql.com/docs/apollo-server/integrations/plugins/#willsendresponse) lifecycle event. We can leverage it to clean up the container after handling the request. Example using `TypeDI` and `apollo-server` with plugins approach: diff --git a/website/versioned_sidebars/version-0.16.0-sidebars.json b/website/versioned_sidebars/version-0.16.0-sidebars.json index 0d1410e01..1f53a759d 100644 --- a/website/versioned_sidebars/version-0.16.0-sidebars.json +++ b/website/versioned_sidebars/version-0.16.0-sidebars.json @@ -1,8 +1,6 @@ { "version-0.16.0-docs": { - "Introduction": [ - "version-0.16.0-introduction" - ], + "Introduction": ["version-0.16.0-introduction"], "Beginner guides": [ "version-0.16.0-getting-started", "version-0.16.0-types-and-fields", @@ -23,19 +21,12 @@ "version-0.16.0-middlewares", "version-0.16.0-complexity" ], - "Others": [ - "version-0.16.0-emit-schema", - "version-0.16.0-browser-usage" - ] + "Others": ["version-0.16.0-emit-schema", "version-0.16.0-browser-usage"] }, "version-0.16.0-examples": { - "Examples": [ - "version-0.16.0-examples" - ] + "Examples": ["version-0.16.0-examples"] }, "version-0.16.0-others": { - "Others": [ - "version-0.16.0-faq" - ] + "Others": ["version-0.16.0-faq"] } } diff --git a/website/versioned_sidebars/version-0.17.0-sidebars.json b/website/versioned_sidebars/version-0.17.0-sidebars.json index 0dcbc674b..2449d56cf 100644 --- a/website/versioned_sidebars/version-0.17.0-sidebars.json +++ b/website/versioned_sidebars/version-0.17.0-sidebars.json @@ -1,8 +1,6 @@ { "version-0.17.0-docs": { - "Introduction": [ - "version-0.17.0-introduction" - ], + "Introduction": ["version-0.17.0-introduction"], "Beginner guides": [ "version-0.17.0-installation", "version-0.17.0-getting-started", @@ -26,19 +24,12 @@ "version-0.17.0-middlewares", "version-0.17.0-complexity" ], - "Others": [ - "version-0.17.0-emit-schema", - "version-0.17.0-browser-usage" - ] + "Others": ["version-0.17.0-emit-schema", "version-0.17.0-browser-usage"] }, "version-0.17.0-examples": { - "Examples": [ - "version-0.17.0-examples" - ] + "Examples": ["version-0.17.0-examples"] }, "version-0.17.0-others": { - "Others": [ - "version-0.17.0-faq" - ] + "Others": ["version-0.17.0-faq"] } } diff --git a/website/versioned_sidebars/version-0.17.4-sidebars.json b/website/versioned_sidebars/version-0.17.4-sidebars.json index a24e3fac0..68f2ff82b 100644 --- a/website/versioned_sidebars/version-0.17.4-sidebars.json +++ b/website/versioned_sidebars/version-0.17.4-sidebars.json @@ -1,8 +1,6 @@ { "version-0.17.4-docs": { - "Introduction": [ - "version-0.17.4-introduction" - ], + "Introduction": ["version-0.17.4-introduction"], "Beginner guides": [ "version-0.17.4-installation", "version-0.17.4-getting-started", @@ -27,19 +25,12 @@ "version-0.17.4-custom-decorators", "version-0.17.4-complexity" ], - "Others": [ - "version-0.17.4-emit-schema", - "version-0.17.4-browser-usage" - ] + "Others": ["version-0.17.4-emit-schema", "version-0.17.4-browser-usage"] }, "version-0.17.4-examples": { - "Examples": [ - "version-0.17.4-examples" - ] + "Examples": ["version-0.17.4-examples"] }, "version-0.17.4-others": { - "Others": [ - "version-0.17.4-faq" - ] + "Others": ["version-0.17.4-faq"] } } diff --git a/website/versioned_sidebars/version-1.0.0-sidebars.json b/website/versioned_sidebars/version-1.0.0-sidebars.json index 0952e2858..b3947e2cd 100644 --- a/website/versioned_sidebars/version-1.0.0-sidebars.json +++ b/website/versioned_sidebars/version-1.0.0-sidebars.json @@ -1,8 +1,6 @@ { "version-1.0.0-docs": { - "Introduction": [ - "version-1.0.0-introduction" - ], + "Introduction": ["version-1.0.0-introduction"], "Beginner guides": [ "version-1.0.0-installation", "version-1.0.0-getting-started", @@ -29,10 +27,7 @@ "version-1.0.0-custom-decorators", "version-1.0.0-complexity" ], - "Integrations": [ - "version-1.0.0-prisma", - "version-1.0.0-nestjs" - ], + "Integrations": ["version-1.0.0-prisma", "version-1.0.0-nestjs"], "Others": [ "version-1.0.0-emit-schema", "version-1.0.0-performance", @@ -40,13 +35,9 @@ ] }, "version-1.0.0-examples": { - "Examples": [ - "version-1.0.0-examples" - ] + "Examples": ["version-1.0.0-examples"] }, "version-1.0.0-others": { - "Others": [ - "version-1.0.0-faq" - ] + "Others": ["version-1.0.0-faq"] } } From 6b9a0147fc05559e1527adeae774d2716a0221f9 Mon Sep 17 00:00:00 2001 From: carlocorradini Date: Wed, 8 Feb 2023 16:46:23 +0100 Subject: [PATCH 019/226] chore(internal): fix dependencies --- package-lock.json | 2115 ++++++++++++++++++++------------------------- package.json | 56 +- 2 files changed, 964 insertions(+), 1207 deletions(-) diff --git a/package-lock.json b/package-lock.json index d2568874c..b20654d4a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,10 +35,10 @@ "@babel/preset-env": "^7.20.2", "@babel/preset-typescript": "^7.18.6", "@cspell/dict-node": "^4.0.2", - "@cspell/dict-npm": "^5.0.1", + "@cspell/dict-npm": "^5.0.3", "@cspell/dict-shell": "^1.0.1", - "@cspell/dict-typescript": "^3.0.2", - "@cspell/eslint-plugin": "^6.17.0", + "@cspell/dict-typescript": "^3.1.0", + "@cspell/eslint-plugin": "^6.22.0", "@graphql-tools/schema": "^9.0.15", "@graphql-tools/utils": "^9.2.0", "@mikro-orm/core": "^5.6.8", @@ -48,34 +48,34 @@ "@types/lodash.merge": "^4.6.7", "@types/node": "^18.11.18", "@types/shelljs": "^0.8.11", - "@typescript-eslint/eslint-plugin": "^5.46.1", - "@typescript-eslint/parser": "^5.46.1", + "@typescript-eslint/eslint-plugin": "^5.51.0", + "@typescript-eslint/parser": "^5.51.0", "apollo-server": "^3.11.1", "apollo-server-plugin-response-cache": "^3.8.1", "babel-plugin-transform-typescript-metadata": "^0.3.2", "class-validator": "^0.14.0", - "cspell": "^6.17.0", + "cspell": "^6.22.0", "del": "^7.0.0", - "eslint": "^8.30.0", + "eslint": "^8.33.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-config-airbnb-typescript": "^17.0.0", - "eslint-config-prettier": "^8.5.0", - "eslint-import-resolver-typescript": "^3.5.2", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.7", + "eslint-config-prettier": "^8.6.0", + "eslint-import-resolver-typescript": "^3.5.3", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-jest": "^27.2.1", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-tsdoc": "^0.2.17", "graphql": "^16.6.0", "graphql-redis-subscriptions": "^2.6.0", "graphql-tag": "^2.12.6", - "husky": "^8.0.2", + "husky": "^8.0.3", "ioredis": "^5.3.0", "jest": "^29.4.1", "joiful": "^3.0.2", "lint-staged": "^13.1.0", "lodash.merge": "^4.6.2", - "markdownlint": "^0.26.2", - "markdownlint-cli": "^0.32.2", + "markdownlint": "^0.27.0", + "markdownlint-cli": "^0.33.0", "mongoose": "~6.9.0", "npm-run-all": "^4.1.5", "pg": "^8.9.0", @@ -88,12 +88,12 @@ "ts-jest": "^29.0.5", "ts-node": "^10.9.1", "ts-patch": "^2.1.0", - "tsconfig-paths": "^4.1.1", + "tsconfig-paths": "^4.1.2", "typedi": "^0.10.0", "typeorm": "^0.3.11", "typeorm-typedi-extensions": "^0.4.1", "typescript": "^4.9.3", - "typescript-transform-paths": "^3.4.4" + "typescript-transform-paths": "^3.4.6" }, "engines": { "node": ">= 14.5.0" @@ -198,26 +198,6 @@ "node": ">=12" } }, - "node_modules/@apollo/gateway/node_modules/node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, "node_modules/@apollo/protobufjs": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.7.tgz", @@ -3517,53 +3497,55 @@ "dev": true }, "node_modules/@cspell/cspell-bundled-dicts": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-6.17.0.tgz", - "integrity": "sha512-BA5cg2mfESbF3Fm/fIGXgbm0LhD8HKxCCiQDRN9FLaj4c69QUgFpQ9LpzGPZEtNn2Pjl2Jn/BEXX27hgaURG9g==", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-6.22.0.tgz", + "integrity": "sha512-73oCpJzagl7mNMAMlKNLdk4DQDEKhv0IsU5Pz/BvYNWxI2KczYiyPLSk/y/bO0mNQTxFgHvKUie+GoATGB9LyA==", "dev": true, "dependencies": { - "@cspell/dict-ada": "^4.0.0", + "@cspell/dict-ada": "^4.0.1", "@cspell/dict-aws": "^3.0.0", - "@cspell/dict-bash": "^4.1.0", - "@cspell/dict-companies": "^3.0.3", - "@cspell/dict-cpp": "^4.0.0", + "@cspell/dict-bash": "^4.1.1", + "@cspell/dict-companies": "^3.0.6", + "@cspell/dict-cpp": "^4.0.1", "@cspell/dict-cryptocurrencies": "^3.0.1", "@cspell/dict-csharp": "^4.0.2", - "@cspell/dict-css": "^4.0.0", - "@cspell/dict-dart": "^2.0.0", - "@cspell/dict-django": "^4.0.0", - "@cspell/dict-docker": "^1.1.3", - "@cspell/dict-dotnet": "^4.0.0", - "@cspell/dict-elixir": "^4.0.0", - "@cspell/dict-en_us": "^4.1.0", + "@cspell/dict-css": "^4.0.2", + "@cspell/dict-dart": "^2.0.1", + "@cspell/dict-django": "^4.0.1", + "@cspell/dict-docker": "^1.1.5", + "@cspell/dict-dotnet": "^4.0.1", + "@cspell/dict-elixir": "^4.0.1", + "@cspell/dict-en_us": "^4.2.1", "@cspell/dict-en-gb": "1.1.33", "@cspell/dict-filetypes": "^3.0.0", "@cspell/dict-fonts": "^3.0.0", - "@cspell/dict-fullstack": "^3.0.0", + "@cspell/dict-fullstack": "^3.1.1", + "@cspell/dict-gaming-terms": "^1.0.4", "@cspell/dict-git": "^2.0.0", - "@cspell/dict-golang": "^5.0.0", - "@cspell/dict-haskell": "^4.0.0", - "@cspell/dict-html": "^4.0.1", + "@cspell/dict-golang": "^5.0.1", + "@cspell/dict-haskell": "^4.0.1", + "@cspell/dict-html": "^4.0.2", "@cspell/dict-html-symbol-entities": "^4.0.0", - "@cspell/dict-java": "^5.0.2", - "@cspell/dict-latex": "^3.0.0", + "@cspell/dict-java": "^5.0.4", + "@cspell/dict-k8s": "^1.0.0", + "@cspell/dict-latex": "^3.1.0", "@cspell/dict-lorem-ipsum": "^3.0.0", - "@cspell/dict-lua": "^3.0.0", - "@cspell/dict-node": "^4.0.1", - "@cspell/dict-npm": "^5.0.0", - "@cspell/dict-php": "^3.0.3", - "@cspell/dict-powershell": "^3.0.0", - "@cspell/dict-public-licenses": "^2.0.0", - "@cspell/dict-python": "^4.0.0", - "@cspell/dict-r": "^2.0.0", - "@cspell/dict-ruby": "^3.0.0", - "@cspell/dict-rust": "^3.0.0", - "@cspell/dict-scala": "^3.0.0", - "@cspell/dict-software-terms": "^3.0.5", - "@cspell/dict-sql": "^2.0.0", - "@cspell/dict-svelte": "^1.0.0", - "@cspell/dict-swift": "^2.0.0", - "@cspell/dict-typescript": "^3.0.1", + "@cspell/dict-lua": "^4.0.0", + "@cspell/dict-node": "^4.0.2", + "@cspell/dict-npm": "^5.0.3", + "@cspell/dict-php": "^3.0.4", + "@cspell/dict-powershell": "^4.0.0", + "@cspell/dict-public-licenses": "^2.0.1", + "@cspell/dict-python": "^4.0.1", + "@cspell/dict-r": "^2.0.1", + "@cspell/dict-ruby": "^4.0.1", + "@cspell/dict-rust": "^4.0.0", + "@cspell/dict-scala": "^4.0.0", + "@cspell/dict-software-terms": "^3.1.1", + "@cspell/dict-sql": "^2.0.1", + "@cspell/dict-svelte": "^1.0.2", + "@cspell/dict-swift": "^2.0.1", + "@cspell/dict-typescript": "^3.1.0", "@cspell/dict-vue": "^3.0.0" }, "engines": { @@ -3571,27 +3553,27 @@ } }, "node_modules/@cspell/cspell-pipe": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-6.17.0.tgz", - "integrity": "sha512-/VlX1cQtVBK9PFvSsaYVzV59i/2de9wrMSYDk+oGLXQzGBf5+5rPDZMJJ+QQkaexMdxoOXjCYTEXnNkPoVFyFA==", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-6.22.0.tgz", + "integrity": "sha512-azitnOyh2lIN2brJBQE7NSURUOC7P911BuGf5cPb6cEFLSBSkPfuet5yTjgVSd8oq2kgv/irEz4BbEMjAYL4ag==", "dev": true, "engines": { "node": ">=14" } }, "node_modules/@cspell/cspell-service-bus": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-6.17.0.tgz", - "integrity": "sha512-HrzR23aeC/ykSOJvUr+uX6Dv7JLc5meNABLxauiC9jexOXFB3DKmo+DvJFerRDOGz6eYSwM0VXAR62OCHrWK/Q==", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-6.22.0.tgz", + "integrity": "sha512-zskChnBYBuInkgp2wUF5xvOA20YF3DMovPHUaRByahB2DQwAZXGLnYxCBM70+xkIsOURGcjpvpyzry7bPMBXiw==", "dev": true, "engines": { "node": ">=14" } }, "node_modules/@cspell/cspell-types": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-6.17.0.tgz", - "integrity": "sha512-4FStDRqZVEP6oYtXqj1wUlF02EC5PN7giJ5f4YPeChwXyQBdZWUPQgEIKn0K9GIgKDMlKRo9tloAHVgtaZ+zOA==", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-6.22.0.tgz", + "integrity": "sha512-AcvI7QkjpGL+CHz3WJTXn/A8OigwhjQ5eBZ09t+f42am5sjygcBR8n77wWjpKcY853XkOpqP4qIvXcZJzSUzUw==", "dev": true, "engines": { "node": ">=14" @@ -3616,9 +3598,9 @@ "dev": true }, "node_modules/@cspell/dict-companies": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.0.4.tgz", - "integrity": "sha512-cO06nle+9dQGrjUOvP/zRAEV0xT3jKM8dHIXWhnd70IcZQnRdka6vxjW+KGaoXk3ABY5uMCymRmuaOZtLd1lFQ==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.0.6.tgz", + "integrity": "sha512-6rWuwZxPisn/MP41DzBtChVgbz9b6HSjBH3X0s3k7zlBaxrw6xFAZGKH9KGFSPTiV+WD9j+IIn2/ITXERGjNLA==", "dev": true }, "node_modules/@cspell/dict-cpp": { @@ -3640,9 +3622,9 @@ "dev": true }, "node_modules/@cspell/dict-css": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-css/-/dict-css-4.0.1.tgz", - "integrity": "sha512-jxsncdeiN/wkZGqU8iLtn24n3e0Fwugj6T48rjWUItn/i3C9j2W7RXOVqd7ZIeWeV8ibyq0WWiwA8Ajg6XaKpA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-css/-/dict-css-4.0.2.tgz", + "integrity": "sha512-0NxBcB36b1Jy23Tf5YLrD8+PvBhE3FgBci3rwtw2DEqVigEX6uodecfoh9I4kcU8PZlVsDujrUfwgzYCWh/feQ==", "dev": true }, "node_modules/@cspell/dict-dart": { @@ -3658,9 +3640,9 @@ "dev": true }, "node_modules/@cspell/dict-docker": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@cspell/dict-docker/-/dict-docker-1.1.4.tgz", - "integrity": "sha512-DnsDzv3e5aPZ/ciu7weoD85SYErl6ChKtphhyULcsSBFexucAAO54ZWx4fRCEwNv/T29KlZ7P5sh4BnSYokCRQ==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@cspell/dict-docker/-/dict-docker-1.1.5.tgz", + "integrity": "sha512-SNEohOScQ+0+y9dp/jKTx60OOJQrf5es5BJ32gh5Ck3jKXNo4wd9KLgPOmQMUpencb5SGjrBsC4rr1fyfCwytg==", "dev": true }, "node_modules/@cspell/dict-dotnet": { @@ -3676,9 +3658,9 @@ "dev": true }, "node_modules/@cspell/dict-en_us": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.1.1.tgz", - "integrity": "sha512-I7pgGfYNSOnyNtDWs89B5jY0lZsSEy4ORwZHzLK55MaOq8YaSs+HyXKQsCX/Ce5ktCV03M3ObB01xE4OKoWPuQ==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.2.2.tgz", + "integrity": "sha512-NSlvE6bIkgRRlBkfltiwREu2NYT4PrLmpdi9zSeWuUMlGB+0wUGAal3B7zKC1pirhueH20W6to0lPdnEWaqa8Q==", "dev": true }, "node_modules/@cspell/dict-en-gb": { @@ -3700,9 +3682,15 @@ "dev": true }, "node_modules/@cspell/dict-fullstack": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-fullstack/-/dict-fullstack-3.0.0.tgz", - "integrity": "sha512-BMQRTaeReLufjMwgWqqwPdrXQ7jkVGTv7/YvOLsHFZvcAP3eM7WqX+rvdXckLhJmuuzbceFRDKs5F/9Ig2x/tQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-fullstack/-/dict-fullstack-3.1.1.tgz", + "integrity": "sha512-w2n3QvqEiufmvlBuNduury/pySrhfOcWFfCvvpUXTJvWbfRVGkt6ANZuTuy3/7Z2q4GYUqsd139te4Q8m0jRHQ==", + "dev": true + }, + "node_modules/@cspell/dict-gaming-terms": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@cspell/dict-gaming-terms/-/dict-gaming-terms-1.0.4.tgz", + "integrity": "sha512-hbDduNXlk4AOY0wFxcDMWBPpm34rpqJBeqaySeoUH70eKxpxm+dvjpoRLJgyu0TmymEICCQSl6lAHTHSDiWKZg==", "dev": true }, "node_modules/@cspell/dict-git": { @@ -3736,15 +3724,21 @@ "dev": true }, "node_modules/@cspell/dict-java": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@cspell/dict-java/-/dict-java-5.0.3.tgz", - "integrity": "sha512-zQYPZxfso0W4QigsX5zX4lAZZYIrBcnHbrZkHplgmpDwR34GWBg2GypPMkDbli5Oogij/R7o4MaoefBQzcNIPA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@cspell/dict-java/-/dict-java-5.0.4.tgz", + "integrity": "sha512-43VrLOLcBxavv6eyL4BpsnHrhVOgyYYeJqQRJG5XKObcpWy3+Lpadj58CfTVOr7M/Je3pUpd4tvsUhf/lWXMVA==", + "dev": true + }, + "node_modules/@cspell/dict-k8s": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-k8s/-/dict-k8s-1.0.0.tgz", + "integrity": "sha512-XqIql+nd2DiuPuL+qPc24bN/L1mZY75kAYcuMBMW5iYgBoivkiVOg7br/aofX3ApajvHDln6tNkPZhmhsOg6Ww==", "dev": true }, "node_modules/@cspell/dict-latex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-latex/-/dict-latex-3.0.0.tgz", - "integrity": "sha512-QsRWj+Jll4ueVbce8ofKa743oQ2exmbVNZN70MaMbmu8PSbjW2+Rj3OdExVStesANMj7qc20inS/TgPr8DrInQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-latex/-/dict-latex-3.1.0.tgz", + "integrity": "sha512-XD5S3FY0DrYiun2vm/KKOkeaD30LXp9v5EzVTVQvmxqQrQh0HvOT3TFD7lgKbyzZaG7E+l3wS94uwwm80cOmuw==", "dev": true }, "node_modules/@cspell/dict-lorem-ipsum": { @@ -3754,9 +3748,9 @@ "dev": true }, "node_modules/@cspell/dict-lua": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-lua/-/dict-lua-3.0.0.tgz", - "integrity": "sha512-WOhSCgS5wMxkGQJ8siB90iTB9ElquJB7FeqYSbJqqs6cUwH8G7MM/CEDPL6h7vCo0+v3GuxQ8yKWDSUcUhz9Lg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-lua/-/dict-lua-4.0.0.tgz", + "integrity": "sha512-aQPyc/nP67tOlW6ACpio9Q5mZ/Z1hqwXC5rt5tkoQ2GsnCqeyIXDrX0CN+RGK53Lj4P02Jz/dPxs/nX8eDUFsw==", "dev": true }, "node_modules/@cspell/dict-node": { @@ -3766,9 +3760,9 @@ "dev": true }, "node_modules/@cspell/dict-npm": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.0.1.tgz", - "integrity": "sha512-ynZ37WvOhl9nX4sq1CK6pAKeWkZXgJVv30ndOvnURJk0gtUAIjJ8rns2uHIMMhlsn1lsnaKlNlUuOtkUsd9qLw==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.0.3.tgz", + "integrity": "sha512-fEX67zIJISbS3gXVk/y/ZUvDIVtjc/CYJK7Mz0iTVrmlCKnLiD41lApe8v4g/12eE7hLfx/sfCXDrUWyzXVq1A==", "dev": true }, "node_modules/@cspell/dict-php": { @@ -3778,9 +3772,9 @@ "dev": true }, "node_modules/@cspell/dict-powershell": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-3.0.0.tgz", - "integrity": "sha512-pkztY9Ak4oc33q+Qxcn9/CTOKo4N8YIRRE6v67WwQOncA5QIJfcOPUrjfR3Z8SpzElXhu3s9qtWWSqbCy6qmcA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-4.0.0.tgz", + "integrity": "sha512-1Lbm+3+Sx63atl4MM3lPeCUc90JjRyKP9+exmy2cQimXNju9ngtuDWwapHUnhQ47qnzrsBY4ydm36KCfJarXJA==", "dev": true }, "node_modules/@cspell/dict-public-licenses": { @@ -3802,21 +3796,21 @@ "dev": true }, "node_modules/@cspell/dict-ruby": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-ruby/-/dict-ruby-3.0.0.tgz", - "integrity": "sha512-sA98T8Y1Pmq3RStVkO14E8vTWkq6JUn8c8PldiMyYgV0yfQgwhQfFAzlSfF3Gg2B0VkIdqt2et2SPN7f9wp7fQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-ruby/-/dict-ruby-4.0.1.tgz", + "integrity": "sha512-p9nLDsffPadPLLwdLQj4Gk0IsZ64iCSxnSCaeFXslFiD17FtJVh1YMHP7KE9M73u22Hprq+a1Yw25/xp6Tkt3g==", "dev": true }, "node_modules/@cspell/dict-rust": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-3.0.0.tgz", - "integrity": "sha512-L1T1IBsYJZVDmfOGAbVLcpc6arWxRRCSJYvHSwEDBGrNuMyJ4jx/NvBEz5crcKf4vVKgwVlXgzQlJJZ8AVxU9w==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-4.0.0.tgz", + "integrity": "sha512-nzJsgLR6/JXtM41Cr5FG89r8sBKW6aFjvCqPxeaBJYLAL0JuvsVUcd16rW2lTsdbx5J8yUQDD7mgCZFk6merJQ==", "dev": true }, "node_modules/@cspell/dict-scala": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-scala/-/dict-scala-3.0.0.tgz", - "integrity": "sha512-sIiCQDIMMnNns/fzD61z5npbh5pypaKq07Orqe0+eRfdQpika8iRSGUGFHVbtdd1JzB1DyTCV2e8OwdaQiXqJQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-scala/-/dict-scala-4.0.0.tgz", + "integrity": "sha512-ugdjt66/Ah34yF3u3DUNjCHXnBqIuxUUfdeBobbGxfm29CNgidrISV1NUh+xi8tPynMzSTpGbBiArFBH6on5XQ==", "dev": true }, "node_modules/@cspell/dict-shell": { @@ -3826,9 +3820,9 @@ "dev": true }, "node_modules/@cspell/dict-software-terms": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.0.6.tgz", - "integrity": "sha512-Zf7RrgLtdwDgQqHjS2OaL88haYZ2sBEBZX4ARmLTpJkS4lHM0nKRsPf7QKi9/AhrH1CGjOwgyx9Q/aVC/MdggA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.1.2.tgz", + "integrity": "sha512-p19elLnu61nl8WJ2IJHANtJqkt5y0dsBb3iApcd5Z+s4uadRBpi29vEeFU+NWoEU0F6vp1mYGCN3sOtC0g/hIA==", "dev": true }, "node_modules/@cspell/dict-sql": { @@ -3838,9 +3832,9 @@ "dev": true }, "node_modules/@cspell/dict-svelte": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-svelte/-/dict-svelte-1.0.1.tgz", - "integrity": "sha512-CYnEftTY2cFAy+Ag8AN+OxUtqhyhPfT7yX6Cxf701RSzLCllWDHZ4wlCii+uYqkscZUZp1Ko2QY+t3SyOqlG0g==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-svelte/-/dict-svelte-1.0.2.tgz", + "integrity": "sha512-rPJmnn/GsDs0btNvrRBciOhngKV98yZ9SHmg8qI6HLS8hZKvcXc0LMsf9LLuMK1TmS2+WQFAan6qeqg6bBxL2Q==", "dev": true }, "node_modules/@cspell/dict-swift": { @@ -3850,9 +3844,9 @@ "dev": true }, "node_modules/@cspell/dict-typescript": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-3.0.2.tgz", - "integrity": "sha512-+xg/Lan+ObJbmGXuAN1RI84eUy+P6ZzFrWO1JoaU9zHXs62IHetkAGrUXfc+rM3m4O6lpMKawHjokFWqkFa4Vw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-3.1.0.tgz", + "integrity": "sha512-4hdLlQMOYrUbGfJg2cWnbsBUevObwgL76TLVC0rwnrkSwzOxAxiGaG39VtRMvgAAe2lX6L+jka3fy0MmxzFOHw==", "dev": true }, "node_modules/@cspell/dict-vue": { @@ -3861,22 +3855,36 @@ "integrity": "sha512-niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A==", "dev": true }, + "node_modules/@cspell/dynamic-import": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-6.22.0.tgz", + "integrity": "sha512-Dkravk0nQklyr13pClBXjg/Ku4o2jc6vdVp71L3bfXCQh8StdWP/kyW6O6qjXUsWwGAuRl8YuamRLePlVV8q3A==", + "dev": true, + "dependencies": { + "import-meta-resolve": "^2.2.1" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/@cspell/eslint-plugin": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@cspell/eslint-plugin/-/eslint-plugin-6.17.0.tgz", - "integrity": "sha512-wftqhuSolXaJ6SSNH5aYGkdJRrZzcJArwwYU7ueYg2NJMuwAXLEQiEzorYMvIjZCdh/T3/DgweGZoxcUu1y+3A==", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/@cspell/eslint-plugin/-/eslint-plugin-6.22.0.tgz", + "integrity": "sha512-Zee90ynGRF7sJPPozSamD73OvJq2mQgoTj+iO1r6JA61oJEve+zZ/139FCA6fJfzNHiEty7EwFgDeuGv+NQ28Q==", "dev": true, "dependencies": { - "cspell-lib": "6.17.0" + "cspell-lib": "6.22.0", + "estree-walker": "^2.0.2", + "synckit": "^0.8.5" }, "engines": { "node": ">=14" } }, "node_modules/@cspell/strong-weak-map": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-6.17.0.tgz", - "integrity": "sha512-fRghm6eoUEH7Uz57t0SEKJNm4lqODF2/DRiLd2ek7QkzUHKrCetre/5UrvdE78GIUyl0+8GLx9iFwo/XFa6dDA==", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-6.22.0.tgz", + "integrity": "sha512-Krfq5P+s9R1qH3hvhMC40SsU49v6/qGvvPP1kGwToAHEDDGVyRA9xgz/RswDThgEzpzwMuOGzjZlQ3P3luHnug==", "dev": true, "engines": { "node": ">=14.6" @@ -3905,9 +3913,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.0.tgz", - "integrity": "sha512-7yfvXy6MWLgWSFsLhz5yH3iQ52St8cdUY6FoGieKkRDVxuxmrNuUetIuu6cmjNWwniUHiWXjxCr5tTXDrbYS5A==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", + "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -3951,9 +3959,9 @@ } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.19.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", - "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -4153,15 +4161,6 @@ "node": ">=8" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", @@ -4817,18 +4816,6 @@ "url": "https://opencollective.com/unts" } }, - "node_modules/@pkgr/utils/node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", @@ -5304,15 +5291,16 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.46.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.46.1.tgz", - "integrity": "sha512-YpzNv3aayRBwjs4J3oz65eVLXc9xx0PDbIRisHj+dYhvBn02MjYOD96P8YGiWEIFBrojaUjxvkaUpakD82phsA==", + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.51.0.tgz", + "integrity": "sha512-wcAwhEWm1RgNd7dxD/o+nnLW8oH+6RK1OGnmbmkj/GGoDPV1WWMVP0FXYQBivKHdwM1pwii3bt//RC62EriIUQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.46.1", - "@typescript-eslint/type-utils": "5.46.1", - "@typescript-eslint/utils": "5.46.1", + "@typescript-eslint/scope-manager": "5.51.0", + "@typescript-eslint/type-utils": "5.51.0", + "@typescript-eslint/utils": "5.51.0", "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", "regexpp": "^3.2.0", @@ -5359,36 +5347,15 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "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" - } - }, "node_modules/@typescript-eslint/parser": { - "version": "5.46.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.46.1.tgz", - "integrity": "sha512-RelQ5cGypPh4ySAtfIMBzBGyrNerQcmfA1oJvPj5f+H4jI59rl9xxpn4bonC0tQvUKOEN7eGBFWxFLK3Xepneg==", + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.51.0.tgz", + "integrity": "sha512-fEV0R9gGmfpDeRzJXn+fGQKcl0inIeYobmmUWijZh9zA7bxJ8clPhV9up2ZQzATxAiFAECqPQyMDB4o4B81AaA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.46.1", - "@typescript-eslint/types": "5.46.1", - "@typescript-eslint/typescript-estree": "5.46.1", + "@typescript-eslint/scope-manager": "5.51.0", + "@typescript-eslint/types": "5.51.0", + "@typescript-eslint/typescript-estree": "5.51.0", "debug": "^4.3.4" }, "engines": { @@ -5431,13 +5398,13 @@ "dev": true }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.46.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.46.1.tgz", - "integrity": "sha512-iOChVivo4jpwUdrJZyXSMrEIM/PvsbbDOX1y3UCKjSgWn+W89skxWaYXACQfxmIGhPVpRWK/VWPYc+bad6smIA==", + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.51.0.tgz", + "integrity": "sha512-gNpxRdlx5qw3yaHA0SFuTjW4rxeYhpHxt491PEcKF8Z6zpq0kMhe0Tolxt0qjlojS+/wArSDlj/LtE69xUJphQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.46.1", - "@typescript-eslint/visitor-keys": "5.46.1" + "@typescript-eslint/types": "5.51.0", + "@typescript-eslint/visitor-keys": "5.51.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -5448,13 +5415,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.46.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.46.1.tgz", - "integrity": "sha512-V/zMyfI+jDmL1ADxfDxjZ0EMbtiVqj8LUGPAGyBkXXStWmCUErMpW873zEHsyguWCuq2iN4BrlWUkmuVj84yng==", + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.51.0.tgz", + "integrity": "sha512-QHC5KKyfV8sNSyHqfNa0UbTbJ6caB8uhcx2hYcWVvJAZYJRBo5HyyZfzMdRx8nvS+GyMg56fugMzzWnojREuQQ==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.46.1", - "@typescript-eslint/utils": "5.46.1", + "@typescript-eslint/typescript-estree": "5.51.0", + "@typescript-eslint/utils": "5.51.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -5497,31 +5464,10 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/@typescript-eslint/type-utils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@typescript-eslint/type-utils/node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "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" - } - }, "node_modules/@typescript-eslint/types": { - "version": "5.46.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.46.1.tgz", - "integrity": "sha512-Z5pvlCaZgU+93ryiYUwGwLl9AQVB/PQ1TsJ9NZ/gHzZjN7g9IAn6RSDkpCV8hqTwAiaj6fmCcKSQeBPlIpW28w==", + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.51.0.tgz", + "integrity": "sha512-SqOn0ANn/v6hFn0kjvLwiDi4AzR++CBZz0NV5AnusT2/3y32jdc0G4woXPWHCumWtUXZKPAS27/9vziSsC9jnw==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -5532,13 +5478,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.46.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.46.1.tgz", - "integrity": "sha512-j9W4t67QiNp90kh5Nbr1w92wzt+toiIsaVPnEblB2Ih2U9fqBTyqV9T3pYWZBRt6QoMh/zVWP59EpuCjc4VRBg==", + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.51.0.tgz", + "integrity": "sha512-TSkNupHvNRkoH9FMA3w7TazVFcBPveAAmb7Sz+kArY6sLT86PA5Vx80cKlYmd8m3Ha2SwofM1KwraF24lM9FvA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.46.1", - "@typescript-eslint/visitor-keys": "5.46.1", + "@typescript-eslint/types": "5.51.0", + "@typescript-eslint/visitor-keys": "5.51.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -5575,56 +5521,23 @@ } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@typescript-eslint/typescript-estree/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "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" - } - }, "node_modules/@typescript-eslint/utils": { - "version": "5.46.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.46.1.tgz", - "integrity": "sha512-RBdBAGv3oEpFojaCYT4Ghn4775pdjvwfDOfQ2P6qzNVgQOVrnSPe5/Pb88kv7xzYQjoio0eKHKB9GJ16ieSxvA==", + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.51.0.tgz", + "integrity": "sha512-76qs+5KWcaatmwtwsDJvBk4H76RJQBFe+Gext0EfJdC3Vd2kpY2Pf//OHHzHp84Ciw0/rYoGTDnIAr3uWhhJYw==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.46.1", - "@typescript-eslint/types": "5.46.1", - "@typescript-eslint/typescript-estree": "5.46.1", + "@typescript-eslint/scope-manager": "5.51.0", + "@typescript-eslint/types": "5.51.0", + "@typescript-eslint/typescript-estree": "5.51.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0", "semver": "^7.3.7" @@ -5641,12 +5554,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.46.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.46.1.tgz", - "integrity": "sha512-jczZ9noovXwy59KjRTk1OftT78pwygdcmCuBf8yMoWt/8O8l+6x2LSEze0E4TeepXK4MezW3zGSyoDRZK7Y9cg==", + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.51.0.tgz", + "integrity": "sha512-Oh2+eTdjHjOFjKA27sxESlA87YPSOJafGCR0md5oeMdh1ZcCfAGCIOL216uTBAkAIptvLIfKQhl7lHxMJet4GQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.46.1", + "@typescript-eslint/types": "5.51.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -6117,26 +6030,6 @@ "node": ">=12.0" } }, - "node_modules/apollo-server-env/node_modules/node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, "node_modules/apollo-server-errors": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz", @@ -6361,6 +6254,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", @@ -6924,27 +6835,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/clear-module/node_modules/parent-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-2.0.0.tgz", - "integrity": "sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==", - "dev": true, - "dependencies": { - "callsites": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/clear-module/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -7316,6 +7206,39 @@ "node": ">= 0.10" } }, + "node_modules/cosmiconfig": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", + "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", + "dev": true, + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/cosmiconfig/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", @@ -7346,26 +7269,26 @@ } }, "node_modules/cspell": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/cspell/-/cspell-6.17.0.tgz", - "integrity": "sha512-R1TXu1p2vON6rHXxZAUPbdf+v+ckPhWiEb3apq2PyxLSjzMiZDm2ThIwRcsQaMLLZyFOD+J3SHj0lZi1Qoaa8w==", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/cspell/-/cspell-6.22.0.tgz", + "integrity": "sha512-cyF2xyV5nqXw3y5f/r/XxEF+3aj6dxwDLIRW1SYDZ8gV1I9pZwupgM7+jwmqes0CNf/mbAbWbhNQrh2MP2NsfA==", "dev": true, "dependencies": { - "@cspell/cspell-pipe": "6.17.0", + "@cspell/cspell-pipe": "6.22.0", + "@cspell/dynamic-import": "6.22.0", "chalk": "^4.1.2", - "commander": "^9.4.1", - "cspell-gitignore": "6.17.0", - "cspell-glob": "6.17.0", - "cspell-lib": "6.17.0", + "commander": "^10.0.0", + "cspell-gitignore": "6.22.0", + "cspell-glob": "6.22.0", + "cspell-lib": "6.22.0", + "fast-glob": "^3.2.12", "fast-json-stable-stringify": "^2.1.0", "file-entry-cache": "^6.0.1", - "fs-extra": "^10.1.0", "get-stdin": "^8.0.0", - "glob": "^8.0.3", "imurmurhash": "^0.1.4", "semver": "^7.3.8", "strip-ansi": "^6.0.1", - "vscode-uri": "^3.0.6" + "vscode-uri": "^3.0.7" }, "bin": { "cspell": "bin.js" @@ -7378,28 +7301,28 @@ } }, "node_modules/cspell-dictionary": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-6.17.0.tgz", - "integrity": "sha512-jUb/kIR2glYliRem11kCu7gaXUcHKp8L2G73LmzIULx+UKRgTa/100FXqm5lZUWnCaIznMmaA2QtutP+xYy5AQ==", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-6.22.0.tgz", + "integrity": "sha512-O74nn6wwNAxhbNoIceUCxS4I/1L4JLEGlfICBXR4OxSR6S2A5JK5Qkq8fL0h660Lm3C99J1JLLJDUrny1Sk5Zg==", "dev": true, "dependencies": { - "@cspell/cspell-pipe": "6.17.0", - "@cspell/cspell-types": "6.17.0", - "cspell-trie-lib": "6.17.0", + "@cspell/cspell-pipe": "6.22.0", + "@cspell/cspell-types": "6.22.0", + "cspell-trie-lib": "6.22.0", "fast-equals": "^4.0.3", - "gensequence": "^4.0.2" + "gensequence": "^4.0.3" }, "engines": { "node": ">=14" } }, "node_modules/cspell-gitignore": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-6.17.0.tgz", - "integrity": "sha512-SDyPv6LqBebvoTKFP+ewh51gvmv1z8JDg7llumUFH2u1WoiMZBLLOL2pAa9UM0f6eEzBC1iS6nWQ+20VJx2yQA==", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-6.22.0.tgz", + "integrity": "sha512-iSc50FdY5tKXH950J56BhI6zLBE4O7wHOwmzzkb/tiAeni5krTyNdfxiJNKEvk/0kLct8zve9GHFr13iV0tdhQ==", "dev": true, "dependencies": { - "cspell-glob": "6.17.0", + "cspell-glob": "6.22.0", "find-up": "^5.0.0" }, "bin": { @@ -7456,9 +7379,9 @@ } }, "node_modules/cspell-glob": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-6.17.0.tgz", - "integrity": "sha512-iKz2CvUU1HXuNJfxYRwSQFck3pCl9EhTx2qIR0lKf4gccCR89p44qxIR98nTbX1OF89lhfH6sUHtzkJ3nPWh+A==", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-6.22.0.tgz", + "integrity": "sha512-YVQ5Sw3xt8xTueiuLH1nadMwQzIqDok6BSrTQZbrD8CPnaDanyRqyxJUzIJVd3on4IyQ4ZNnlUXZURaXFX2cTQ==", "dev": true, "dependencies": { "micromatch": "^4.0.5" @@ -7468,13 +7391,13 @@ } }, "node_modules/cspell-grammar": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-6.17.0.tgz", - "integrity": "sha512-3B9QmKWOjAPzLYqesLP2niIbo6Yvb4rodjIwFXUvL3vmMZF4c9HFU/JVTTerLxrwh3DH8u6Mac52RzUurOJ15Q==", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-6.22.0.tgz", + "integrity": "sha512-52DvVkkSoge91+Z7VgeMYUDaMafdhYGwQleW7BTW3GK+T9y9zl7OTwjxhfqkZ+CG8ImyBsIDyrEsSLqQ1Lepuw==", "dev": true, "dependencies": { - "@cspell/cspell-pipe": "6.17.0", - "@cspell/cspell-types": "6.17.0" + "@cspell/cspell-pipe": "6.22.0", + "@cspell/cspell-types": "6.22.0" }, "bin": { "cspell-grammar": "bin.js" @@ -7484,92 +7407,50 @@ } }, "node_modules/cspell-io": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-6.17.0.tgz", - "integrity": "sha512-cofZlvKzXP3QytGM6OlREQIXLFcSdEKOFubSVHkRvAVX3IqeQnKo4oVF85C6McjwXTrJ1OH+SDP0vcpn6mKqTg==", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-6.22.0.tgz", + "integrity": "sha512-k3rsbDm2nqXpcW+/K/URJ7AQshmZ2CNqaUQ4m0nDNUoe/C9ITj13ROWXQYiA3i4Z4icVIN6t/jOmAKmKI6UTUA==", "dev": true, "dependencies": { - "@cspell/cspell-service-bus": "6.17.0", - "node-fetch": "^2.6.7" + "@cspell/cspell-service-bus": "6.22.0", + "node-fetch": "^2.6.9" }, "engines": { "node": ">=14" } }, - "node_modules/cspell-io/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "node_modules/cspell-lib": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-6.22.0.tgz", + "integrity": "sha512-+XWp2GBmZeUiacLPH+skpiDMpX+xp7Pp9I306NQ2FqnxmM05aqIxh0q7fQaeSNS4HV9x8z6noYPjoo01tbaDsg==", "dev": true, "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/cspell-lib": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-6.17.0.tgz", - "integrity": "sha512-oZNkm0UhRa4nkoYPij23z7cbVXFPVHs7SdGC6IAVc71uz44nLNeC3e8+UnTErOU7nlROvjp9k3G90DEwej1TqQ==", - "dev": true, - "dependencies": { - "@cspell/cspell-bundled-dicts": "6.17.0", - "@cspell/cspell-pipe": "6.17.0", - "@cspell/cspell-types": "6.17.0", - "@cspell/strong-weak-map": "6.17.0", - "clear-module": "^4.1.2", - "comment-json": "^4.2.3", - "configstore": "^5.0.1", - "cosmiconfig": "^8.0.0", - "cspell-dictionary": "6.17.0", - "cspell-glob": "6.17.0", - "cspell-grammar": "6.17.0", - "cspell-io": "6.17.0", - "cspell-trie-lib": "6.17.0", - "fast-equals": "^4.0.3", - "find-up": "^5.0.0", - "fs-extra": "^10.1.0", - "gensequence": "^4.0.2", - "import-fresh": "^3.3.0", - "resolve-from": "^5.0.0", - "resolve-global": "^1.0.0", - "vscode-languageserver-textdocument": "^1.0.7", - "vscode-uri": "^3.0.6" + "@cspell/cspell-bundled-dicts": "6.22.0", + "@cspell/cspell-pipe": "6.22.0", + "@cspell/cspell-types": "6.22.0", + "@cspell/strong-weak-map": "6.22.0", + "clear-module": "^4.1.2", + "comment-json": "^4.2.3", + "configstore": "^5.0.1", + "cosmiconfig": "^8.0.0", + "cspell-dictionary": "6.22.0", + "cspell-glob": "6.22.0", + "cspell-grammar": "6.22.0", + "cspell-io": "6.22.0", + "cspell-trie-lib": "6.22.0", + "fast-equals": "^4.0.3", + "find-up": "^5.0.0", + "gensequence": "^4.0.3", + "import-fresh": "^3.3.0", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0", + "vscode-languageserver-textdocument": "^1.0.8", + "vscode-uri": "^3.0.7" }, "engines": { "node": ">=14.6" } }, - "node_modules/cspell-lib/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/cspell-lib/node_modules/cosmiconfig": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", - "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", - "dev": true, - "dependencies": { - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - } - }, "node_modules/cspell-lib/node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -7586,32 +7467,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cspell-lib/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/cspell-lib/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/cspell-lib/node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -7642,56 +7497,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cspell-lib/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/cspell-trie-lib": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-6.17.0.tgz", - "integrity": "sha512-hmyZHhemWYLjjEDItAhgAF0tuL2iiQg+5PzUmELKIBSWEsmFdfxh1xWCmo1q0+vzVML+0Ms2cspiGyS9y/CF7A==", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-6.22.0.tgz", + "integrity": "sha512-DFil6sYyjVbS5ZSiz4ZSrcZ7+601S65/T7snoHINHsRSgcznTJrgpYR0I0ZYHm8P2heT3RBpWwaAcbD5bbyw9Q==", "dev": true, "dependencies": { - "@cspell/cspell-pipe": "6.17.0", - "@cspell/cspell-types": "6.17.0", - "fs-extra": "^10.1.0", - "gensequence": "^4.0.2" + "@cspell/cspell-pipe": "6.22.0", + "@cspell/cspell-types": "6.22.0", + "gensequence": "^4.0.3" }, "engines": { "node": ">=14" } }, - "node_modules/cspell-trie-lib/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "node_modules/cspell/node_modules/commander": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz", + "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==", "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, "engines": { - "node": ">=12" - } - }, - "node_modules/cspell/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" + "node": ">=14" } }, "node_modules/cssfilter": { @@ -7866,18 +7692,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/del/node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/del/node_modules/is-path-inside": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", @@ -8005,15 +7819,6 @@ "node": ">=8" } }, - "node_modules/dot-prop/node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/dotenv": { "version": "16.0.3", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", @@ -8241,12 +8046,12 @@ } }, "node_modules/eslint": { - "version": "8.30.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.30.0.tgz", - "integrity": "sha512-MGADB39QqYuzEGov+F/qb18r4i7DohCDOfatHaxI2iGlPuC65bwG2gxgO+7DkyL38dRFaRH7RaRAgU6JKL9rMQ==", + "version": "8.33.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz", + "integrity": "sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.4.0", + "@eslint/eslintrc": "^1.4.1", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -8340,9 +8145,9 @@ } }, "node_modules/eslint-config-prettier": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", - "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz", + "integrity": "sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==", "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" @@ -8352,13 +8157,14 @@ } }, "node_modules/eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", + "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", "dev": true, "dependencies": { "debug": "^3.2.7", - "resolve": "^1.20.0" + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" } }, "node_modules/eslint-import-resolver-node/node_modules/debug": { @@ -8377,9 +8183,9 @@ "dev": true }, "node_modules/eslint-import-resolver-typescript": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.2.tgz", - "integrity": "sha512-zX4ebnnyXiykjhcBvKIf5TNvt8K7yX6bllTRZ14MiurKPjDpCAZujlszTdB8pcNXhZcOf+god4s9SjQa5GnytQ==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.3.tgz", + "integrity": "sha512-njRcKYBc3isE42LaTcJNVANR3R99H9bAxBDMNDr2W7yq5gYPxbU3MkdhsQukxZ/Xg9C2vcyLlDsbKfRDg0QvCQ==", "dev": true, "dependencies": { "debug": "^4.3.4", @@ -8437,18 +8243,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-import-resolver-typescript/node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/eslint-import-resolver-typescript/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -8500,23 +8294,25 @@ "dev": true }, "node_modules/eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "version": "2.27.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", + "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", "dev": true, "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", "has": "^1.0.3", - "is-core-module": "^2.8.1", + "is-core-module": "^2.11.0", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", "tsconfig-paths": "^3.14.1" }, "engines": { @@ -8526,6 +8322,15 @@ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, "node_modules/eslint-plugin-import/node_modules/doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", @@ -8538,18 +8343,6 @@ "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-import/node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/eslint-plugin-import/node_modules/json5": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", @@ -8562,6 +8355,21 @@ "json5": "lib/cli.js" } }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/eslint-plugin-import/node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -8584,9 +8392,9 @@ } }, "node_modules/eslint-plugin-jest": { - "version": "27.1.7", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.1.7.tgz", - "integrity": "sha512-0QVzf+og4YI1Qr3UoprkqqhezAZjFffdi62b0IurkCXMqPtRW84/UT4CKsYT80h/D82LA9avjO/80Ou1LdgbaQ==", + "version": "27.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.2.1.tgz", + "integrity": "sha512-l067Uxx7ZT8cO9NJuf+eJHvt6bqJyz2Z29wykyEdz/OtmcELQl2MQGQLX8J94O1cSJWAwUSEvCjwjA7KEK3Hmg==", "dev": true, "dependencies": { "@typescript-eslint/utils": "^5.10.0" @@ -8799,18 +8607,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/eslint/node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -9012,6 +8808,12 @@ "node": ">=4.0" } }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -9950,9 +9752,9 @@ } }, "node_modules/husky": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.2.tgz", - "integrity": "sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", + "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", "dev": true, "bin": { "husky": "lib/bin.js" @@ -9997,9 +9799,9 @@ ] }, "node_modules/ignore": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.2.tgz", - "integrity": "sha512-m1MJSy4Z2NAcyhoYpxQeBsc1ZdNQwYjN0wGbLBlnVArdJ90Gtr8IhNSfZZcCoR0fM/0E0BJ0mf1KnLNDOCJP4w==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true, "engines": { "node": ">= 4" @@ -10021,6 +9823,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-fresh/node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/import-local": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", @@ -10040,6 +9863,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-meta-resolve": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-2.2.1.tgz", + "integrity": "sha512-C6lLL7EJPY44kBvA80gq4uMsVFw5x3oSKfuMl1cuZ2RkI5+UJqQXgn+6hlUew0y4ig7Ypt4CObAAIzU53Nfpuw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -10315,9 +10148,9 @@ } }, "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { "is-extglob": "^2.1.1" @@ -10377,6 +10210,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-path-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-3.0.0.tgz", @@ -10499,7 +10341,7 @@ "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", "dev": true }, "node_modules/is-weakmap": { @@ -11395,9 +11237,9 @@ } }, "node_modules/jsonc-parser": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", - "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", "dev": true }, "node_modules/jsonfile": { @@ -11531,15 +11373,6 @@ "node": ">= 10.13.0" } }, - "node_modules/knex/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -12148,32 +11981,31 @@ "dev": true }, "node_modules/markdownlint": { - "version": "0.26.2", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.26.2.tgz", - "integrity": "sha512-2Am42YX2Ex5SQhRq35HxYWDfz1NLEOZWWN25nqd2h3AHRKsGRE+Qg1gt1++exW792eXTrR4jCNHfShfWk9Nz8w==", + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.27.0.tgz", + "integrity": "sha512-HtfVr/hzJJmE0C198F99JLaeada+646B5SaG2pVoEakLFI6iRGsvMqrnnrflq8hm1zQgwskEgqSnhDW11JBp0w==", "dev": true, "dependencies": { "markdown-it": "13.0.1" }, "engines": { - "node": ">=14" + "node": ">=14.18.0" } }, "node_modules/markdownlint-cli": { - "version": "0.32.2", - "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.32.2.tgz", - "integrity": "sha512-xmJT1rGueUgT4yGNwk6D0oqQr90UJ7nMyakXtqjgswAkEhYYqjHew9RY8wDbOmh2R270IWjuKSeZzHDEGPAUkQ==", + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.33.0.tgz", + "integrity": "sha512-zMK1oHpjYkhjO+94+ngARiBBrRDEUMzooDHBAHtmEIJ9oYddd9l3chCReY2mPlecwH7gflQp1ApilTo+o0zopQ==", "dev": true, "dependencies": { - "commander": "~9.4.0", + "commander": "~9.4.1", "get-stdin": "~9.0.0", "glob": "~8.0.3", - "ignore": "~5.2.0", + "ignore": "~5.2.4", "js-yaml": "^4.1.0", - "jsonc-parser": "~3.1.0", - "markdownlint": "~0.26.2", - "markdownlint-rule-helpers": "~0.17.2", - "minimatch": "~5.1.0", + "jsonc-parser": "~3.2.0", + "markdownlint": "~0.27.0", + "minimatch": "~5.1.2", "run-con": "~1.2.11" }, "bin": { @@ -12251,9 +12083,9 @@ } }, "node_modules/markdownlint-cli/node_modules/minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -12262,15 +12094,6 @@ "node": ">=10" } }, - "node_modules/markdownlint-rule-helpers": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.17.2.tgz", - "integrity": "sha512-XaeoW2NYSlWxMCZM2B3H7YTG6nlaLfkEZWMBhr4hSPlq9MuY2sy83+Xr89jXOqZMZYjvi5nBCGoFh7hHoPKZmA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, "node_modules/mdurl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", @@ -12859,6 +12682,26 @@ "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", "dev": true }, + "node_modules/node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -13341,15 +13184,15 @@ "dev": true }, "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-2.0.0.tgz", + "integrity": "sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==", "dev": true, "dependencies": { - "callsites": "^3.0.0" + "callsites": "^3.1.0" }, "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/parse-json": { @@ -14036,7 +13879,7 @@ "node_modules/repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", "dev": true, "engines": { "node": ">=0.10" @@ -14091,7 +13934,7 @@ "node": ">=8" } }, - "node_modules/resolve-cwd/node_modules/resolve-from": { + "node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", @@ -14100,15 +13943,6 @@ "node": ">=8" } }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/resolve-global": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", @@ -14937,13 +14771,13 @@ } }, "node_modules/synckit": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.4.tgz", - "integrity": "sha512-Dn2ZkzMdSX827QbowGbU/4yjWuvNaCoScLLoMo/yKbu+P4GBR6cRGKZH27k6a9bRzdqcyd1DE96pQtQ6uNkmyw==", + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", + "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==", "dev": true, "dependencies": { "@pkgr/utils": "^2.3.1", - "tslib": "^2.4.0" + "tslib": "^2.5.0" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -15298,12 +15132,12 @@ } }, "node_modules/tsconfig-paths": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.1.1.tgz", - "integrity": "sha512-VgPrtLKpRgEAJsMj5Q/I/mXouC6A/7eJ/X4Nuk6o0cRPwBtznYxTCU4FodbexbzH9somBPEXYi0ZkUViUpJ21Q==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.1.2.tgz", + "integrity": "sha512-uhxiMgnXQp1IR622dUXI+9Ehnws7i/y6xvpZB9IbUVOPy0muvdvgXeZOn88UcGPiT98Vp3rJPTa8bFoalZ3Qhw==", "dev": true, "dependencies": { - "json5": "^2.2.1", + "json5": "^2.2.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" }, @@ -15325,6 +15159,27 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "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" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -15586,9 +15441,9 @@ } }, "node_modules/typescript-transform-paths": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/typescript-transform-paths/-/typescript-transform-paths-3.4.4.tgz", - "integrity": "sha512-b+6JTpJbO9CxVyt9+fIKXpLNUEyzrKXdflsVo/nXbQqelCYkpSsRdI+ikg3SelyE04rUeKlb+Kdt1D8Doa9JoQ==", + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/typescript-transform-paths/-/typescript-transform-paths-3.4.6.tgz", + "integrity": "sha512-qdgpCk9oRHkIBhznxaHAapCFapJt5e4FbFik7Y4qdqtp6VyC3smAIPoDEIkjZ2eiF7x5+QxUPYNwJAtw0thsTw==", "dev": true, "dependencies": { "minimatch": "^3.0.4" @@ -16247,15 +16102,6 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", "dev": true - }, - "node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - } } } }, @@ -18759,72 +18605,74 @@ "dev": true }, "@cspell/cspell-bundled-dicts": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-6.17.0.tgz", - "integrity": "sha512-BA5cg2mfESbF3Fm/fIGXgbm0LhD8HKxCCiQDRN9FLaj4c69QUgFpQ9LpzGPZEtNn2Pjl2Jn/BEXX27hgaURG9g==", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-6.22.0.tgz", + "integrity": "sha512-73oCpJzagl7mNMAMlKNLdk4DQDEKhv0IsU5Pz/BvYNWxI2KczYiyPLSk/y/bO0mNQTxFgHvKUie+GoATGB9LyA==", "dev": true, "requires": { - "@cspell/dict-ada": "^4.0.0", + "@cspell/dict-ada": "^4.0.1", "@cspell/dict-aws": "^3.0.0", - "@cspell/dict-bash": "^4.1.0", - "@cspell/dict-companies": "^3.0.3", - "@cspell/dict-cpp": "^4.0.0", + "@cspell/dict-bash": "^4.1.1", + "@cspell/dict-companies": "^3.0.6", + "@cspell/dict-cpp": "^4.0.1", "@cspell/dict-cryptocurrencies": "^3.0.1", "@cspell/dict-csharp": "^4.0.2", - "@cspell/dict-css": "^4.0.0", - "@cspell/dict-dart": "^2.0.0", - "@cspell/dict-django": "^4.0.0", - "@cspell/dict-docker": "^1.1.3", - "@cspell/dict-dotnet": "^4.0.0", - "@cspell/dict-elixir": "^4.0.0", - "@cspell/dict-en_us": "^4.1.0", + "@cspell/dict-css": "^4.0.2", + "@cspell/dict-dart": "^2.0.1", + "@cspell/dict-django": "^4.0.1", + "@cspell/dict-docker": "^1.1.5", + "@cspell/dict-dotnet": "^4.0.1", + "@cspell/dict-elixir": "^4.0.1", + "@cspell/dict-en_us": "^4.2.1", "@cspell/dict-en-gb": "1.1.33", "@cspell/dict-filetypes": "^3.0.0", "@cspell/dict-fonts": "^3.0.0", - "@cspell/dict-fullstack": "^3.0.0", + "@cspell/dict-fullstack": "^3.1.1", + "@cspell/dict-gaming-terms": "^1.0.4", "@cspell/dict-git": "^2.0.0", - "@cspell/dict-golang": "^5.0.0", - "@cspell/dict-haskell": "^4.0.0", - "@cspell/dict-html": "^4.0.1", + "@cspell/dict-golang": "^5.0.1", + "@cspell/dict-haskell": "^4.0.1", + "@cspell/dict-html": "^4.0.2", "@cspell/dict-html-symbol-entities": "^4.0.0", - "@cspell/dict-java": "^5.0.2", - "@cspell/dict-latex": "^3.0.0", + "@cspell/dict-java": "^5.0.4", + "@cspell/dict-k8s": "^1.0.0", + "@cspell/dict-latex": "^3.1.0", "@cspell/dict-lorem-ipsum": "^3.0.0", - "@cspell/dict-lua": "^3.0.0", - "@cspell/dict-node": "^4.0.1", - "@cspell/dict-npm": "^5.0.0", - "@cspell/dict-php": "^3.0.3", - "@cspell/dict-powershell": "^3.0.0", - "@cspell/dict-public-licenses": "^2.0.0", - "@cspell/dict-python": "^4.0.0", - "@cspell/dict-r": "^2.0.0", - "@cspell/dict-ruby": "^3.0.0", - "@cspell/dict-rust": "^3.0.0", - "@cspell/dict-scala": "^3.0.0", - "@cspell/dict-software-terms": "^3.0.5", - "@cspell/dict-sql": "^2.0.0", - "@cspell/dict-svelte": "^1.0.0", - "@cspell/dict-swift": "^2.0.0", - "@cspell/dict-typescript": "^3.0.1", + "@cspell/dict-lua": "^4.0.0", + "@cspell/dict-node": "^4.0.2", + "@cspell/dict-npm": "^5.0.3", + "@cspell/dict-php": "^3.0.4", + "@cspell/dict-powershell": "^4.0.0", + "@cspell/dict-public-licenses": "^2.0.1", + "@cspell/dict-python": "^4.0.1", + "@cspell/dict-r": "^2.0.1", + "@cspell/dict-ruby": "^4.0.1", + "@cspell/dict-rust": "^4.0.0", + "@cspell/dict-scala": "^4.0.0", + "@cspell/dict-software-terms": "^3.1.1", + "@cspell/dict-sql": "^2.0.1", + "@cspell/dict-svelte": "^1.0.2", + "@cspell/dict-swift": "^2.0.1", + "@cspell/dict-typescript": "^3.1.0", "@cspell/dict-vue": "^3.0.0" } }, "@cspell/cspell-pipe": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-6.17.0.tgz", - "integrity": "sha512-/VlX1cQtVBK9PFvSsaYVzV59i/2de9wrMSYDk+oGLXQzGBf5+5rPDZMJJ+QQkaexMdxoOXjCYTEXnNkPoVFyFA==", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-6.22.0.tgz", + "integrity": "sha512-azitnOyh2lIN2brJBQE7NSURUOC7P911BuGf5cPb6cEFLSBSkPfuet5yTjgVSd8oq2kgv/irEz4BbEMjAYL4ag==", "dev": true }, "@cspell/cspell-service-bus": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-6.17.0.tgz", - "integrity": "sha512-HrzR23aeC/ykSOJvUr+uX6Dv7JLc5meNABLxauiC9jexOXFB3DKmo+DvJFerRDOGz6eYSwM0VXAR62OCHrWK/Q==", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-6.22.0.tgz", + "integrity": "sha512-zskChnBYBuInkgp2wUF5xvOA20YF3DMovPHUaRByahB2DQwAZXGLnYxCBM70+xkIsOURGcjpvpyzry7bPMBXiw==", "dev": true }, "@cspell/cspell-types": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-6.17.0.tgz", - "integrity": "sha512-4FStDRqZVEP6oYtXqj1wUlF02EC5PN7giJ5f4YPeChwXyQBdZWUPQgEIKn0K9GIgKDMlKRo9tloAHVgtaZ+zOA==", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-6.22.0.tgz", + "integrity": "sha512-AcvI7QkjpGL+CHz3WJTXn/A8OigwhjQ5eBZ09t+f42am5sjygcBR8n77wWjpKcY853XkOpqP4qIvXcZJzSUzUw==", "dev": true }, "@cspell/dict-ada": { @@ -18846,9 +18694,9 @@ "dev": true }, "@cspell/dict-companies": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.0.4.tgz", - "integrity": "sha512-cO06nle+9dQGrjUOvP/zRAEV0xT3jKM8dHIXWhnd70IcZQnRdka6vxjW+KGaoXk3ABY5uMCymRmuaOZtLd1lFQ==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.0.6.tgz", + "integrity": "sha512-6rWuwZxPisn/MP41DzBtChVgbz9b6HSjBH3X0s3k7zlBaxrw6xFAZGKH9KGFSPTiV+WD9j+IIn2/ITXERGjNLA==", "dev": true }, "@cspell/dict-cpp": { @@ -18870,9 +18718,9 @@ "dev": true }, "@cspell/dict-css": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-css/-/dict-css-4.0.1.tgz", - "integrity": "sha512-jxsncdeiN/wkZGqU8iLtn24n3e0Fwugj6T48rjWUItn/i3C9j2W7RXOVqd7ZIeWeV8ibyq0WWiwA8Ajg6XaKpA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-css/-/dict-css-4.0.2.tgz", + "integrity": "sha512-0NxBcB36b1Jy23Tf5YLrD8+PvBhE3FgBci3rwtw2DEqVigEX6uodecfoh9I4kcU8PZlVsDujrUfwgzYCWh/feQ==", "dev": true }, "@cspell/dict-dart": { @@ -18888,9 +18736,9 @@ "dev": true }, "@cspell/dict-docker": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@cspell/dict-docker/-/dict-docker-1.1.4.tgz", - "integrity": "sha512-DnsDzv3e5aPZ/ciu7weoD85SYErl6ChKtphhyULcsSBFexucAAO54ZWx4fRCEwNv/T29KlZ7P5sh4BnSYokCRQ==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@cspell/dict-docker/-/dict-docker-1.1.5.tgz", + "integrity": "sha512-SNEohOScQ+0+y9dp/jKTx60OOJQrf5es5BJ32gh5Ck3jKXNo4wd9KLgPOmQMUpencb5SGjrBsC4rr1fyfCwytg==", "dev": true }, "@cspell/dict-dotnet": { @@ -18906,9 +18754,9 @@ "dev": true }, "@cspell/dict-en_us": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.1.1.tgz", - "integrity": "sha512-I7pgGfYNSOnyNtDWs89B5jY0lZsSEy4ORwZHzLK55MaOq8YaSs+HyXKQsCX/Ce5ktCV03M3ObB01xE4OKoWPuQ==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.2.2.tgz", + "integrity": "sha512-NSlvE6bIkgRRlBkfltiwREu2NYT4PrLmpdi9zSeWuUMlGB+0wUGAal3B7zKC1pirhueH20W6to0lPdnEWaqa8Q==", "dev": true }, "@cspell/dict-en-gb": { @@ -18930,9 +18778,15 @@ "dev": true }, "@cspell/dict-fullstack": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-fullstack/-/dict-fullstack-3.0.0.tgz", - "integrity": "sha512-BMQRTaeReLufjMwgWqqwPdrXQ7jkVGTv7/YvOLsHFZvcAP3eM7WqX+rvdXckLhJmuuzbceFRDKs5F/9Ig2x/tQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-fullstack/-/dict-fullstack-3.1.1.tgz", + "integrity": "sha512-w2n3QvqEiufmvlBuNduury/pySrhfOcWFfCvvpUXTJvWbfRVGkt6ANZuTuy3/7Z2q4GYUqsd139te4Q8m0jRHQ==", + "dev": true + }, + "@cspell/dict-gaming-terms": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@cspell/dict-gaming-terms/-/dict-gaming-terms-1.0.4.tgz", + "integrity": "sha512-hbDduNXlk4AOY0wFxcDMWBPpm34rpqJBeqaySeoUH70eKxpxm+dvjpoRLJgyu0TmymEICCQSl6lAHTHSDiWKZg==", "dev": true }, "@cspell/dict-git": { @@ -18966,15 +18820,21 @@ "dev": true }, "@cspell/dict-java": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@cspell/dict-java/-/dict-java-5.0.3.tgz", - "integrity": "sha512-zQYPZxfso0W4QigsX5zX4lAZZYIrBcnHbrZkHplgmpDwR34GWBg2GypPMkDbli5Oogij/R7o4MaoefBQzcNIPA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@cspell/dict-java/-/dict-java-5.0.4.tgz", + "integrity": "sha512-43VrLOLcBxavv6eyL4BpsnHrhVOgyYYeJqQRJG5XKObcpWy3+Lpadj58CfTVOr7M/Je3pUpd4tvsUhf/lWXMVA==", + "dev": true + }, + "@cspell/dict-k8s": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-k8s/-/dict-k8s-1.0.0.tgz", + "integrity": "sha512-XqIql+nd2DiuPuL+qPc24bN/L1mZY75kAYcuMBMW5iYgBoivkiVOg7br/aofX3ApajvHDln6tNkPZhmhsOg6Ww==", "dev": true }, "@cspell/dict-latex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-latex/-/dict-latex-3.0.0.tgz", - "integrity": "sha512-QsRWj+Jll4ueVbce8ofKa743oQ2exmbVNZN70MaMbmu8PSbjW2+Rj3OdExVStesANMj7qc20inS/TgPr8DrInQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-latex/-/dict-latex-3.1.0.tgz", + "integrity": "sha512-XD5S3FY0DrYiun2vm/KKOkeaD30LXp9v5EzVTVQvmxqQrQh0HvOT3TFD7lgKbyzZaG7E+l3wS94uwwm80cOmuw==", "dev": true }, "@cspell/dict-lorem-ipsum": { @@ -18984,9 +18844,9 @@ "dev": true }, "@cspell/dict-lua": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-lua/-/dict-lua-3.0.0.tgz", - "integrity": "sha512-WOhSCgS5wMxkGQJ8siB90iTB9ElquJB7FeqYSbJqqs6cUwH8G7MM/CEDPL6h7vCo0+v3GuxQ8yKWDSUcUhz9Lg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-lua/-/dict-lua-4.0.0.tgz", + "integrity": "sha512-aQPyc/nP67tOlW6ACpio9Q5mZ/Z1hqwXC5rt5tkoQ2GsnCqeyIXDrX0CN+RGK53Lj4P02Jz/dPxs/nX8eDUFsw==", "dev": true }, "@cspell/dict-node": { @@ -18996,9 +18856,9 @@ "dev": true }, "@cspell/dict-npm": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.0.1.tgz", - "integrity": "sha512-ynZ37WvOhl9nX4sq1CK6pAKeWkZXgJVv30ndOvnURJk0gtUAIjJ8rns2uHIMMhlsn1lsnaKlNlUuOtkUsd9qLw==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.0.3.tgz", + "integrity": "sha512-fEX67zIJISbS3gXVk/y/ZUvDIVtjc/CYJK7Mz0iTVrmlCKnLiD41lApe8v4g/12eE7hLfx/sfCXDrUWyzXVq1A==", "dev": true }, "@cspell/dict-php": { @@ -19008,9 +18868,9 @@ "dev": true }, "@cspell/dict-powershell": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-3.0.0.tgz", - "integrity": "sha512-pkztY9Ak4oc33q+Qxcn9/CTOKo4N8YIRRE6v67WwQOncA5QIJfcOPUrjfR3Z8SpzElXhu3s9qtWWSqbCy6qmcA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-4.0.0.tgz", + "integrity": "sha512-1Lbm+3+Sx63atl4MM3lPeCUc90JjRyKP9+exmy2cQimXNju9ngtuDWwapHUnhQ47qnzrsBY4ydm36KCfJarXJA==", "dev": true }, "@cspell/dict-public-licenses": { @@ -19032,21 +18892,21 @@ "dev": true }, "@cspell/dict-ruby": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-ruby/-/dict-ruby-3.0.0.tgz", - "integrity": "sha512-sA98T8Y1Pmq3RStVkO14E8vTWkq6JUn8c8PldiMyYgV0yfQgwhQfFAzlSfF3Gg2B0VkIdqt2et2SPN7f9wp7fQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-ruby/-/dict-ruby-4.0.1.tgz", + "integrity": "sha512-p9nLDsffPadPLLwdLQj4Gk0IsZ64iCSxnSCaeFXslFiD17FtJVh1YMHP7KE9M73u22Hprq+a1Yw25/xp6Tkt3g==", "dev": true }, "@cspell/dict-rust": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-3.0.0.tgz", - "integrity": "sha512-L1T1IBsYJZVDmfOGAbVLcpc6arWxRRCSJYvHSwEDBGrNuMyJ4jx/NvBEz5crcKf4vVKgwVlXgzQlJJZ8AVxU9w==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-4.0.0.tgz", + "integrity": "sha512-nzJsgLR6/JXtM41Cr5FG89r8sBKW6aFjvCqPxeaBJYLAL0JuvsVUcd16rW2lTsdbx5J8yUQDD7mgCZFk6merJQ==", "dev": true }, "@cspell/dict-scala": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-scala/-/dict-scala-3.0.0.tgz", - "integrity": "sha512-sIiCQDIMMnNns/fzD61z5npbh5pypaKq07Orqe0+eRfdQpika8iRSGUGFHVbtdd1JzB1DyTCV2e8OwdaQiXqJQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-scala/-/dict-scala-4.0.0.tgz", + "integrity": "sha512-ugdjt66/Ah34yF3u3DUNjCHXnBqIuxUUfdeBobbGxfm29CNgidrISV1NUh+xi8tPynMzSTpGbBiArFBH6on5XQ==", "dev": true }, "@cspell/dict-shell": { @@ -19056,9 +18916,9 @@ "dev": true }, "@cspell/dict-software-terms": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.0.6.tgz", - "integrity": "sha512-Zf7RrgLtdwDgQqHjS2OaL88haYZ2sBEBZX4ARmLTpJkS4lHM0nKRsPf7QKi9/AhrH1CGjOwgyx9Q/aVC/MdggA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.1.2.tgz", + "integrity": "sha512-p19elLnu61nl8WJ2IJHANtJqkt5y0dsBb3iApcd5Z+s4uadRBpi29vEeFU+NWoEU0F6vp1mYGCN3sOtC0g/hIA==", "dev": true }, "@cspell/dict-sql": { @@ -19068,9 +18928,9 @@ "dev": true }, "@cspell/dict-svelte": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-svelte/-/dict-svelte-1.0.1.tgz", - "integrity": "sha512-CYnEftTY2cFAy+Ag8AN+OxUtqhyhPfT7yX6Cxf701RSzLCllWDHZ4wlCii+uYqkscZUZp1Ko2QY+t3SyOqlG0g==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-svelte/-/dict-svelte-1.0.2.tgz", + "integrity": "sha512-rPJmnn/GsDs0btNvrRBciOhngKV98yZ9SHmg8qI6HLS8hZKvcXc0LMsf9LLuMK1TmS2+WQFAan6qeqg6bBxL2Q==", "dev": true }, "@cspell/dict-swift": { @@ -19080,9 +18940,9 @@ "dev": true }, "@cspell/dict-typescript": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-3.0.2.tgz", - "integrity": "sha512-+xg/Lan+ObJbmGXuAN1RI84eUy+P6ZzFrWO1JoaU9zHXs62IHetkAGrUXfc+rM3m4O6lpMKawHjokFWqkFa4Vw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-3.1.0.tgz", + "integrity": "sha512-4hdLlQMOYrUbGfJg2cWnbsBUevObwgL76TLVC0rwnrkSwzOxAxiGaG39VtRMvgAAe2lX6L+jka3fy0MmxzFOHw==", "dev": true }, "@cspell/dict-vue": { @@ -19091,19 +18951,30 @@ "integrity": "sha512-niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A==", "dev": true }, + "@cspell/dynamic-import": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-6.22.0.tgz", + "integrity": "sha512-Dkravk0nQklyr13pClBXjg/Ku4o2jc6vdVp71L3bfXCQh8StdWP/kyW6O6qjXUsWwGAuRl8YuamRLePlVV8q3A==", + "dev": true, + "requires": { + "import-meta-resolve": "^2.2.1" + } + }, "@cspell/eslint-plugin": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@cspell/eslint-plugin/-/eslint-plugin-6.17.0.tgz", - "integrity": "sha512-wftqhuSolXaJ6SSNH5aYGkdJRrZzcJArwwYU7ueYg2NJMuwAXLEQiEzorYMvIjZCdh/T3/DgweGZoxcUu1y+3A==", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/@cspell/eslint-plugin/-/eslint-plugin-6.22.0.tgz", + "integrity": "sha512-Zee90ynGRF7sJPPozSamD73OvJq2mQgoTj+iO1r6JA61oJEve+zZ/139FCA6fJfzNHiEty7EwFgDeuGv+NQ28Q==", "dev": true, "requires": { - "cspell-lib": "6.17.0" + "cspell-lib": "6.22.0", + "estree-walker": "^2.0.2", + "synckit": "^0.8.5" } }, "@cspell/strong-weak-map": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-6.17.0.tgz", - "integrity": "sha512-fRghm6eoUEH7Uz57t0SEKJNm4lqODF2/DRiLd2ek7QkzUHKrCetre/5UrvdE78GIUyl0+8GLx9iFwo/XFa6dDA==", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-6.22.0.tgz", + "integrity": "sha512-Krfq5P+s9R1qH3hvhMC40SsU49v6/qGvvPP1kGwToAHEDDGVyRA9xgz/RswDThgEzpzwMuOGzjZlQ3P3luHnug==", "dev": true }, "@cspotcode/source-map-support": { @@ -19128,9 +18999,9 @@ } }, "@eslint/eslintrc": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.0.tgz", - "integrity": "sha512-7yfvXy6MWLgWSFsLhz5yH3iQ52St8cdUY6FoGieKkRDVxuxmrNuUetIuu6cmjNWwniUHiWXjxCr5tTXDrbYS5A==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", + "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -19160,9 +19031,9 @@ } }, "globals": { - "version": "13.19.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", - "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -19314,14 +19185,6 @@ "get-package-type": "^0.1.0", "js-yaml": "^3.13.1", "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } } }, "@istanbuljs/schema": { @@ -19764,17 +19627,6 @@ "picocolors": "^1.0.0", "tiny-glob": "^0.2.9", "tslib": "^2.4.0" - }, - "dependencies": { - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - } } }, "@protobufjs/aspromise": { @@ -20245,15 +20097,16 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "5.46.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.46.1.tgz", - "integrity": "sha512-YpzNv3aayRBwjs4J3oz65eVLXc9xx0PDbIRisHj+dYhvBn02MjYOD96P8YGiWEIFBrojaUjxvkaUpakD82phsA==", + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.51.0.tgz", + "integrity": "sha512-wcAwhEWm1RgNd7dxD/o+nnLW8oH+6RK1OGnmbmkj/GGoDPV1WWMVP0FXYQBivKHdwM1pwii3bt//RC62EriIUQ==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.46.1", - "@typescript-eslint/type-utils": "5.46.1", - "@typescript-eslint/utils": "5.46.1", + "@typescript-eslint/scope-manager": "5.51.0", + "@typescript-eslint/type-utils": "5.51.0", + "@typescript-eslint/utils": "5.51.0", "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", "regexpp": "^3.2.0", @@ -20275,33 +20128,18 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } } } }, "@typescript-eslint/parser": { - "version": "5.46.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.46.1.tgz", - "integrity": "sha512-RelQ5cGypPh4ySAtfIMBzBGyrNerQcmfA1oJvPj5f+H4jI59rl9xxpn4bonC0tQvUKOEN7eGBFWxFLK3Xepneg==", + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.51.0.tgz", + "integrity": "sha512-fEV0R9gGmfpDeRzJXn+fGQKcl0inIeYobmmUWijZh9zA7bxJ8clPhV9up2ZQzATxAiFAECqPQyMDB4o4B81AaA==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.46.1", - "@typescript-eslint/types": "5.46.1", - "@typescript-eslint/typescript-estree": "5.46.1", + "@typescript-eslint/scope-manager": "5.51.0", + "@typescript-eslint/types": "5.51.0", + "@typescript-eslint/typescript-estree": "5.51.0", "debug": "^4.3.4" }, "dependencies": { @@ -20323,23 +20161,23 @@ } }, "@typescript-eslint/scope-manager": { - "version": "5.46.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.46.1.tgz", - "integrity": "sha512-iOChVivo4jpwUdrJZyXSMrEIM/PvsbbDOX1y3UCKjSgWn+W89skxWaYXACQfxmIGhPVpRWK/VWPYc+bad6smIA==", + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.51.0.tgz", + "integrity": "sha512-gNpxRdlx5qw3yaHA0SFuTjW4rxeYhpHxt491PEcKF8Z6zpq0kMhe0Tolxt0qjlojS+/wArSDlj/LtE69xUJphQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.46.1", - "@typescript-eslint/visitor-keys": "5.46.1" + "@typescript-eslint/types": "5.51.0", + "@typescript-eslint/visitor-keys": "5.51.0" } }, "@typescript-eslint/type-utils": { - "version": "5.46.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.46.1.tgz", - "integrity": "sha512-V/zMyfI+jDmL1ADxfDxjZ0EMbtiVqj8LUGPAGyBkXXStWmCUErMpW873zEHsyguWCuq2iN4BrlWUkmuVj84yng==", + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.51.0.tgz", + "integrity": "sha512-QHC5KKyfV8sNSyHqfNa0UbTbJ6caB8uhcx2hYcWVvJAZYJRBo5HyyZfzMdRx8nvS+GyMg56fugMzzWnojREuQQ==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "5.46.1", - "@typescript-eslint/utils": "5.46.1", + "@typescript-eslint/typescript-estree": "5.51.0", + "@typescript-eslint/utils": "5.51.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -20356,40 +20194,25 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true } } }, "@typescript-eslint/types": { - "version": "5.46.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.46.1.tgz", - "integrity": "sha512-Z5pvlCaZgU+93ryiYUwGwLl9AQVB/PQ1TsJ9NZ/gHzZjN7g9IAn6RSDkpCV8hqTwAiaj6fmCcKSQeBPlIpW28w==", + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.51.0.tgz", + "integrity": "sha512-SqOn0ANn/v6hFn0kjvLwiDi4AzR++CBZz0NV5AnusT2/3y32jdc0G4woXPWHCumWtUXZKPAS27/9vziSsC9jnw==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.46.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.46.1.tgz", - "integrity": "sha512-j9W4t67QiNp90kh5Nbr1w92wzt+toiIsaVPnEblB2Ih2U9fqBTyqV9T3pYWZBRt6QoMh/zVWP59EpuCjc4VRBg==", + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.51.0.tgz", + "integrity": "sha512-TSkNupHvNRkoH9FMA3w7TazVFcBPveAAmb7Sz+kArY6sLT86PA5Vx80cKlYmd8m3Ha2SwofM1KwraF24lM9FvA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.46.1", - "@typescript-eslint/visitor-keys": "5.46.1", + "@typescript-eslint/types": "5.51.0", + "@typescript-eslint/visitor-keys": "5.51.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -20406,61 +20229,37 @@ "ms": "2.1.2" } }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } } } }, "@typescript-eslint/utils": { - "version": "5.46.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.46.1.tgz", - "integrity": "sha512-RBdBAGv3oEpFojaCYT4Ghn4775pdjvwfDOfQ2P6qzNVgQOVrnSPe5/Pb88kv7xzYQjoio0eKHKB9GJ16ieSxvA==", + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.51.0.tgz", + "integrity": "sha512-76qs+5KWcaatmwtwsDJvBk4H76RJQBFe+Gext0EfJdC3Vd2kpY2Pf//OHHzHp84Ciw0/rYoGTDnIAr3uWhhJYw==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.46.1", - "@typescript-eslint/types": "5.46.1", - "@typescript-eslint/typescript-estree": "5.46.1", + "@typescript-eslint/scope-manager": "5.51.0", + "@typescript-eslint/types": "5.51.0", + "@typescript-eslint/typescript-estree": "5.51.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0", "semver": "^7.3.7" } }, "@typescript-eslint/visitor-keys": { - "version": "5.46.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.46.1.tgz", - "integrity": "sha512-jczZ9noovXwy59KjRTk1OftT78pwygdcmCuBf8yMoWt/8O8l+6x2LSEze0E4TeepXK4MezW3zGSyoDRZK7Y9cg==", + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.51.0.tgz", + "integrity": "sha512-Oh2+eTdjHjOFjKA27sxESlA87YPSOJafGCR0md5oeMdh1ZcCfAGCIOL216uTBAkAIptvLIfKQhl7lHxMJet4GQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.46.1", + "@typescript-eslint/types": "5.51.0", "eslint-visitor-keys": "^3.3.0" } }, @@ -20820,17 +20619,6 @@ "dev": true, "requires": { "node-fetch": "^2.6.7" - }, - "dependencies": { - "node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - } - } } }, "apollo-server-errors": { @@ -21004,6 +20792,18 @@ "es-shim-unscopables": "^1.0.0" } }, + "array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, "astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", @@ -21409,23 +21209,6 @@ "requires": { "parent-module": "^2.0.0", "resolve-from": "^5.0.0" - }, - "dependencies": { - "parent-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-2.0.0.tgz", - "integrity": "sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==", - "dev": true, - "requires": { - "callsites": "^3.1.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } } }, "cli-cursor": { @@ -21716,6 +21499,35 @@ "vary": "^1" } }, + "cosmiconfig": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", + "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", + "dev": true, + "requires": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + } + } + }, "create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", @@ -21740,61 +21552,56 @@ "dev": true }, "cspell": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/cspell/-/cspell-6.17.0.tgz", - "integrity": "sha512-R1TXu1p2vON6rHXxZAUPbdf+v+ckPhWiEb3apq2PyxLSjzMiZDm2ThIwRcsQaMLLZyFOD+J3SHj0lZi1Qoaa8w==", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/cspell/-/cspell-6.22.0.tgz", + "integrity": "sha512-cyF2xyV5nqXw3y5f/r/XxEF+3aj6dxwDLIRW1SYDZ8gV1I9pZwupgM7+jwmqes0CNf/mbAbWbhNQrh2MP2NsfA==", "dev": true, "requires": { - "@cspell/cspell-pipe": "6.17.0", + "@cspell/cspell-pipe": "6.22.0", + "@cspell/dynamic-import": "6.22.0", "chalk": "^4.1.2", - "commander": "^9.4.1", - "cspell-gitignore": "6.17.0", - "cspell-glob": "6.17.0", - "cspell-lib": "6.17.0", + "commander": "^10.0.0", + "cspell-gitignore": "6.22.0", + "cspell-glob": "6.22.0", + "cspell-lib": "6.22.0", + "fast-glob": "^3.2.12", "fast-json-stable-stringify": "^2.1.0", "file-entry-cache": "^6.0.1", - "fs-extra": "^10.1.0", "get-stdin": "^8.0.0", - "glob": "^8.0.3", "imurmurhash": "^0.1.4", "semver": "^7.3.8", "strip-ansi": "^6.0.1", - "vscode-uri": "^3.0.6" + "vscode-uri": "^3.0.7" }, "dependencies": { - "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } + "commander": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz", + "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==", + "dev": true } } }, "cspell-dictionary": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-6.17.0.tgz", - "integrity": "sha512-jUb/kIR2glYliRem11kCu7gaXUcHKp8L2G73LmzIULx+UKRgTa/100FXqm5lZUWnCaIznMmaA2QtutP+xYy5AQ==", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-6.22.0.tgz", + "integrity": "sha512-O74nn6wwNAxhbNoIceUCxS4I/1L4JLEGlfICBXR4OxSR6S2A5JK5Qkq8fL0h660Lm3C99J1JLLJDUrny1Sk5Zg==", "dev": true, "requires": { - "@cspell/cspell-pipe": "6.17.0", - "@cspell/cspell-types": "6.17.0", - "cspell-trie-lib": "6.17.0", + "@cspell/cspell-pipe": "6.22.0", + "@cspell/cspell-types": "6.22.0", + "cspell-trie-lib": "6.22.0", "fast-equals": "^4.0.3", - "gensequence": "^4.0.2" + "gensequence": "^4.0.3" } }, "cspell-gitignore": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-6.17.0.tgz", - "integrity": "sha512-SDyPv6LqBebvoTKFP+ewh51gvmv1z8JDg7llumUFH2u1WoiMZBLLOL2pAa9UM0f6eEzBC1iS6nWQ+20VJx2yQA==", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-6.22.0.tgz", + "integrity": "sha512-iSc50FdY5tKXH950J56BhI6zLBE4O7wHOwmzzkb/tiAeni5krTyNdfxiJNKEvk/0kLct8zve9GHFr13iV0tdhQ==", "dev": true, "requires": { - "cspell-glob": "6.17.0", + "cspell-glob": "6.22.0", "find-up": "^5.0.0" }, "dependencies": { @@ -21829,93 +21636,63 @@ } }, "cspell-glob": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-6.17.0.tgz", - "integrity": "sha512-iKz2CvUU1HXuNJfxYRwSQFck3pCl9EhTx2qIR0lKf4gccCR89p44qxIR98nTbX1OF89lhfH6sUHtzkJ3nPWh+A==", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-6.22.0.tgz", + "integrity": "sha512-YVQ5Sw3xt8xTueiuLH1nadMwQzIqDok6BSrTQZbrD8CPnaDanyRqyxJUzIJVd3on4IyQ4ZNnlUXZURaXFX2cTQ==", "dev": true, "requires": { "micromatch": "^4.0.5" } }, "cspell-grammar": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-6.17.0.tgz", - "integrity": "sha512-3B9QmKWOjAPzLYqesLP2niIbo6Yvb4rodjIwFXUvL3vmMZF4c9HFU/JVTTerLxrwh3DH8u6Mac52RzUurOJ15Q==", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-6.22.0.tgz", + "integrity": "sha512-52DvVkkSoge91+Z7VgeMYUDaMafdhYGwQleW7BTW3GK+T9y9zl7OTwjxhfqkZ+CG8ImyBsIDyrEsSLqQ1Lepuw==", "dev": true, "requires": { - "@cspell/cspell-pipe": "6.17.0", - "@cspell/cspell-types": "6.17.0" + "@cspell/cspell-pipe": "6.22.0", + "@cspell/cspell-types": "6.22.0" } }, "cspell-io": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-6.17.0.tgz", - "integrity": "sha512-cofZlvKzXP3QytGM6OlREQIXLFcSdEKOFubSVHkRvAVX3IqeQnKo4oVF85C6McjwXTrJ1OH+SDP0vcpn6mKqTg==", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-6.22.0.tgz", + "integrity": "sha512-k3rsbDm2nqXpcW+/K/URJ7AQshmZ2CNqaUQ4m0nDNUoe/C9ITj13ROWXQYiA3i4Z4icVIN6t/jOmAKmKI6UTUA==", "dev": true, "requires": { - "@cspell/cspell-service-bus": "6.17.0", - "node-fetch": "^2.6.7" - }, - "dependencies": { - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - } - } + "@cspell/cspell-service-bus": "6.22.0", + "node-fetch": "^2.6.9" } }, "cspell-lib": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-6.17.0.tgz", - "integrity": "sha512-oZNkm0UhRa4nkoYPij23z7cbVXFPVHs7SdGC6IAVc71uz44nLNeC3e8+UnTErOU7nlROvjp9k3G90DEwej1TqQ==", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-6.22.0.tgz", + "integrity": "sha512-+XWp2GBmZeUiacLPH+skpiDMpX+xp7Pp9I306NQ2FqnxmM05aqIxh0q7fQaeSNS4HV9x8z6noYPjoo01tbaDsg==", "dev": true, "requires": { - "@cspell/cspell-bundled-dicts": "6.17.0", - "@cspell/cspell-pipe": "6.17.0", - "@cspell/cspell-types": "6.17.0", - "@cspell/strong-weak-map": "6.17.0", + "@cspell/cspell-bundled-dicts": "6.22.0", + "@cspell/cspell-pipe": "6.22.0", + "@cspell/cspell-types": "6.22.0", + "@cspell/strong-weak-map": "6.22.0", "clear-module": "^4.1.2", "comment-json": "^4.2.3", "configstore": "^5.0.1", "cosmiconfig": "^8.0.0", - "cspell-dictionary": "6.17.0", - "cspell-glob": "6.17.0", - "cspell-grammar": "6.17.0", - "cspell-io": "6.17.0", - "cspell-trie-lib": "6.17.0", + "cspell-dictionary": "6.22.0", + "cspell-glob": "6.22.0", + "cspell-grammar": "6.22.0", + "cspell-io": "6.22.0", + "cspell-trie-lib": "6.22.0", "fast-equals": "^4.0.3", "find-up": "^5.0.0", - "fs-extra": "^10.1.0", - "gensequence": "^4.0.2", + "gensequence": "^4.0.3", "import-fresh": "^3.3.0", "resolve-from": "^5.0.0", "resolve-global": "^1.0.0", - "vscode-languageserver-textdocument": "^1.0.7", - "vscode-uri": "^3.0.6" + "vscode-languageserver-textdocument": "^1.0.8", + "vscode-uri": "^3.0.7" }, "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "cosmiconfig": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", - "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", - "dev": true, - "requires": { - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" - } - }, "find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -21926,26 +21703,6 @@ "path-exists": "^4.0.0" } }, - "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, "locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -21963,38 +21720,18 @@ "requires": { "p-limit": "^3.0.2" } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true } } }, "cspell-trie-lib": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-6.17.0.tgz", - "integrity": "sha512-hmyZHhemWYLjjEDItAhgAF0tuL2iiQg+5PzUmELKIBSWEsmFdfxh1xWCmo1q0+vzVML+0Ms2cspiGyS9y/CF7A==", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-6.22.0.tgz", + "integrity": "sha512-DFil6sYyjVbS5ZSiz4ZSrcZ7+601S65/T7snoHINHsRSgcznTJrgpYR0I0ZYHm8P2heT3RBpWwaAcbD5bbyw9Q==", "dev": true, "requires": { - "@cspell/cspell-pipe": "6.17.0", - "@cspell/cspell-types": "6.17.0", - "fs-extra": "^10.1.0", - "gensequence": "^4.0.2" - }, - "dependencies": { - "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - } + "@cspell/cspell-pipe": "6.22.0", + "@cspell/cspell-types": "6.22.0", + "gensequence": "^4.0.3" } }, "cssfilter": { @@ -22126,15 +21863,6 @@ "slash": "^4.0.0" } }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, "is-path-inside": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", @@ -22216,14 +21944,6 @@ "dev": true, "requires": { "is-obj": "^2.0.0" - }, - "dependencies": { - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true - } } }, "dotenv": { @@ -22410,12 +22130,12 @@ "dev": true }, "eslint": { - "version": "8.30.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.30.0.tgz", - "integrity": "sha512-MGADB39QqYuzEGov+F/qb18r4i7DohCDOfatHaxI2iGlPuC65bwG2gxgO+7DkyL38dRFaRH7RaRAgU6JKL9rMQ==", + "version": "8.33.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz", + "integrity": "sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.4.0", + "@eslint/eslintrc": "^1.4.1", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -22530,15 +22250,6 @@ "type-fest": "^0.20.2" } }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, "js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -22649,20 +22360,21 @@ } }, "eslint-config-prettier": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", - "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz", + "integrity": "sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==", "dev": true, "requires": {} }, "eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", + "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", "dev": true, "requires": { "debug": "^3.2.7", - "resolve": "^1.20.0" + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" }, "dependencies": { "debug": { @@ -22683,9 +22395,9 @@ } }, "eslint-import-resolver-typescript": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.2.tgz", - "integrity": "sha512-zX4ebnnyXiykjhcBvKIf5TNvt8K7yX6bllTRZ14MiurKPjDpCAZujlszTdB8pcNXhZcOf+god4s9SjQa5GnytQ==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.3.tgz", + "integrity": "sha512-njRcKYBc3isE42LaTcJNVANR3R99H9bAxBDMNDr2W7yq5gYPxbU3MkdhsQukxZ/Xg9C2vcyLlDsbKfRDg0QvCQ==", "dev": true, "requires": { "debug": "^4.3.4", @@ -22719,15 +22431,6 @@ "slash": "^4.0.0" } }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -22769,26 +22472,37 @@ } }, "eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "version": "2.27.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", + "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", "dev": true, "requires": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", "has": "^1.0.3", - "is-core-module": "^2.8.1", + "is-core-module": "^2.11.0", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", "tsconfig-paths": "^3.14.1" }, "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, "doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", @@ -22798,15 +22512,6 @@ "esutils": "^2.0.2" } }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, "json5": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", @@ -22816,6 +22521,18 @@ "minimist": "^1.2.0" } }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -22837,9 +22554,9 @@ } }, "eslint-plugin-jest": { - "version": "27.1.7", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.1.7.tgz", - "integrity": "sha512-0QVzf+og4YI1Qr3UoprkqqhezAZjFffdi62b0IurkCXMqPtRW84/UT4CKsYT80h/D82LA9avjO/80Ou1LdgbaQ==", + "version": "27.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.2.1.tgz", + "integrity": "sha512-l067Uxx7ZT8cO9NJuf+eJHvt6bqJyz2Z29wykyEdz/OtmcELQl2MQGQLX8J94O1cSJWAwUSEvCjwjA7KEK3Hmg==", "dev": true, "requires": { "@typescript-eslint/utils": "^5.10.0" @@ -22960,6 +22677,12 @@ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -23666,9 +23389,9 @@ } }, "husky": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.2.tgz", - "integrity": "sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", + "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", "dev": true }, "iconv-lite": { @@ -23687,9 +23410,9 @@ "dev": true }, "ignore": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.2.tgz", - "integrity": "sha512-m1MJSy4Z2NAcyhoYpxQeBsc1ZdNQwYjN0wGbLBlnVArdJ90Gtr8IhNSfZZcCoR0fM/0E0BJ0mf1KnLNDOCJP4w==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true }, "import-fresh": { @@ -23700,6 +23423,23 @@ "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" + }, + "dependencies": { + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + } } }, "import-local": { @@ -23712,6 +23452,12 @@ "resolve-cwd": "^3.0.0" } }, + "import-meta-resolve": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-2.2.1.tgz", + "integrity": "sha512-C6lLL7EJPY44kBvA80gq4uMsVFw5x3oSKfuMl1cuZ2RkI5+UJqQXgn+6hlUew0y4ig7Ypt4CObAAIzU53Nfpuw==", + "dev": true + }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -23902,9 +23648,9 @@ "dev": true }, "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { "is-extglob": "^2.1.1" @@ -23943,6 +23689,12 @@ "has-tostringtag": "^1.0.0" } }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, "is-path-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-3.0.0.tgz", @@ -24020,7 +23772,7 @@ "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", "dev": true }, "is-weakmap": { @@ -24717,9 +24469,9 @@ "dev": true }, "jsonc-parser": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", - "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", "dev": true }, "jsonfile": { @@ -24801,12 +24553,6 @@ "requires": { "resolve": "^1.20.0" } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true } } }, @@ -25268,29 +25014,28 @@ } }, "markdownlint": { - "version": "0.26.2", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.26.2.tgz", - "integrity": "sha512-2Am42YX2Ex5SQhRq35HxYWDfz1NLEOZWWN25nqd2h3AHRKsGRE+Qg1gt1++exW792eXTrR4jCNHfShfWk9Nz8w==", + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.27.0.tgz", + "integrity": "sha512-HtfVr/hzJJmE0C198F99JLaeada+646B5SaG2pVoEakLFI6iRGsvMqrnnrflq8hm1zQgwskEgqSnhDW11JBp0w==", "dev": true, "requires": { "markdown-it": "13.0.1" } }, "markdownlint-cli": { - "version": "0.32.2", - "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.32.2.tgz", - "integrity": "sha512-xmJT1rGueUgT4yGNwk6D0oqQr90UJ7nMyakXtqjgswAkEhYYqjHew9RY8wDbOmh2R270IWjuKSeZzHDEGPAUkQ==", + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.33.0.tgz", + "integrity": "sha512-zMK1oHpjYkhjO+94+ngARiBBrRDEUMzooDHBAHtmEIJ9oYddd9l3chCReY2mPlecwH7gflQp1ApilTo+o0zopQ==", "dev": true, "requires": { - "commander": "~9.4.0", + "commander": "~9.4.1", "get-stdin": "~9.0.0", "glob": "~8.0.3", - "ignore": "~5.2.0", + "ignore": "~5.2.4", "js-yaml": "^4.1.0", - "jsonc-parser": "~3.1.0", - "markdownlint": "~0.26.2", - "markdownlint-rule-helpers": "~0.17.2", - "minimatch": "~5.1.0", + "jsonc-parser": "~3.2.0", + "markdownlint": "~0.27.0", + "minimatch": "~5.1.2", "run-con": "~1.2.11" }, "dependencies": { @@ -25344,9 +25089,9 @@ } }, "minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -25354,12 +25099,6 @@ } } }, - "markdownlint-rule-helpers": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.17.2.tgz", - "integrity": "sha512-XaeoW2NYSlWxMCZM2B3H7YTG6nlaLfkEZWMBhr4hSPlq9MuY2sy83+Xr89jXOqZMZYjvi5nBCGoFh7hHoPKZmA==", - "dev": true - }, "mdurl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", @@ -25814,6 +25553,15 @@ "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", "dev": true }, + "node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } + }, "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -26167,12 +25915,12 @@ "dev": true }, "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-2.0.0.tgz", + "integrity": "sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==", "dev": true, "requires": { - "callsites": "^3.0.0" + "callsites": "^3.1.0" } }, "parse-json": { @@ -26688,7 +26436,7 @@ "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", "dev": true }, "require-at": { @@ -26723,20 +26471,12 @@ "dev": true, "requires": { "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } } }, "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, "resolve-global": { @@ -27360,13 +27100,13 @@ "dev": true }, "synckit": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.4.tgz", - "integrity": "sha512-Dn2ZkzMdSX827QbowGbU/4yjWuvNaCoScLLoMo/yKbu+P4GBR6cRGKZH27k6a9bRzdqcyd1DE96pQtQ6uNkmyw==", + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", + "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==", "dev": true, "requires": { "@pkgr/utils": "^2.3.1", - "tslib": "^2.4.0" + "tslib": "^2.5.0" } }, "tapable": { @@ -27616,12 +27356,12 @@ } }, "tsconfig-paths": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.1.1.tgz", - "integrity": "sha512-VgPrtLKpRgEAJsMj5Q/I/mXouC6A/7eJ/X4Nuk6o0cRPwBtznYxTCU4FodbexbzH9somBPEXYi0ZkUViUpJ21Q==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.1.2.tgz", + "integrity": "sha512-uhxiMgnXQp1IR622dUXI+9Ehnws7i/y6xvpZB9IbUVOPy0muvdvgXeZOn88UcGPiT98Vp3rJPTa8bFoalZ3Qhw==", "dev": true, "requires": { - "json5": "^2.2.1", + "json5": "^2.2.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" }, @@ -27639,6 +27379,23 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -27763,9 +27520,9 @@ "dev": true }, "typescript-transform-paths": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/typescript-transform-paths/-/typescript-transform-paths-3.4.4.tgz", - "integrity": "sha512-b+6JTpJbO9CxVyt9+fIKXpLNUEyzrKXdflsVo/nXbQqelCYkpSsRdI+ikg3SelyE04rUeKlb+Kdt1D8Doa9JoQ==", + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/typescript-transform-paths/-/typescript-transform-paths-3.4.6.tgz", + "integrity": "sha512-qdgpCk9oRHkIBhznxaHAapCFapJt5e4FbFik7Y4qdqtp6VyC3smAIPoDEIkjZ2eiF7x5+QxUPYNwJAtw0thsTw==", "dev": true, "requires": { "minimatch": "^3.0.4" diff --git a/package.json b/package.json index 8973abb3f..86f18b739 100644 --- a/package.json +++ b/package.json @@ -76,38 +76,16 @@ "tslib": "^2.5.0" }, "devDependencies": { - "@cspell/dict-node": "^4.0.2", - "@cspell/dict-npm": "^5.0.1", - "@cspell/dict-shell": "^1.0.1", - "@cspell/dict-typescript": "^3.0.2", - "@cspell/eslint-plugin": "^6.17.0", - "@types/shelljs": "^0.8.11", - "@typescript-eslint/eslint-plugin": "^5.46.1", - "@typescript-eslint/parser": "^5.46.1", - "cspell": "^6.17.0", - "eslint": "^8.30.0", - "eslint-config-airbnb-base": "^15.0.0", - "eslint-config-airbnb-typescript": "^17.0.0", - "eslint-config-prettier": "^8.5.0", - "eslint-import-resolver-typescript": "^3.5.2", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.7", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-tsdoc": "^0.2.17", - "husky": "^8.0.2", - "markdownlint": "^0.26.2", - "markdownlint-cli": "^0.32.2", - "npm-run-all": "^4.1.5", - "prettier-plugin-sh": "^0.12.8", - "shelljs": "^0.8.5", - "shx": "^0.3.4", - "ts-patch": "^2.1.0", - "tsconfig-paths": "^4.1.1", "@apollo/gateway": "^2.3.0", "@apollo/subgraph": "^2.3.0", "@babel/plugin-syntax-decorators": "^7.19.0", "@babel/preset-env": "^7.20.2", "@babel/preset-typescript": "^7.18.6", + "@cspell/dict-node": "^4.0.2", + "@cspell/dict-npm": "^5.0.3", + "@cspell/dict-shell": "^1.0.1", + "@cspell/dict-typescript": "^3.1.0", + "@cspell/eslint-plugin": "^6.22.0", "@graphql-tools/schema": "^9.0.15", "@graphql-tools/utils": "^9.2.0", "@mikro-orm/core": "^5.6.8", @@ -116,31 +94,53 @@ "@types/jest": "^29.4.0", "@types/lodash.merge": "^4.6.7", "@types/node": "^18.11.18", + "@types/shelljs": "^0.8.11", + "@typescript-eslint/eslint-plugin": "^5.51.0", + "@typescript-eslint/parser": "^5.51.0", "apollo-server": "^3.11.1", "apollo-server-plugin-response-cache": "^3.8.1", "babel-plugin-transform-typescript-metadata": "^0.3.2", "class-validator": "^0.14.0", + "cspell": "^6.22.0", "del": "^7.0.0", + "eslint": "^8.33.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-airbnb-typescript": "^17.0.0", + "eslint-config-prettier": "^8.6.0", + "eslint-import-resolver-typescript": "^3.5.3", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-jest": "^27.2.1", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-tsdoc": "^0.2.17", "graphql": "^16.6.0", "graphql-redis-subscriptions": "^2.6.0", "graphql-tag": "^2.12.6", + "husky": "^8.0.3", "ioredis": "^5.3.0", "jest": "^29.4.1", "joiful": "^3.0.2", "lint-staged": "^13.1.0", "lodash.merge": "^4.6.2", + "markdownlint": "^0.27.0", + "markdownlint-cli": "^0.33.0", "mongoose": "~6.9.0", + "npm-run-all": "^4.1.5", "pg": "^8.9.0", "prettier": "^2.8.3", + "prettier-plugin-sh": "^0.12.8", "reflect-metadata": "^0.1.13", "rimraf": "^4.1.2", + "shelljs": "^0.8.5", + "shx": "^0.3.4", "ts-jest": "^29.0.5", "ts-node": "^10.9.1", + "ts-patch": "^2.1.0", + "tsconfig-paths": "^4.1.2", "typedi": "^0.10.0", "typeorm": "^0.3.11", "typeorm-typedi-extensions": "^0.4.1", "typescript": "^4.9.3", - "typescript-transform-paths": "^3.4.4" + "typescript-transform-paths": "^3.4.6" }, "peerDependencies": { "class-validator": ">=0.14.0", From 3e9653d245643a0a62eb34cbf9735f54a557def5 Mon Sep 17 00:00:00 2001 From: carlocorradini Date: Wed, 8 Feb 2023 17:11:48 +0100 Subject: [PATCH 020/226] chore(fix): partial src eslint fix --- .eslintrc | 8 ++ src/decorators/Arg.ts | 6 +- src/decorators/Args.ts | 6 +- src/decorators/ArgsType.ts | 2 +- src/decorators/Authorized.ts | 8 +- src/decorators/Ctx.ts | 4 +- src/decorators/Directive.ts | 4 +- src/decorators/Extensions.ts | 8 +- src/decorators/Field.ts | 8 +- src/decorators/FieldResolver.ts | 8 +- src/decorators/Info.ts | 4 +- src/decorators/InputType.ts | 4 +- src/decorators/InterfaceType.ts | 4 +- src/decorators/Mutation.ts | 6 +- src/decorators/ObjectType.ts | 4 +- src/decorators/PubSub.ts | 4 +- src/decorators/Query.ts | 6 +- src/decorators/Resolver.ts | 5 +- src/decorators/Root.ts | 6 +- src/decorators/Subscription.ts | 11 +- src/decorators/UseMiddleware.ts | 10 +- src/decorators/createMethodDecorator.ts | 2 +- src/decorators/createParamDecorator.ts | 6 +- src/decorators/enums.ts | 2 +- src/decorators/types.ts | 5 +- src/decorators/unions.ts | 6 +- src/errors/ConflictingDefaultValuesError.ts | 4 +- src/errors/InterfaceResolveTypeError.ts | 2 +- src/errors/UnionResolveTypeError.ts | 2 +- src/errors/UnmetGraphQLPeerDependencyError.ts | 2 +- src/errors/WrongNullableListOptionError.ts | 2 +- src/helpers/auth-middleware.ts | 8 +- src/helpers/decorators.ts | 2 +- src/helpers/filesystem.ts | 6 +- src/helpers/findType.ts | 4 +- src/helpers/params.ts | 6 +- src/helpers/resolver-metadata.ts | 6 +- src/helpers/types.ts | 38 +++---- src/interfaces/TypeResolver.ts | 1 - src/interfaces/ValidatorFn.ts | 2 +- src/metadata/definitions/enum-metadata.ts | 2 +- src/metadata/definitions/field-metadata.ts | 6 +- .../definitions/interface-class-metadata.ts | 2 +- .../definitions/middleware-metadata.ts | 2 +- src/metadata/definitions/param-metadata.ts | 6 +- src/metadata/definitions/resolver-metadata.ts | 7 +- src/metadata/definitions/union-metadata.ts | 2 +- src/metadata/metadata-storage.ts | 6 +- src/metadata/utils.ts | 9 +- src/resolvers/convert-args.ts | 10 +- src/resolvers/create.ts | 19 ++-- src/resolvers/helpers.ts | 16 +-- src/resolvers/validate-arg.ts | 7 +- src/schema/build-context.ts | 9 +- src/schema/definition-node.ts | 103 +++++++++--------- src/schema/schema-generator.ts | 22 ++-- src/utils/buildSchema.ts | 80 +++++++------- src/utils/buildTypeDefsAndResolvers.ts | 13 +-- src/utils/container.ts | 3 +- src/utils/createResolversMap.ts | 69 ++++++------ src/utils/emitSchemaDefinitionFile.ts | 13 +-- src/utils/graphql-version.ts | 3 +- 62 files changed, 316 insertions(+), 325 deletions(-) diff --git a/.eslintrc b/.eslintrc index 2fb4ae273..90e31d1b2 100644 --- a/.eslintrc +++ b/.eslintrc @@ -49,6 +49,14 @@ "tsdoc/syntax": "warn", "import/no-default-export": "error", "import/prefer-default-export": "off", + "@typescript-eslint/no-unused-vars": [ + "warn", + { + "argsIgnorePattern": "^_", + "varsIgnorePattern": "^_", + "caughtErrorsIgnorePattern": "^_" + } + ], "@typescript-eslint/ban-types": [ "error", { diff --git a/src/decorators/Arg.ts b/src/decorators/Arg.ts index e7c4f9e7c..01f9ba1fc 100644 --- a/src/decorators/Arg.ts +++ b/src/decorators/Arg.ts @@ -1,3 +1,6 @@ +import { getMetadataStorage } from "~/metadata/getMetadataStorage"; +import { getParamInfo } from "~/helpers/params"; +import { getTypeDecoratorParams } from "~/helpers/decorators"; import { ReturnTypeFunc, DecoratorTypeOptions, @@ -5,9 +8,6 @@ import { ValidateOptions, DeprecationOptions, } from "./types"; -import { getMetadataStorage } from "../metadata/getMetadataStorage"; -import { getParamInfo } from "../helpers/params"; -import { getTypeDecoratorParams } from "../helpers/decorators"; export type ArgOptions = DecoratorTypeOptions & DescriptionOptions & diff --git a/src/decorators/Args.ts b/src/decorators/Args.ts index 464ec5f0a..dd46ad225 100644 --- a/src/decorators/Args.ts +++ b/src/decorators/Args.ts @@ -1,7 +1,7 @@ -import { getMetadataStorage } from "../metadata/getMetadataStorage"; -import { getParamInfo } from "../helpers/params"; +import { getMetadataStorage } from "~/metadata/getMetadataStorage"; +import { getParamInfo } from "~/helpers/params"; +import { getTypeDecoratorParams } from "~/helpers/decorators"; import { ValidateOptions, ReturnTypeFunc } from "./types"; -import { getTypeDecoratorParams } from "../helpers/decorators"; export function Args(): ParameterDecorator; export function Args(options: ValidateOptions): ParameterDecorator; diff --git a/src/decorators/ArgsType.ts b/src/decorators/ArgsType.ts index 412bd1717..967f57672 100644 --- a/src/decorators/ArgsType.ts +++ b/src/decorators/ArgsType.ts @@ -1,4 +1,4 @@ -import { getMetadataStorage } from "../metadata/getMetadataStorage"; +import { getMetadataStorage } from "~/metadata/getMetadataStorage"; export function ArgsType(): ClassDecorator { return target => { diff --git a/src/decorators/Authorized.ts b/src/decorators/Authorized.ts index 80a1504cf..709caea41 100644 --- a/src/decorators/Authorized.ts +++ b/src/decorators/Authorized.ts @@ -1,6 +1,6 @@ -import { getMetadataStorage } from "../metadata/getMetadataStorage"; -import { SymbolKeysNotSupportedError } from "../errors"; -import { getArrayFromOverloadedRest } from "../helpers/decorators"; +import { getMetadataStorage } from "~/metadata/getMetadataStorage"; +import { SymbolKeysNotSupportedError } from "~/errors"; +import { getArrayFromOverloadedRest } from "~/helpers/decorators"; import { MethodAndPropDecorator } from "./types"; export function Authorized(): MethodAndPropDecorator; @@ -13,7 +13,7 @@ export function Authorized( ): MethodDecorator | PropertyDecorator { const roles = getArrayFromOverloadedRest(rolesOrRolesArray); - return (prototype, propertyKey, descriptor) => { + return (prototype, propertyKey, _descriptor) => { if (typeof propertyKey === "symbol") { throw new SymbolKeysNotSupportedError(); } diff --git a/src/decorators/Ctx.ts b/src/decorators/Ctx.ts index 47332cb36..78bb1ea55 100644 --- a/src/decorators/Ctx.ts +++ b/src/decorators/Ctx.ts @@ -1,5 +1,5 @@ -import { getMetadataStorage } from "../metadata/getMetadataStorage"; -import { SymbolKeysNotSupportedError } from "../errors"; +import { getMetadataStorage } from "~/metadata/getMetadataStorage"; +import { SymbolKeysNotSupportedError } from "~/errors"; export function Ctx(propertyName?: string): ParameterDecorator { return (prototype, propertyKey, parameterIndex) => { diff --git a/src/decorators/Directive.ts b/src/decorators/Directive.ts index 767705c5e..8bda78c9c 100644 --- a/src/decorators/Directive.ts +++ b/src/decorators/Directive.ts @@ -1,6 +1,6 @@ +import { SymbolKeysNotSupportedError } from "~/errors"; +import { getMetadataStorage } from "~/metadata/getMetadataStorage"; import { MethodAndPropDecorator } from "./types"; -import { SymbolKeysNotSupportedError } from "../errors"; -import { getMetadataStorage } from "../metadata/getMetadataStorage"; export function Directive(sdl: string): MethodAndPropDecorator & ClassDecorator; export function Directive( diff --git a/src/decorators/Extensions.ts b/src/decorators/Extensions.ts index 276f300df..bc68850fe 100644 --- a/src/decorators/Extensions.ts +++ b/src/decorators/Extensions.ts @@ -1,13 +1,13 @@ +import { SymbolKeysNotSupportedError } from "~/errors"; +import { getMetadataStorage } from "~/metadata/getMetadataStorage"; +import { ExtensionsMetadata } from "~/metadata/definitions"; import { MethodAndPropDecorator } from "./types"; -import { SymbolKeysNotSupportedError } from "../errors"; -import { getMetadataStorage } from "../metadata/getMetadataStorage"; -import { ExtensionsMetadata } from "../metadata/definitions"; export function Extensions(extensions: ExtensionsMetadata): MethodAndPropDecorator & ClassDecorator; export function Extensions( extensions: ExtensionsMetadata, ): MethodDecorator | PropertyDecorator | ClassDecorator { - return (targetOrPrototype, propertyKey, descriptor) => { + return (targetOrPrototype, propertyKey, _descriptor) => { if (typeof propertyKey === "symbol") { throw new SymbolKeysNotSupportedError(); } diff --git a/src/decorators/Field.ts b/src/decorators/Field.ts index 77c17854c..60f845029 100644 --- a/src/decorators/Field.ts +++ b/src/decorators/Field.ts @@ -1,8 +1,8 @@ -import { getMetadataStorage } from "../metadata/getMetadataStorage"; +import { getMetadataStorage } from "~/metadata/getMetadataStorage"; +import { findType } from "~/helpers/findType"; +import { getTypeDecoratorParams } from "~/helpers/decorators"; +import { SymbolKeysNotSupportedError } from "~/errors"; import { ReturnTypeFunc, AdvancedOptions, MethodAndPropDecorator } from "./types"; -import { findType } from "../helpers/findType"; -import { getTypeDecoratorParams } from "../helpers/decorators"; -import { SymbolKeysNotSupportedError } from "../errors"; export type FieldOptions = AdvancedOptions & { /** Set to `true` to disable auth and all middlewares stack for this field resolver */ diff --git a/src/decorators/FieldResolver.ts b/src/decorators/FieldResolver.ts index 1fc6820d1..d196fd172 100644 --- a/src/decorators/FieldResolver.ts +++ b/src/decorators/FieldResolver.ts @@ -1,8 +1,8 @@ -import { getMetadataStorage } from "../metadata/getMetadataStorage"; +import { getMetadataStorage } from "~/metadata/getMetadataStorage"; +import { SymbolKeysNotSupportedError } from "~/errors"; +import { getTypeDecoratorParams } from "~/helpers/decorators"; +import { findType } from "~/helpers/findType"; import { ReturnTypeFunc, AdvancedOptions, TypeValueThunk, TypeOptions } from "./types"; -import { SymbolKeysNotSupportedError } from "../errors"; -import { getTypeDecoratorParams } from "../helpers/decorators"; -import { findType } from "../helpers/findType"; export function FieldResolver(): MethodDecorator; export function FieldResolver(options: AdvancedOptions): MethodDecorator; diff --git a/src/decorators/Info.ts b/src/decorators/Info.ts index fb5f37081..ec0738ee4 100644 --- a/src/decorators/Info.ts +++ b/src/decorators/Info.ts @@ -1,5 +1,5 @@ -import { getMetadataStorage } from "../metadata/getMetadataStorage"; -import { SymbolKeysNotSupportedError } from "../errors"; +import { getMetadataStorage } from "~/metadata/getMetadataStorage"; +import { SymbolKeysNotSupportedError } from "~/errors"; export function Info(): ParameterDecorator { return (prototype, propertyKey, parameterIndex) => { diff --git a/src/decorators/InputType.ts b/src/decorators/InputType.ts index 5b54b28a6..3ac782ff0 100644 --- a/src/decorators/InputType.ts +++ b/src/decorators/InputType.ts @@ -1,5 +1,5 @@ -import { getMetadataStorage } from "../metadata/getMetadataStorage"; -import { getNameDecoratorParams } from "../helpers/decorators"; +import { getMetadataStorage } from "~/metadata/getMetadataStorage"; +import { getNameDecoratorParams } from "~/helpers/decorators"; import { DescriptionOptions, AbstractClassOptions } from "./types"; export type InputTypeOptions = DescriptionOptions & AbstractClassOptions; diff --git a/src/decorators/InterfaceType.ts b/src/decorators/InterfaceType.ts index 006b05f84..b7c36d6e6 100644 --- a/src/decorators/InterfaceType.ts +++ b/src/decorators/InterfaceType.ts @@ -1,5 +1,5 @@ -import { getMetadataStorage } from "../metadata/getMetadataStorage"; -import { getNameDecoratorParams } from "../helpers/decorators"; +import { getMetadataStorage } from "~/metadata/getMetadataStorage"; +import { getNameDecoratorParams } from "~/helpers/decorators"; import { DescriptionOptions, AbstractClassOptions, diff --git a/src/decorators/Mutation.ts b/src/decorators/Mutation.ts index e4a98f6ba..04af7e013 100644 --- a/src/decorators/Mutation.ts +++ b/src/decorators/Mutation.ts @@ -1,7 +1,7 @@ +import { getMetadataStorage } from "~/metadata/getMetadataStorage"; +import { getResolverMetadata } from "~/helpers/resolver-metadata"; +import { getTypeDecoratorParams } from "~/helpers/decorators"; import { ReturnTypeFunc, AdvancedOptions } from "./types"; -import { getMetadataStorage } from "../metadata/getMetadataStorage"; -import { getResolverMetadata } from "../helpers/resolver-metadata"; -import { getTypeDecoratorParams } from "../helpers/decorators"; export function Mutation(): MethodDecorator; export function Mutation(options: AdvancedOptions): MethodDecorator; diff --git a/src/decorators/ObjectType.ts b/src/decorators/ObjectType.ts index 68cfb5d81..f6c93894e 100644 --- a/src/decorators/ObjectType.ts +++ b/src/decorators/ObjectType.ts @@ -1,5 +1,5 @@ -import { getMetadataStorage } from "../metadata/getMetadataStorage"; -import { getNameDecoratorParams } from "../helpers/decorators"; +import { getMetadataStorage } from "~/metadata/getMetadataStorage"; +import { getNameDecoratorParams } from "~/helpers/decorators"; import { DescriptionOptions, AbstractClassOptions, ImplementsClassOptions } from "./types"; export type ObjectTypeOptions = DescriptionOptions & diff --git a/src/decorators/PubSub.ts b/src/decorators/PubSub.ts index 94d69577f..7e4b1083f 100644 --- a/src/decorators/PubSub.ts +++ b/src/decorators/PubSub.ts @@ -1,5 +1,5 @@ -import { getMetadataStorage } from "../metadata/getMetadataStorage"; -import { SymbolKeysNotSupportedError } from "../errors"; +import { getMetadataStorage } from "~/metadata/getMetadataStorage"; +import { SymbolKeysNotSupportedError } from "~/errors"; export function PubSub(triggerKey?: string): ParameterDecorator { return (prototype, propertyKey, parameterIndex) => { diff --git a/src/decorators/Query.ts b/src/decorators/Query.ts index 392cd81f4..f1299b0b3 100644 --- a/src/decorators/Query.ts +++ b/src/decorators/Query.ts @@ -1,7 +1,7 @@ +import { getMetadataStorage } from "~/metadata/getMetadataStorage"; +import { getResolverMetadata } from "~/helpers/resolver-metadata"; +import { getTypeDecoratorParams } from "~/helpers/decorators"; import { ReturnTypeFunc, AdvancedOptions } from "./types"; -import { getMetadataStorage } from "../metadata/getMetadataStorage"; -import { getResolverMetadata } from "../helpers/resolver-metadata"; -import { getTypeDecoratorParams } from "../helpers/decorators"; export function Query(): MethodDecorator; export function Query(options: AdvancedOptions): MethodDecorator; diff --git a/src/decorators/Resolver.ts b/src/decorators/Resolver.ts index cf80e78c4..aba72dabe 100644 --- a/src/decorators/Resolver.ts +++ b/src/decorators/Resolver.ts @@ -1,6 +1,6 @@ -import { getMetadataStorage } from "../metadata/getMetadataStorage"; +import { getMetadataStorage } from "~/metadata/getMetadataStorage"; +import { ClassType } from "~/interfaces"; import { ClassTypeResolver, AbstractClassOptions } from "./types"; -import { ClassType } from "../interfaces"; export function Resolver(): ClassDecorator; export function Resolver(options: AbstractClassOptions): ClassDecorator; @@ -23,6 +23,7 @@ export function Resolver( : objectTypeOrTypeFuncOrMaybeOptions) || {}; return target => { + // eslint-disable-next-line no-nested-ternary const getObjectType = objectTypeOrTypeFunc ? objectTypeOrTypeFunc.prototype ? () => objectTypeOrTypeFunc as ClassType diff --git a/src/decorators/Root.ts b/src/decorators/Root.ts index bc218c812..4f94688c3 100644 --- a/src/decorators/Root.ts +++ b/src/decorators/Root.ts @@ -1,7 +1,7 @@ -import { getMetadataStorage } from "../metadata/getMetadataStorage"; -import { findType } from "../helpers/findType"; +import { getMetadataStorage } from "~/metadata/getMetadataStorage"; +import { findType } from "~/helpers/findType"; +import { SymbolKeysNotSupportedError } from "~/errors"; import { TypeValueThunk } from "./types"; -import { SymbolKeysNotSupportedError } from "../errors"; export function Root(propertyName?: string): ParameterDecorator { return (prototype, propertyKey, parameterIndex) => { diff --git a/src/decorators/Subscription.ts b/src/decorators/Subscription.ts index cb1bcd4a6..44ed67c33 100644 --- a/src/decorators/Subscription.ts +++ b/src/decorators/Subscription.ts @@ -1,16 +1,15 @@ import { ResolverFn } from "graphql-subscriptions"; - +import { getMetadataStorage } from "~/metadata/getMetadataStorage"; +import { getResolverMetadata } from "~/helpers/resolver-metadata"; +import { getTypeDecoratorParams } from "~/helpers/decorators"; +import { MissingSubscriptionTopicsError } from "~/errors"; +import { MergeExclusive } from "~/utils/types"; import { ReturnTypeFunc, AdvancedOptions, SubscriptionFilterFunc, SubscriptionTopicFunc, } from "./types"; -import { getMetadataStorage } from "../metadata/getMetadataStorage"; -import { getResolverMetadata } from "../helpers/resolver-metadata"; -import { getTypeDecoratorParams } from "../helpers/decorators"; -import { MissingSubscriptionTopicsError } from "../errors"; -import { MergeExclusive } from "../utils/types"; interface PubSubOptions { topics: string | string[] | SubscriptionTopicFunc; diff --git a/src/decorators/UseMiddleware.ts b/src/decorators/UseMiddleware.ts index ba52449c5..bded78dff 100644 --- a/src/decorators/UseMiddleware.ts +++ b/src/decorators/UseMiddleware.ts @@ -1,7 +1,7 @@ -import { SymbolKeysNotSupportedError } from "../errors"; -import { Middleware } from "../interfaces/Middleware"; -import { getMetadataStorage } from "../metadata/getMetadataStorage"; -import { getArrayFromOverloadedRest } from "../helpers/decorators"; +import { SymbolKeysNotSupportedError } from "~/errors"; +import { Middleware } from "~/interfaces/Middleware"; +import { getMetadataStorage } from "~/metadata/getMetadataStorage"; +import { getArrayFromOverloadedRest } from "~/helpers/decorators"; import { MethodAndPropDecorator } from "./types"; export function UseMiddleware(middlewares: Array>): MethodAndPropDecorator; @@ -11,7 +11,7 @@ export function UseMiddleware( ): MethodDecorator | PropertyDecorator { const middlewares = getArrayFromOverloadedRest(middlewaresOrMiddlewareArray); - return (prototype, propertyKey, descriptor) => { + return (prototype, propertyKey, _descriptor) => { if (typeof propertyKey === "symbol") { throw new SymbolKeysNotSupportedError(); } diff --git a/src/decorators/createMethodDecorator.ts b/src/decorators/createMethodDecorator.ts index a81b0583d..e26e45f8b 100644 --- a/src/decorators/createMethodDecorator.ts +++ b/src/decorators/createMethodDecorator.ts @@ -1,5 +1,5 @@ +import { MiddlewareFn } from "~/interfaces/Middleware"; import { UseMiddleware } from "./UseMiddleware"; -import { MiddlewareFn } from "../interfaces/Middleware"; export function createMethodDecorator( resolver: MiddlewareFn, diff --git a/src/decorators/createParamDecorator.ts b/src/decorators/createParamDecorator.ts index 9f3a288b2..50c556cfb 100644 --- a/src/decorators/createParamDecorator.ts +++ b/src/decorators/createParamDecorator.ts @@ -1,6 +1,6 @@ -import { ResolverData } from "../interfaces"; -import { getMetadataStorage } from "../metadata/getMetadataStorage"; -import { SymbolKeysNotSupportedError } from "../errors"; +import { ResolverData } from "~/interfaces"; +import { getMetadataStorage } from "~/metadata/getMetadataStorage"; +import { SymbolKeysNotSupportedError } from "~/errors"; export function createParamDecorator( resolver: (resolverData: ResolverData) => any, diff --git a/src/decorators/enums.ts b/src/decorators/enums.ts index 31c79529d..becba5104 100644 --- a/src/decorators/enums.ts +++ b/src/decorators/enums.ts @@ -1,5 +1,5 @@ +import { getMetadataStorage } from "~/metadata/getMetadataStorage"; import { EnumConfig } from "./types"; -import { getMetadataStorage } from "../metadata/getMetadataStorage"; export function registerEnumType( enumObj: TEnum, diff --git a/src/decorators/types.ts b/src/decorators/types.ts index 4db122c70..ca415cdf7 100644 --- a/src/decorators/types.ts +++ b/src/decorators/types.ts @@ -1,13 +1,12 @@ import { GraphQLScalarType } from "graphql"; - import { ResolverFilterData, ClassType, ResolverTopicData, Complexity, TypeResolver, -} from "../interfaces"; -import { ValidateSettings } from "../schema/build-context"; +} from "~/interfaces"; +import { ValidateSettings } from "~/schema/build-context"; export type RecursiveArray = Array | TValue>; diff --git a/src/decorators/unions.ts b/src/decorators/unions.ts index e31e37552..c8a47d172 100644 --- a/src/decorators/unions.ts +++ b/src/decorators/unions.ts @@ -1,6 +1,6 @@ -import { ClassType } from "../interfaces"; -import { getMetadataStorage } from "../metadata/getMetadataStorage"; -import { UnionFromClasses } from "../helpers/utils"; +import { ClassType } from "~/interfaces"; +import { getMetadataStorage } from "~/metadata/getMetadataStorage"; +import { UnionFromClasses } from "~/helpers/utils"; import { ResolveTypeOptions } from "./types"; export interface UnionTypeConfig diff --git a/src/errors/ConflictingDefaultValuesError.ts b/src/errors/ConflictingDefaultValuesError.ts index 3d4459843..514f3316c 100644 --- a/src/errors/ConflictingDefaultValuesError.ts +++ b/src/errors/ConflictingDefaultValuesError.ts @@ -2,8 +2,8 @@ export class ConflictingDefaultValuesError extends Error { constructor( typeName: string, fieldName: string, - defaultValueFromDecorator: any, - defaultValueFromInitializer: any, + defaultValueFromDecorator: unknown, + defaultValueFromInitializer: unknown, ) { super( `The '${fieldName}' field of '${typeName}' has conflicting default values. ` + diff --git a/src/errors/InterfaceResolveTypeError.ts b/src/errors/InterfaceResolveTypeError.ts index 48f404e81..49adf89ac 100644 --- a/src/errors/InterfaceResolveTypeError.ts +++ b/src/errors/InterfaceResolveTypeError.ts @@ -1,4 +1,4 @@ -import { ClassMetadata } from "../metadata/definitions"; +import { ClassMetadata } from "~/metadata/definitions"; export class InterfaceResolveTypeError extends Error { constructor(interfaceMetadata: ClassMetadata) { diff --git a/src/errors/UnionResolveTypeError.ts b/src/errors/UnionResolveTypeError.ts index 1daa228f3..039de8a00 100644 --- a/src/errors/UnionResolveTypeError.ts +++ b/src/errors/UnionResolveTypeError.ts @@ -1,4 +1,4 @@ -import { UnionMetadata } from "../metadata/definitions"; +import { UnionMetadata } from "~/metadata/definitions"; export class UnionResolveTypeError extends Error { constructor(unionMetadata: UnionMetadata) { diff --git a/src/errors/UnmetGraphQLPeerDependencyError.ts b/src/errors/UnmetGraphQLPeerDependencyError.ts index 53f140786..58a7a7cfb 100644 --- a/src/errors/UnmetGraphQLPeerDependencyError.ts +++ b/src/errors/UnmetGraphQLPeerDependencyError.ts @@ -1,7 +1,7 @@ import { getPeerDependencyGraphQLRequirement, getInstalledGraphQLVersion, -} from "../utils/graphql-version"; +} from "~/utils/graphql-version"; export class UnmetGraphQLPeerDependencyError extends Error { constructor() { diff --git a/src/errors/WrongNullableListOptionError.ts b/src/errors/WrongNullableListOptionError.ts index 2544bcbb1..ce5eb64df 100644 --- a/src/errors/WrongNullableListOptionError.ts +++ b/src/errors/WrongNullableListOptionError.ts @@ -1,4 +1,4 @@ -import { NullableListOptions } from "../decorators/types"; +import { NullableListOptions } from "~/decorators/types"; export class WrongNullableListOptionError extends Error { constructor( diff --git a/src/helpers/auth-middleware.ts b/src/helpers/auth-middleware.ts index 775bb810b..d17785aa0 100644 --- a/src/helpers/auth-middleware.ts +++ b/src/helpers/auth-middleware.ts @@ -1,7 +1,7 @@ -import { MiddlewareFn } from "../interfaces/Middleware"; -import { AuthChecker, AuthCheckerFn, AuthMode } from "../interfaces"; -import { UnauthorizedError, ForbiddenError } from "../errors"; -import { IOCContainer } from "../utils/container"; +import { MiddlewareFn } from "~/interfaces/Middleware"; +import { AuthChecker, AuthCheckerFn, AuthMode } from "~/interfaces"; +import { UnauthorizedError, ForbiddenError } from "~/errors"; +import { IOCContainer } from "~/utils/container"; export function AuthMiddleware( authChecker: AuthChecker, diff --git a/src/helpers/decorators.ts b/src/helpers/decorators.ts index e3a97a0ee..5c8c7cb14 100644 --- a/src/helpers/decorators.ts +++ b/src/helpers/decorators.ts @@ -1,4 +1,4 @@ -import { ReturnTypeFunc, DescriptionOptions } from "../decorators/types"; +import { ReturnTypeFunc, DescriptionOptions } from "~/decorators/types"; export interface TypeDecoratorParams { options: Partial; diff --git a/src/helpers/filesystem.ts b/src/helpers/filesystem.ts index 4b88d13e8..e9b0fbb50 100644 --- a/src/helpers/filesystem.ts +++ b/src/helpers/filesystem.ts @@ -1,6 +1,6 @@ -import path from "path"; -import fs from "fs"; -import { promisify } from "util"; +import path from "node:path"; +import fs from "node:fs"; +import { promisify } from "node:util"; export const fsMkdir = promisify(fs.mkdir); export const fsWriteFile = promisify(fs.writeFile); diff --git a/src/helpers/findType.ts b/src/helpers/findType.ts index 8f026f9e6..c3ea96bb3 100644 --- a/src/helpers/findType.ts +++ b/src/helpers/findType.ts @@ -4,9 +4,9 @@ import { TypeValueThunk, TypeValue, RecursiveArray, -} from "../decorators/types"; +} from "~/decorators/types"; +import { NoExplicitTypeError } from "~/errors"; import { bannedTypes } from "./returnTypes"; -import { NoExplicitTypeError } from "../errors"; export type MetadataKey = "design:type" | "design:returntype" | "design:paramtypes"; diff --git a/src/helpers/params.ts b/src/helpers/params.ts index 16538f314..2452c1512 100644 --- a/src/helpers/params.ts +++ b/src/helpers/params.ts @@ -1,7 +1,7 @@ +import { ReturnTypeFunc, TypeOptions, ValidateOptions } from "~/decorators/types"; +import { CommonArgMetadata } from "~/metadata/definitions"; +import { SymbolKeysNotSupportedError } from "~/errors"; import { findType } from "./findType"; -import { ReturnTypeFunc, TypeOptions, ValidateOptions } from "../decorators/types"; -import { CommonArgMetadata } from "../metadata/definitions"; -import { SymbolKeysNotSupportedError } from "../errors"; export interface ParamInfo { prototype: Object; diff --git a/src/helpers/resolver-metadata.ts b/src/helpers/resolver-metadata.ts index 2a311ca4f..1046bb396 100644 --- a/src/helpers/resolver-metadata.ts +++ b/src/helpers/resolver-metadata.ts @@ -1,7 +1,7 @@ -import { ResolverMetadata } from "../metadata/definitions"; -import { ReturnTypeFunc, AdvancedOptions } from "../decorators/types"; +import { ResolverMetadata } from "~/metadata/definitions"; +import { ReturnTypeFunc, AdvancedOptions } from "~/decorators/types"; +import { SymbolKeysNotSupportedError } from "~/errors"; import { findType } from "./findType"; -import { SymbolKeysNotSupportedError } from "../errors"; export function getResolverMetadata( prototype: object, diff --git a/src/helpers/types.ts b/src/helpers/types.ts index 01ecaee3e..f2435b036 100644 --- a/src/helpers/types.ts +++ b/src/helpers/types.ts @@ -8,11 +8,24 @@ import { GraphQLBoolean, } from "graphql"; -import { TypeOptions } from "../decorators/types"; -import { GraphQLTimestamp } from "../scalars/timestamp"; -import { GraphQLISODateTime } from "../scalars/isodate"; -import { BuildContext } from "../schema/build-context"; -import { WrongNullableListOptionError } from "../errors"; +import { TypeOptions } from "~/decorators/types"; +import { GraphQLTimestamp } from "~/scalars/timestamp"; +import { GraphQLISODateTime } from "~/scalars/isodate"; +import { BuildContext } from "~/schema/build-context"; +import { WrongNullableListOptionError } from "~/errors"; + +function wrapTypeInNestedList( + targetType: GraphQLType, + depth: number, + nullable: boolean, +): GraphQLList { + const targetTypeNonNull = nullable ? targetType : new GraphQLNonNull(targetType); + + if (depth === 0) { + return targetType as GraphQLList; + } + return wrapTypeInNestedList(new GraphQLList(targetTypeNonNull), depth - 1, nullable); +} export function convertTypeIfScalar(type: any): GraphQLScalarType | undefined { if (type instanceof GraphQLScalarType) { @@ -99,23 +112,10 @@ export function convertToType(Target: any, data?: object): object | undefined { } export function getEnumValuesMap(enumObject: T) { - const enumKeys = Object.keys(enumObject).filter(key => isNaN(parseInt(key, 10))); + const enumKeys = Object.keys(enumObject).filter(key => Number.isNaN(parseInt(key, 10))); const enumMap = enumKeys.reduce((map, key) => { map[key] = enumObject[key as keyof T]; return map; }, {}); return enumMap; } - -function wrapTypeInNestedList( - targetType: GraphQLType, - depth: number, - nullable: boolean, -): GraphQLList { - const targetTypeNonNull = nullable ? targetType : new GraphQLNonNull(targetType); - - if (depth === 0) { - return targetType as GraphQLList; - } - return wrapTypeInNestedList(new GraphQLList(targetTypeNonNull), depth - 1, nullable); -} diff --git a/src/interfaces/TypeResolver.ts b/src/interfaces/TypeResolver.ts index bb6340355..c5eb7a12c 100644 --- a/src/interfaces/TypeResolver.ts +++ b/src/interfaces/TypeResolver.ts @@ -1,5 +1,4 @@ import { GraphQLTypeResolver } from "graphql"; - import { ClassType } from "./ClassType"; import { MaybePromise, Maybe } from "./Maybe"; diff --git a/src/interfaces/ValidatorFn.ts b/src/interfaces/ValidatorFn.ts index 8ef677414..25e28d236 100644 --- a/src/interfaces/ValidatorFn.ts +++ b/src/interfaces/ValidatorFn.ts @@ -1,4 +1,4 @@ -import { TypeValue } from "../decorators/types"; +import { TypeValue } from "~/decorators/types"; export type ValidatorFn = ( argValue: T | undefined, diff --git a/src/metadata/definitions/enum-metadata.ts b/src/metadata/definitions/enum-metadata.ts index d6fb6b73b..08d0a53fc 100644 --- a/src/metadata/definitions/enum-metadata.ts +++ b/src/metadata/definitions/enum-metadata.ts @@ -1,4 +1,4 @@ -import { EnumValuesConfig } from "../../decorators/types"; +import { EnumValuesConfig } from "~/decorators/types"; export interface EnumMetadata { enumObj: object; diff --git a/src/metadata/definitions/field-metadata.ts b/src/metadata/definitions/field-metadata.ts index d5ce485c4..6d76f6578 100644 --- a/src/metadata/definitions/field-metadata.ts +++ b/src/metadata/definitions/field-metadata.ts @@ -1,7 +1,7 @@ +import { TypeValueThunk, TypeOptions } from "~/decorators/types"; +import { Middleware } from "~/interfaces/Middleware"; +import { Complexity } from "~/interfaces"; import { ParamMetadata } from "./param-metadata"; -import { TypeValueThunk, TypeOptions } from "../../decorators/types"; -import { Middleware } from "../../interfaces/Middleware"; -import { Complexity } from "../../interfaces"; import { DirectiveMetadata } from "./directive-metadata"; import { ExtensionsMetadata } from "./extensions-metadata"; diff --git a/src/metadata/definitions/interface-class-metadata.ts b/src/metadata/definitions/interface-class-metadata.ts index abc8981e0..8292c78dc 100644 --- a/src/metadata/definitions/interface-class-metadata.ts +++ b/src/metadata/definitions/interface-class-metadata.ts @@ -1,5 +1,5 @@ +import { TypeResolver } from "~/interfaces"; import { ClassMetadata } from "./class-metadata"; -import { TypeResolver } from "../../interfaces"; export interface InterfaceClassMetadata extends ClassMetadata { resolveType?: TypeResolver; diff --git a/src/metadata/definitions/middleware-metadata.ts b/src/metadata/definitions/middleware-metadata.ts index 07bf7ba9b..e0fa22775 100644 --- a/src/metadata/definitions/middleware-metadata.ts +++ b/src/metadata/definitions/middleware-metadata.ts @@ -1,4 +1,4 @@ -import { Middleware } from "../../interfaces/Middleware"; +import { Middleware } from "~/interfaces/Middleware"; export interface MiddlewareMetadata { target: Function; diff --git a/src/metadata/definitions/param-metadata.ts b/src/metadata/definitions/param-metadata.ts index ffa035422..05a51e469 100644 --- a/src/metadata/definitions/param-metadata.ts +++ b/src/metadata/definitions/param-metadata.ts @@ -1,6 +1,6 @@ -import { TypeValueThunk, TypeOptions } from "../../decorators/types"; -import { ResolverData } from "../../interfaces"; -import { ValidateSettings } from "../../schema/build-context"; +import { TypeValueThunk, TypeOptions } from "~/decorators/types"; +import { ResolverData } from "~/interfaces"; +import { ValidateSettings } from "~/schema/build-context"; export interface BasicParamMetadata { target: Function; diff --git a/src/metadata/definitions/resolver-metadata.ts b/src/metadata/definitions/resolver-metadata.ts index 913039be1..715efb61f 100644 --- a/src/metadata/definitions/resolver-metadata.ts +++ b/src/metadata/definitions/resolver-metadata.ts @@ -1,15 +1,14 @@ import { ResolverFn } from "graphql-subscriptions"; - import { TypeValueThunk, TypeOptions, ClassTypeResolver, SubscriptionFilterFunc, SubscriptionTopicFunc, -} from "../../decorators/types"; +} from "~/decorators/types"; +import { Middleware } from "~/interfaces/Middleware"; +import { Complexity } from "~/interfaces"; import { ParamMetadata } from "./param-metadata"; -import { Middleware } from "../../interfaces/Middleware"; -import { Complexity } from "../../interfaces"; import { DirectiveMetadata } from "./directive-metadata"; import { ExtensionsMetadata } from "./extensions-metadata"; diff --git a/src/metadata/definitions/union-metadata.ts b/src/metadata/definitions/union-metadata.ts index 067077060..7556eb362 100644 --- a/src/metadata/definitions/union-metadata.ts +++ b/src/metadata/definitions/union-metadata.ts @@ -1,4 +1,4 @@ -import { ClassType, TypeResolver } from "../../interfaces"; +import { ClassType, TypeResolver } from "~/interfaces"; export interface UnionMetadata { getClassTypes: () => ClassType[]; diff --git a/src/metadata/metadata-storage.ts b/src/metadata/metadata-storage.ts index ba94add67..91a91fa04 100644 --- a/src/metadata/metadata-storage.ts +++ b/src/metadata/metadata-storage.ts @@ -1,3 +1,6 @@ +import { ClassType } from "~/interfaces"; +import { NoExplicitTypeError } from "~/errors"; +import { SchemaGeneratorOptions } from "~/schema/schema-generator"; import { ResolverMetadata, ClassMetadata, @@ -16,8 +19,6 @@ import { MiddlewareMetadata, ExtensionsMetadata, } from "./definitions"; -import { ClassType } from "../interfaces"; -import { NoExplicitTypeError } from "../errors"; import { mapSuperResolverHandlers, mapMiddlewareMetadataToArray, @@ -27,7 +28,6 @@ import { import { ObjectClassMetadata } from "./definitions/object-class-metdata"; import { InterfaceClassMetadata } from "./definitions/interface-class-metadata"; import { DirectiveClassMetadata, DirectiveFieldMetadata } from "./definitions/directive-metadata"; -import { SchemaGeneratorOptions } from "../schema/schema-generator"; export class MetadataStorage { queries: ResolverMetadata[] = []; diff --git a/src/metadata/utils.ts b/src/metadata/utils.ts index e2672b416..d594f377b 100644 --- a/src/metadata/utils.ts +++ b/src/metadata/utils.ts @@ -1,15 +1,12 @@ +import { Middleware } from "~/interfaces/Middleware"; +import { isThrowing } from "~/helpers/isThrowing"; +import { ReflectMetadataMissingError } from "~/errors"; import { ResolverClassMetadata, BaseResolverMetadata, MiddlewareMetadata, FieldResolverMetadata, - ExtensionsClassMetadata, - ExtensionsFieldMetadata, - ExtensionsMetadata, } from "./definitions"; -import { Middleware } from "../interfaces/Middleware"; -import { isThrowing } from "../helpers/isThrowing"; -import { ReflectMetadataMissingError } from "../errors"; export function mapSuperResolverHandlers( definitions: T[], diff --git a/src/resolvers/convert-args.ts b/src/resolvers/convert-args.ts index 06a72b9ae..c5b89726b 100644 --- a/src/resolvers/convert-args.ts +++ b/src/resolvers/convert-args.ts @@ -1,8 +1,8 @@ -import { ArgParamMetadata, ClassMetadata, ArgsParamMetadata } from "../metadata/definitions"; -import { convertToType } from "../helpers/types"; -import { ArgsDictionary, ClassType } from "../interfaces"; -import { getMetadataStorage } from "../metadata/getMetadataStorage"; -import { TypeValue } from "../decorators/types"; +import { ArgParamMetadata, ClassMetadata, ArgsParamMetadata } from "~/metadata/definitions"; +import { convertToType } from "~/helpers/types"; +import { ArgsDictionary, ClassType } from "~/interfaces"; +import { getMetadataStorage } from "~/metadata/getMetadataStorage"; +import { TypeValue } from "~/decorators/types"; interface TransformationTreeField { name: string; diff --git a/src/resolvers/create.ts b/src/resolvers/create.ts index 03a7846cf..b0658cead 100644 --- a/src/resolvers/create.ts +++ b/src/resolvers/create.ts @@ -1,17 +1,12 @@ import { GraphQLFieldResolver } from "graphql"; - -import { - FieldResolverMetadata, - FieldMetadata, - BaseResolverMetadata, -} from "../metadata/definitions"; +import { FieldResolverMetadata, FieldMetadata, BaseResolverMetadata } from "~/metadata/definitions"; +import { convertToType } from "~/helpers/types"; +import { BuildContext } from "~/schema/build-context"; +import { ResolverData } from "~/interfaces"; +import isPromiseLike from "~/utils/isPromiseLike"; +import { AuthMiddleware } from "~/helpers/auth-middleware"; +import { IOCContainer } from "~/utils/container"; import { getParams, applyMiddlewares, applyAuthChecker } from "./helpers"; -import { convertToType } from "../helpers/types"; -import { BuildContext } from "../schema/build-context"; -import { ResolverData } from "../interfaces"; -import isPromiseLike from "../utils/isPromiseLike"; -import { AuthMiddleware } from "../helpers/auth-middleware"; -import { IOCContainer } from "../utils/container"; export function createHandlerResolver( resolverMetadata: BaseResolverMetadata, diff --git a/src/resolvers/helpers.ts b/src/resolvers/helpers.ts index f18e667b4..90189167b 100644 --- a/src/resolvers/helpers.ts +++ b/src/resolvers/helpers.ts @@ -1,15 +1,15 @@ import { PubSubEngine } from "graphql-subscriptions"; -import { ParamMetadata } from "../metadata/definitions"; -import { convertToType } from "../helpers/types"; +import { ParamMetadata } from "~/metadata/definitions"; +import { convertToType } from "~/helpers/types"; +import { ResolverData, AuthChecker, AuthMode } from "~/interfaces"; +import { Middleware, MiddlewareFn, MiddlewareClass } from "~/interfaces/Middleware"; +import { IOCContainer } from "~/utils/container"; +import { AuthMiddleware } from "~/helpers/auth-middleware"; +import isPromiseLike from "~/utils/isPromiseLike"; +import { ValidateSettings } from "~/schema/build-context"; import { validateArg } from "./validate-arg"; -import { ResolverData, AuthChecker, AuthMode } from "../interfaces"; -import { Middleware, MiddlewareFn, MiddlewareClass } from "../interfaces/Middleware"; -import { IOCContainer } from "../utils/container"; -import { AuthMiddleware } from "../helpers/auth-middleware"; import { convertArgsToInstance, convertArgToInstance } from "./convert-args"; -import isPromiseLike from "../utils/isPromiseLike"; -import { ValidateSettings } from "../schema/build-context"; export function getParams( params: ParamMetadata[], diff --git a/src/resolvers/validate-arg.ts b/src/resolvers/validate-arg.ts index adc070cf5..966b151f7 100644 --- a/src/resolvers/validate-arg.ts +++ b/src/resolvers/validate-arg.ts @@ -1,8 +1,7 @@ import type { ValidatorOptions } from "class-validator"; -import { TypeValue } from "../decorators/types"; - -import { ArgumentValidationError } from "../errors/ArgumentValidationError"; -import { ValidateSettings } from "../schema/build-context"; +import { TypeValue } from "~/decorators/types"; +import { ArgumentValidationError } from "~/errors/ArgumentValidationError"; +import { ValidateSettings } from "~/schema/build-context"; const shouldArgBeValidated = (argValue: unknown): boolean => argValue !== null && typeof argValue === "object"; diff --git a/src/schema/build-context.ts b/src/schema/build-context.ts index f4febae97..a1b4fdb80 100644 --- a/src/schema/build-context.ts +++ b/src/schema/build-context.ts @@ -1,11 +1,10 @@ import { GraphQLScalarType } from "graphql"; import type { ValidatorOptions } from "class-validator"; import { PubSubEngine, PubSub, PubSubOptions } from "graphql-subscriptions"; - -import { AuthChecker, AuthMode } from "../interfaces"; -import { Middleware } from "../interfaces/Middleware"; -import { ContainerType, ContainerGetter, IOCContainer } from "../utils/container"; -import { ValidatorFn } from "../interfaces/ValidatorFn"; +import { AuthChecker, AuthMode } from "~/interfaces"; +import { Middleware } from "~/interfaces/Middleware"; +import { ContainerType, ContainerGetter, IOCContainer } from "~/utils/container"; +import { ValidatorFn } from "~/interfaces/ValidatorFn"; export type DateScalarMode = "isoDate" | "timestamp"; diff --git a/src/schema/definition-node.ts b/src/schema/definition-node.ts index b4a376239..3a90b7c41 100644 --- a/src/schema/definition-node.ts +++ b/src/schema/definition-node.ts @@ -13,9 +13,58 @@ import { ConstArgumentNode, parseConstValue, } from "graphql"; +import { InvalidDirectiveError } from "~/errors"; +import { DirectiveMetadata } from "~/metadata/definitions"; -import { InvalidDirectiveError } from "../errors"; -import { DirectiveMetadata } from "../metadata/definitions"; +export function getDirectiveNode(directive: DirectiveMetadata): ConstDirectiveNode { + const { nameOrDefinition, args } = directive; + + if (nameOrDefinition === "") { + throw new InvalidDirectiveError( + "Please pass at-least one directive name or definition to the @Directive decorator", + ); + } + + if (!nameOrDefinition.startsWith("@")) { + return { + kind: Kind.DIRECTIVE, + name: { + kind: Kind.NAME, + value: nameOrDefinition, + }, + arguments: Object.keys(args).map(argKey => ({ + kind: Kind.ARGUMENT, + name: { + kind: Kind.NAME, + value: argKey, + }, + value: parseConstValue(args[argKey]), + })), + }; + } + + let parsed: DocumentNode; + try { + parsed = parse(`type String ${nameOrDefinition}`); + } catch (err) { + throw new InvalidDirectiveError( + `Error parsing directive definition "${directive.nameOrDefinition}"`, + ); + } + + const definitions = parsed.definitions as ObjectTypeDefinitionNode[]; + const directives = definitions + .filter(it => it.directives && it.directives.length > 0) + .map(it => it.directives!) + .reduce((acc, item) => [...acc, ...item]); // flatten the array + + if (directives.length !== 1) { + throw new InvalidDirectiveError( + `Please pass only one directive name or definition at a time to the @Directive decorator "${directive.nameOrDefinition}"`, + ); + } + return directives[0]; +} export function getObjectTypeDefinitionNode( name: string, @@ -125,53 +174,3 @@ export function getInterfaceTypeDefinitionNode( directives: directiveMetadata.map(getDirectiveNode), }; } - -export function getDirectiveNode(directive: DirectiveMetadata): ConstDirectiveNode { - const { nameOrDefinition, args } = directive; - - if (nameOrDefinition === "") { - throw new InvalidDirectiveError( - "Please pass at-least one directive name or definition to the @Directive decorator", - ); - } - - if (!nameOrDefinition.startsWith("@")) { - return { - kind: Kind.DIRECTIVE, - name: { - kind: Kind.NAME, - value: nameOrDefinition, - }, - arguments: Object.keys(args).map(argKey => ({ - kind: Kind.ARGUMENT, - name: { - kind: Kind.NAME, - value: argKey, - }, - value: parseConstValue(args[argKey]), - })), - }; - } - - let parsed: DocumentNode; - try { - parsed = parse(`type String ${nameOrDefinition}`); - } catch (err) { - throw new InvalidDirectiveError( - `Error parsing directive definition "${directive.nameOrDefinition}"`, - ); - } - - const definitions = parsed.definitions as ObjectTypeDefinitionNode[]; - const directives = definitions - .filter(it => it.directives && it.directives.length > 0) - .map(it => it.directives!) - .reduce((acc, item) => [...acc, ...item]); // flatten the array - - if (directives.length !== 1) { - throw new InvalidDirectiveError( - `Please pass only one directive name or definition at a time to the @Directive decorator "${directive.nameOrDefinition}"`, - ); - } - return directives[0]; -} diff --git a/src/schema/schema-generator.ts b/src/schema/schema-generator.ts index f1308ade0..d2d952eab 100644 --- a/src/schema/schema-generator.ts +++ b/src/schema/schema-generator.ts @@ -20,23 +20,22 @@ import { } from "graphql"; import { withFilter, ResolverFn } from "graphql-subscriptions"; -import { getMetadataStorage } from "../metadata/getMetadataStorage"; +import { getMetadataStorage } from "~/metadata/getMetadataStorage"; import { ResolverMetadata, ParamMetadata, ClassMetadata, SubscriptionResolverMetadata, FieldMetadata, -} from "../metadata/definitions"; -import { TypeOptions, TypeValue } from "../decorators/types"; -import { wrapWithTypeOptions, convertTypeIfScalar, getEnumValuesMap } from "../helpers/types"; +} from "~/metadata/definitions"; +import { TypeOptions, TypeValue } from "~/decorators/types"; +import { wrapWithTypeOptions, convertTypeIfScalar, getEnumValuesMap } from "~/helpers/types"; import { createHandlerResolver, createAdvancedFieldResolver, createBasicFieldResolver, wrapResolverWithAuthChecker, -} from "../resolvers/create"; -import { BuildContext, BuildContextOptions } from "./build-context"; +} from "~/resolvers/create"; import { UnionResolveTypeError, GeneratingSchemaError, @@ -44,10 +43,13 @@ import { ConflictingDefaultValuesError, InterfaceResolveTypeError, CannotDetermineGraphQLTypeError, -} from "../errors"; -import { ResolverFilterData, ResolverTopicData, TypeResolver } from "../interfaces"; +} from "~/errors"; +import { ResolverFilterData, ResolverTopicData, TypeResolver } from "~/interfaces"; +import { ensureInstalledCorrectGraphQLPackage } from "~/utils/graphql-version"; +import { ObjectClassMetadata } from "~/metadata/definitions/object-class-metdata"; +import { InterfaceClassMetadata } from "~/metadata/definitions/interface-class-metadata"; +import { BuildContext, BuildContextOptions } from "./build-context"; import { getFieldMetadataFromInputType, getFieldMetadataFromObjectType } from "./utils"; -import { ensureInstalledCorrectGraphQLPackage } from "../utils/graphql-version"; import { getFieldDefinitionNode, getInputObjectTypeDefinitionNode, @@ -55,8 +57,6 @@ import { getInterfaceTypeDefinitionNode, getObjectTypeDefinitionNode, } from "./definition-node"; -import { ObjectClassMetadata } from "../metadata/definitions/object-class-metdata"; -import { InterfaceClassMetadata } from "../metadata/definitions/interface-class-metadata"; interface AbstractInfo { isAbstract: boolean; diff --git a/src/utils/buildSchema.ts b/src/utils/buildSchema.ts index 80040e450..f60930b97 100644 --- a/src/utils/buildSchema.ts +++ b/src/utils/buildSchema.ts @@ -1,20 +1,55 @@ import { GraphQLSchema } from "graphql"; -import path from "path"; - -import { SchemaGenerator, SchemaGeneratorOptions } from "../schema/schema-generator"; -import { loadResolversFromGlob } from "../helpers/loadResolversFromGlob"; +import path from "node:path"; +import { SchemaGenerator, SchemaGeneratorOptions } from "~/schema/schema-generator"; +import { loadResolversFromGlob } from "~/helpers/loadResolversFromGlob"; +import { NonEmptyArray } from "~/interfaces/NonEmptyArray"; import { emitSchemaDefinitionFileSync, emitSchemaDefinitionFile, defaultPrintSchemaOptions, PrintSchemaOptions, } from "./emitSchemaDefinitionFile"; -import { NonEmptyArray } from "../interfaces/NonEmptyArray"; interface EmitSchemaFileOptions extends Partial { path?: string; } +function getEmitSchemaDefinitionFileOptions(buildSchemaOptions: BuildSchemaOptions): { + schemaFileName: string; + printSchemaOptions: PrintSchemaOptions; +} { + const defaultSchemaFilePath = path.resolve(process.cwd(), "schema.gql"); + return { + schemaFileName: + // eslint-disable-next-line no-nested-ternary + typeof buildSchemaOptions.emitSchemaFile === "string" + ? buildSchemaOptions.emitSchemaFile + : typeof buildSchemaOptions.emitSchemaFile === "object" + ? buildSchemaOptions.emitSchemaFile.path || defaultSchemaFilePath + : defaultSchemaFilePath, + printSchemaOptions: + typeof buildSchemaOptions.emitSchemaFile === "object" + ? { ...defaultPrintSchemaOptions, ...buildSchemaOptions.emitSchemaFile } + : defaultPrintSchemaOptions, + }; +} + +function loadResolvers(options: BuildSchemaOptions): Function[] | undefined { + // TODO: remove that check as it's covered by `NonEmptyArray` type guard + if (options.resolvers.length === 0) { + throw new Error("Empty `resolvers` array property found in `buildSchema` options!"); + } + if (options.resolvers.some((resolver: Function | string) => typeof resolver === "string")) { + (options.resolvers as string[]).forEach(resolver => { + if (typeof resolver === "string") { + loadResolversFromGlob(resolver); + } + }); + return undefined; + } + return options.resolvers as Function[]; +} + export interface BuildSchemaOptions extends Omit { /** Array of resolvers classes or glob paths to resolver files */ resolvers: NonEmptyArray | NonEmptyArray; @@ -45,38 +80,3 @@ export function buildSchemaSync(options: BuildSchemaOptions): GraphQLSchema { } return schema; } - -function loadResolvers(options: BuildSchemaOptions): Function[] | undefined { - // TODO: remove that check as it's covered by `NonEmptyArray` type guard - if (options.resolvers.length === 0) { - throw new Error("Empty `resolvers` array property found in `buildSchema` options!"); - } - if (options.resolvers.some((resolver: Function | string) => typeof resolver === "string")) { - (options.resolvers as string[]).forEach(resolver => { - if (typeof resolver === "string") { - loadResolversFromGlob(resolver); - } - }); - return undefined; - } - return options.resolvers as Function[]; -} - -function getEmitSchemaDefinitionFileOptions(buildSchemaOptions: BuildSchemaOptions): { - schemaFileName: string; - printSchemaOptions: PrintSchemaOptions; -} { - const defaultSchemaFilePath = path.resolve(process.cwd(), "schema.gql"); - return { - schemaFileName: - typeof buildSchemaOptions.emitSchemaFile === "string" - ? buildSchemaOptions.emitSchemaFile - : typeof buildSchemaOptions.emitSchemaFile === "object" - ? buildSchemaOptions.emitSchemaFile.path || defaultSchemaFilePath - : defaultSchemaFilePath, - printSchemaOptions: - typeof buildSchemaOptions.emitSchemaFile === "object" - ? { ...defaultPrintSchemaOptions, ...buildSchemaOptions.emitSchemaFile } - : defaultPrintSchemaOptions, - }; -} diff --git a/src/utils/buildTypeDefsAndResolvers.ts b/src/utils/buildTypeDefsAndResolvers.ts index 5c0ada7ab..b0f988901 100644 --- a/src/utils/buildTypeDefsAndResolvers.ts +++ b/src/utils/buildTypeDefsAndResolvers.ts @@ -1,8 +1,13 @@ import { GraphQLSchema, printSchema } from "graphql"; - import { BuildSchemaOptions, buildSchema, buildSchemaSync } from "./buildSchema"; import { createResolversMap } from "./createResolversMap"; +function createTypeDefsAndResolversMap(schema: GraphQLSchema) { + const typeDefs = printSchema(schema); + const resolvers = createResolversMap(schema); + return { typeDefs, resolvers }; +} + export async function buildTypeDefsAndResolvers(options: BuildSchemaOptions) { const schema = await buildSchema(options); return createTypeDefsAndResolversMap(schema); @@ -12,9 +17,3 @@ export function buildTypeDefsAndResolversSync(options: BuildSchemaOptions) { const schema = buildSchemaSync(options); return createTypeDefsAndResolversMap(schema); } - -function createTypeDefsAndResolversMap(schema: GraphQLSchema) { - const typeDefs = printSchema(schema); - const resolvers = createResolversMap(schema); - return { typeDefs, resolvers }; -} diff --git a/src/utils/container.ts b/src/utils/container.ts index 899fedd73..f38e48803 100644 --- a/src/utils/container.ts +++ b/src/utils/container.ts @@ -1,4 +1,5 @@ -import { ResolverData } from "../interfaces"; +/* eslint-disable max-classes-per-file */ +import { ResolverData } from "~/interfaces"; export type SupportedType = { new (...args: any[]): T } | Function; diff --git a/src/utils/createResolversMap.ts b/src/utils/createResolversMap.ts index e1def9358..63d2319a4 100644 --- a/src/utils/createResolversMap.ts +++ b/src/utils/createResolversMap.ts @@ -9,8 +9,41 @@ import { GraphQLTypeResolver, GraphQLAbstractType, } from "graphql"; +import { ResolversMap, EnumResolver, ResolverObject } from "~/interfaces"; -import { ResolversMap, EnumResolver, ResolverObject } from "../interfaces"; +function generateTypeResolver( + abstractType: GraphQLAbstractType, + schema: GraphQLSchema, +): GraphQLTypeResolver { + if (abstractType.resolveType) { + return abstractType.resolveType; + } + + const possibleObjectTypes = schema.getPossibleTypes(abstractType); + return async (source, context, info) => { + for (const objectType of possibleObjectTypes) { + if (objectType.isTypeOf && (await objectType.isTypeOf(source, context, info))) { + return objectType.name; + } + } + return undefined; + }; +} + +function generateFieldsResolvers(fields: GraphQLFieldMap): ResolverObject { + return Object.keys(fields).reduce((fieldsMap, fieldName) => { + const field = fields[fieldName]; + if (field.subscribe) { + fieldsMap[fieldName] = { + subscribe: field.subscribe, + resolve: field.resolve, + }; + } else if (field.resolve) { + fieldsMap[fieldName] = field.resolve; + } + return fieldsMap; + }, {}); +} export function createResolversMap(schema: GraphQLSchema): ResolversMap { const typeMap = schema.getTypeMap(); @@ -50,37 +83,3 @@ export function createResolversMap(schema: GraphQLSchema): ResolversMap { return resolversMap; }, {}); } - -function generateTypeResolver( - abstractType: GraphQLAbstractType, - schema: GraphQLSchema, -): GraphQLTypeResolver { - if (abstractType.resolveType) { - return abstractType.resolveType; - } - - const possibleObjectTypes = schema.getPossibleTypes(abstractType); - return async (source, context, info) => { - for (const objectType of possibleObjectTypes) { - if (objectType.isTypeOf && (await objectType.isTypeOf(source, context, info))) { - return objectType.name; - } - } - return undefined; - }; -} - -function generateFieldsResolvers(fields: GraphQLFieldMap): ResolverObject { - return Object.keys(fields).reduce((fieldsMap, fieldName) => { - const field = fields[fieldName]; - if (field.subscribe) { - fieldsMap[fieldName] = { - subscribe: field.subscribe, - resolve: field.resolve, - }; - } else if (field.resolve) { - fieldsMap[fieldName] = field.resolve; - } - return fieldsMap; - }, {}); -} diff --git a/src/utils/emitSchemaDefinitionFile.ts b/src/utils/emitSchemaDefinitionFile.ts index c215351ad..72a97618b 100644 --- a/src/utils/emitSchemaDefinitionFile.ts +++ b/src/utils/emitSchemaDefinitionFile.ts @@ -1,6 +1,5 @@ import { GraphQLSchema, printSchema, lexicographicSortSchema } from "graphql"; - -import { outputFile, outputFileSync } from "../helpers/filesystem"; +import { outputFile, outputFileSync } from "~/helpers/filesystem"; export interface PrintSchemaOptions { sortedSchema: boolean; @@ -18,6 +17,11 @@ const generatedSchemaWarning = /* graphql */ `\ `; +function getSchemaFileContent(schema: GraphQLSchema, options: PrintSchemaOptions) { + const schemaToEmit = options.sortedSchema ? lexicographicSortSchema(schema) : schema; + return generatedSchemaWarning + printSchema(schemaToEmit); +} + export function emitSchemaDefinitionFileSync( schemaFilePath: string, schema: GraphQLSchema, @@ -35,8 +39,3 @@ export async function emitSchemaDefinitionFile( const schemaFileContent = getSchemaFileContent(schema, options); await outputFile(schemaFilePath, schemaFileContent); } - -function getSchemaFileContent(schema: GraphQLSchema, options: PrintSchemaOptions) { - const schemaToEmit = options.sortedSchema ? lexicographicSortSchema(schema) : schema; - return generatedSchemaWarning + printSchema(schemaToEmit); -} diff --git a/src/utils/graphql-version.ts b/src/utils/graphql-version.ts index 0fd6c0eb4..7028693ed 100644 --- a/src/utils/graphql-version.ts +++ b/src/utils/graphql-version.ts @@ -1,6 +1,5 @@ import semVer from "semver"; - -import { UnmetGraphQLPeerDependencyError } from "../errors"; +import { UnmetGraphQLPeerDependencyError } from "~/errors"; export function getInstalledGraphQLVersion(): string { const graphqlPackageJson = require("graphql/package.json"); From 5d7c958d5b22967ca949ab34bb40ab3560ecd4f3 Mon Sep 17 00:00:00 2001 From: carlocorradini Date: Wed, 8 Feb 2023 18:01:36 +0100 Subject: [PATCH 021/226] chore(fix): partial tests eslint fix --- .eslintrc | 39 ++++++++++++++++++- cspell.json | 9 ++++- src/helpers/findType.ts | 2 +- src/helpers/loadResolversFromGlob.ts | 1 + src/metadata/getMetadataStorage.ts | 2 + src/resolvers/create.ts | 2 +- src/resolvers/helpers.ts | 4 +- src/schema/schema-generator.ts | 2 + src/utils/isPromiseLike.ts | 2 +- tests/.eslintrc | 18 ++++++++- tests/functional/default-values.ts | 4 +- tests/functional/extensions.ts | 8 ++-- tests/functional/generic-types.ts | 1 + tests/functional/interface-resolvers-args.ts | 7 ---- .../functional/interfaces-and-inheritance.ts | 6 ++- tests/functional/ioc-container.ts | 4 +- tests/functional/middlewares.ts | 1 + tests/functional/resolvers.ts | 20 ++++++---- tests/functional/typedefs-resolvers.ts | 3 +- tests/functional/unions.ts | 2 + 20 files changed, 103 insertions(+), 34 deletions(-) diff --git a/.eslintrc b/.eslintrc index 90e31d1b2..3a66de211 100644 --- a/.eslintrc +++ b/.eslintrc @@ -57,14 +57,49 @@ "caughtErrorsIgnorePattern": "^_" } ], + // FIXME: Remove "@typescript-eslint/ban-types": [ "error", { "types": { - "Function": false + "Function": false, + "Object": false, + "{}": false }, "extendDefaults": true } - ] + ], + // FIXME: Remove + "@typescript-eslint/no-explicit-any": "off", + // FIXME: Remove + "@typescript-eslint/no-var-requires": "off", + // FIXME: Remove + "global-require": "off", + // FIXME: Remove + "import/no-cycle": "off", + // FIXME: Remove + "no-param-reassign": "off", + // FIXME: Remove + "@typescript-eslint/no-non-null-assertion": "off", + // FIXME: Remove + "consistent-return": "off", + // FIXME: Remove + "no-await-in-loop": "off", + // FIXME: Remove + "@typescript-eslint/no-loop-func": "off", + // FIXME: Remove + "prefer-spread": "off", + // FIXME: Remove + "no-restricted-syntax": "off", + // FIXME: Remove + "no-prototype-builtins": "off", + // FIXME: Remove + "@typescript-eslint/no-use-before-define": "off", + // FIXME: Remove + "vars-on-top": "off", + // FIXME: Remove + "no-return-assign": "off", + // FIXME: Remove + "array-callback-return": "off" } } diff --git a/cspell.json b/cspell.json index b05d48510..c3b8c4c61 100644 --- a/cspell.json +++ b/cspell.json @@ -9,5 +9,12 @@ "@cspell/dict-typescript/cspell-ext.json" ], "ignorePaths": ["**/build/", "**/dist/", "**/coverage/", "**/node_modules/"], - "words": ["middlewares"] + "words": [ + "graphqlisodatetime", + "isodate", + "middlewares", + "paramtypes", + "returntype", + "sindresorhus" + ] } diff --git a/src/helpers/findType.ts b/src/helpers/findType.ts index c3ea96bb3..b8d460420 100644 --- a/src/helpers/findType.ts +++ b/src/helpers/findType.ts @@ -74,7 +74,7 @@ export function findType({ typeOptions: options, }; } - throw new Error("Ooops... this should never happen :)"); + throw new Error("Ops... this should never happen :)"); } function findTypeValueArrayDepth( diff --git a/src/helpers/loadResolversFromGlob.ts b/src/helpers/loadResolversFromGlob.ts index 00fe703b2..685457c43 100644 --- a/src/helpers/loadResolversFromGlob.ts +++ b/src/helpers/loadResolversFromGlob.ts @@ -6,5 +6,6 @@ export function findFileNamesFromGlob(globString: string) { export function loadResolversFromGlob(globString: string) { const filePaths = findFileNamesFromGlob(globString); + // eslint-disable-next-line import/no-dynamic-require, @typescript-eslint/no-unused-vars const modules = filePaths.map(fileName => require(fileName)); } diff --git a/src/metadata/getMetadataStorage.ts b/src/metadata/getMetadataStorage.ts index a1b3df48c..2862ed1c3 100644 --- a/src/metadata/getMetadataStorage.ts +++ b/src/metadata/getMetadataStorage.ts @@ -1,6 +1,8 @@ import { MetadataStorage } from "./metadata-storage"; +// FIXME: Global declare global { + // eslint-disable-next-line no-var var TypeGraphQLMetadataStorage: MetadataStorage; } diff --git a/src/resolvers/create.ts b/src/resolvers/create.ts index b0658cead..bac765bb1 100644 --- a/src/resolvers/create.ts +++ b/src/resolvers/create.ts @@ -3,7 +3,7 @@ import { FieldResolverMetadata, FieldMetadata, BaseResolverMetadata } from "~/me import { convertToType } from "~/helpers/types"; import { BuildContext } from "~/schema/build-context"; import { ResolverData } from "~/interfaces"; -import isPromiseLike from "~/utils/isPromiseLike"; +import { isPromiseLike } from "~/utils/isPromiseLike"; import { AuthMiddleware } from "~/helpers/auth-middleware"; import { IOCContainer } from "~/utils/container"; import { getParams, applyMiddlewares, applyAuthChecker } from "./helpers"; diff --git a/src/resolvers/helpers.ts b/src/resolvers/helpers.ts index 90189167b..52197eacd 100644 --- a/src/resolvers/helpers.ts +++ b/src/resolvers/helpers.ts @@ -6,7 +6,7 @@ import { ResolverData, AuthChecker, AuthMode } from "~/interfaces"; import { Middleware, MiddlewareFn, MiddlewareClass } from "~/interfaces/Middleware"; import { IOCContainer } from "~/utils/container"; import { AuthMiddleware } from "~/helpers/auth-middleware"; -import isPromiseLike from "~/utils/isPromiseLike"; +import { isPromiseLike } from "~/utils/isPromiseLike"; import { ValidateSettings } from "~/schema/build-context"; import { validateArg } from "./validate-arg"; import { convertArgsToInstance, convertArgToInstance } from "./convert-args"; @@ -20,6 +20,7 @@ export function getParams( const paramValues = params .sort((a, b) => a.index - b.index) .map(paramInfo => { + // eslint-disable-next-line default-case switch (paramInfo.kind) { case "args": return validateArg( @@ -41,6 +42,7 @@ export function getParams( } return resolverData.context; case "root": + // eslint-disable-next-line no-case-declarations const rootValue = paramInfo.propertyName ? resolverData.root[paramInfo.propertyName] : resolverData.root; diff --git a/src/schema/schema-generator.ts b/src/schema/schema-generator.ts index d2d952eab..6b4fb0559 100644 --- a/src/schema/schema-generator.ts +++ b/src/schema/schema-generator.ts @@ -333,6 +333,7 @@ export abstract class SchemaGenerator { field.typeOptions, ); const isSimpleResolver = + // eslint-disable-next-line no-nested-ternary field.simple !== undefined ? field.simple === true : objectType.simpleResolvers !== undefined @@ -341,6 +342,7 @@ export abstract class SchemaGenerator { fieldsMap[field.schemaName] = { type, args: this.generateHandlerArgs(field.target, field.name, field.params!), + // eslint-disable-next-line no-nested-ternary resolve: fieldResolverMetadata ? createAdvancedFieldResolver(fieldResolverMetadata) : isSimpleResolver diff --git a/src/utils/isPromiseLike.ts b/src/utils/isPromiseLike.ts index 1a9743f3b..729b3a1d6 100644 --- a/src/utils/isPromiseLike.ts +++ b/src/utils/isPromiseLike.ts @@ -1,4 +1,4 @@ -export default function isPromiseLike( +export function isPromiseLike( value: PromiseLike | TValue, ): value is PromiseLike { return value != null && typeof (value as PromiseLike).then === "function"; diff --git a/tests/.eslintrc b/tests/.eslintrc index f6ceb5a80..f30e30207 100644 --- a/tests/.eslintrc +++ b/tests/.eslintrc @@ -6,6 +6,22 @@ { "devDependencies": true } - ] + ], + // FIXME: Remove + "no-useless-return": "off", + // FIXME: Remove + "class-methods-use-this": "off", + // FIXME: Remove + "@typescript-eslint/no-inferrable-types": "off", + // FIXME: Remove + "jest/no-identical-title": "off", + // FIXME: Remove + "jest/no-conditional-expect": "off", + // FIXME: Remove + "no-underscore-dangle": "off", + // FIXME: Remove + "@typescript-eslint/no-this-alias": "off", + // FIXME: Remove + "no-empty-pattern": "off" } } diff --git a/tests/functional/default-values.ts b/tests/functional/default-values.ts index 943368826..1b7c31f5d 100644 --- a/tests/functional/default-values.ts +++ b/tests/functional/default-values.ts @@ -52,7 +52,7 @@ describe("default values", () => { @InputType() class SampleInitializerInput { @Field() - inputField = "defaultValueFromPropertyInitializer"; + inputField: string = "defaultValueFromPropertyInitializer"; } @InputType() @@ -115,7 +115,7 @@ describe("default values", () => { @Resolver() class SampleResolver { @Query() - sampleQuery(@Arg("input") input: SampleInput): string { + sampleQuery(@Arg("input") _input: SampleInput): string { return "sampleQuery"; } } diff --git a/tests/functional/extensions.ts b/tests/functional/extensions.ts index 22905d1d0..eff32b1ff 100644 --- a/tests/functional/extensions.ts +++ b/tests/functional/extensions.ts @@ -47,21 +47,21 @@ describe("Extensions", () => { class SampleObjectType { @Field() @Extensions({ role: "user" }) - withExtensions = "withExtensions"; + withExtensions: string = "withExtensions"; @Field() @Extensions({ first: "first value", second: "second value" }) - withMultipleExtensions = "withMultipleExtensions"; + withMultipleExtensions: string = "withMultipleExtensions"; @Field() @Extensions({ first: "first value" }) @Extensions({ second: "second value", third: "third value" }) - withMultipleExtensionsDecorators = "hello"; + withMultipleExtensionsDecorators: string = "hello"; @Field() @Extensions({ duplicate: "first value" }) @Extensions({ duplicate: "second value" }) - withConflictingExtensionsKeys = "hello"; + withConflictingExtensionsKeys: string = "hello"; @Field() withInput(@Arg("input") input: ExtensionsOnFieldInput): string { diff --git a/tests/functional/generic-types.ts b/tests/functional/generic-types.ts index 5720cafb0..54138fb29 100644 --- a/tests/functional/generic-types.ts +++ b/tests/functional/generic-types.ts @@ -177,6 +177,7 @@ describe("Generic types", () => { } const UserConnection = Connection(User); + // eslint-disable-next-line @typescript-eslint/no-redeclare type UserConnection = InstanceType; @ObjectType() class DogConnection extends Connection(Dog) {} diff --git a/tests/functional/interface-resolvers-args.ts b/tests/functional/interface-resolvers-args.ts index 9cfb45de4..fafcd3aa5 100644 --- a/tests/functional/interface-resolvers-args.ts +++ b/tests/functional/interface-resolvers-args.ts @@ -35,7 +35,6 @@ describe("Interfaces with resolvers and arguments", () => { class SampleArgs1 { @Field(_type => Int) classArg1: number; - @Field(_type => Int) classArg2: number; } @@ -260,32 +259,26 @@ describe("Interfaces with resolvers and arguments", () => { queryForSampleInterfaceWithArgs(): SampleInterfaceWithArgs { return new SampleImplementingObjectWithArgsAndOwnResolver(); } - @Query() queryForSampleInterfaceWithArgsAndInlineResolver(): SampleInterfaceWithArgsAndInlineResolver { return new SampleImplementingObjectWithArgsAndInheritedResolver(); } - @Query() queryForSampleInterfaceWithArgsAndFieldResolver(): SampleInterfaceWithArgsAndFieldResolver { return new SampleImplementingObjectWithArgsAndInheritedFieldResolver(); } - @Query() queryForSampleImplementingObjectWithArgsAndOwnResolver(): SampleImplementingObjectWithArgsAndOwnResolver { return new SampleImplementingObjectWithArgsAndOwnResolver(); } - @Query() queryForSampleImplementingObjectWithArgsAndInheritedResolver(): SampleImplementingObjectWithArgsAndInheritedResolver { return new SampleImplementingObjectWithArgsAndInheritedResolver(); } - @Query() queryForSampleImplementingObjectWithArgsAndInheritedFieldResolver(): SampleImplementingObjectWithArgsAndInheritedFieldResolver { return new SampleImplementingObjectWithArgsAndInheritedFieldResolver(); } - @Query() queryForSampleInterfaceImplementingInterfaceWithArgsAndInlineResolver(): SampleInterfaceImplementingInterfaceWithArgsAndInlineResolver { return new SampleObjectImplementingInterfaceImplementingWithArgsAndInheritedResolver(); diff --git a/tests/functional/interfaces-and-inheritance.ts b/tests/functional/interfaces-and-inheritance.ts index c1c4d1297..9220555e7 100644 --- a/tests/functional/interfaces-and-inheritance.ts +++ b/tests/functional/interfaces-and-inheritance.ts @@ -575,7 +575,7 @@ describe("Interfaces and inheritance", () => { baseArgField: string; @Field(type => Int, { nullable: true }) - optionalBaseArgField = 255; + optionalBaseArgField: number = 255; } @ArgsType() class ChildArgs extends BaseArgs { @@ -589,7 +589,7 @@ describe("Interfaces and inheritance", () => { baseInputField: string; @Field(type => Int, { nullable: true }) - optionalBaseInputField = 255; + optionalBaseInputField: number = 255; } @InputType() class ChildInput extends BaseInput { @@ -630,6 +630,7 @@ describe("Interfaces and inheritance", () => { if ("secondField" in value) { return "SecondInterfaceWithStringResolveTypeObject"; } + return; }, }) abstract class InterfaceWithStringResolveType { @@ -659,6 +660,7 @@ describe("Interfaces and inheritance", () => { if ("secondField" in value) { return SecondInterfaceWithClassResolveTypeObject; } + return; }, }) abstract class InterfaceWithClassResolveType { diff --git a/tests/functional/ioc-container.ts b/tests/functional/ioc-container.ts index 5db628d5c..9991ca342 100644 --- a/tests/functional/ioc-container.ts +++ b/tests/functional/ioc-container.ts @@ -133,7 +133,7 @@ describe("IOC container", () => { }); it("should properly get container from container getter function", async () => { - let called = false; + let called: boolean = false; @Resolver() class SampleResolver { @@ -174,7 +174,7 @@ describe("IOC container", () => { }); it("should properly get instance from an async container", async () => { - let called = false; + let called: boolean = false; @Service() @Resolver() diff --git a/tests/functional/middlewares.ts b/tests/functional/middlewares.ts index 2b68f1e69..cd5513b56 100644 --- a/tests/functional/middlewares.ts +++ b/tests/functional/middlewares.ts @@ -26,6 +26,7 @@ describe("Middlewares", () => { let schema: GraphQLSchema; let sampleResolver: any; let middlewareLogs: string[] = []; + // eslint-disable-next-line no-promise-executor-return const sleep = (ms: number) => new Promise(resolve => setTimeout(resolve, ms)); beforeEach(() => { diff --git a/tests/functional/resolvers.ts b/tests/functional/resolvers.ts index c7024123e..3648061f6 100644 --- a/tests/functional/resolvers.ts +++ b/tests/functional/resolvers.ts @@ -67,10 +67,10 @@ describe("Resolvers", () => { defaultStringField: string; @Field() - implicitDefaultStringField = "implicitDefaultStringFieldDefaultValue"; + implicitDefaultStringField: string = "implicitDefaultStringFieldDefaultValue"; @Field() - inheritDefaultField = "inheritDefaultFieldValue"; + inheritDefaultField: string = "inheritDefaultFieldValue"; } @InputType() @@ -79,7 +79,7 @@ describe("Resolvers", () => { defaultStringField: string; @Field() - implicitDefaultStringField = "implicitDefaultValueOverwritten"; + implicitDefaultStringField: string = "implicitDefaultValueOverwritten"; } @ArgsType() @@ -97,10 +97,10 @@ describe("Resolvers", () => { defaultStringArg: string; @Field() - implicitDefaultStringArg = "implicitDefaultStringArgDefaultValue"; + implicitDefaultStringArg: string = "implicitDefaultStringArgDefaultValue"; @Field() - inheritDefaultArg = "inheritDefaultArgValue"; + inheritDefaultArg: string = "inheritDefaultArgValue"; } @ArgsType() @@ -109,7 +109,7 @@ describe("Resolvers", () => { defaultStringArg: string; @Field() - implicitDefaultStringArg = "implicitDefaultValueOverwritten"; + implicitDefaultStringArg: string = "implicitDefaultValueOverwritten"; } @ObjectType() @@ -1152,7 +1152,7 @@ describe("Resolvers", () => { @InputType() class SampleInput { @Field({ defaultValue: "decoratorDefaultValue" }) - inputField = "initializerDefaultValue"; + inputField: string = "initializerDefaultValue"; } @Resolver() @@ -1332,7 +1332,7 @@ describe("Resolvers", () => { } constructor() { - sampleObjectConstructorCallCount++; + sampleObjectConstructorCallCount += 1; } instanceValue = Math.random(); @@ -1444,6 +1444,7 @@ describe("Resolvers", () => { if (args.isTrue()) { return args.factor * args.instanceField; } + return -1.0; } @@ -1458,6 +1459,7 @@ describe("Resolvers", () => { if (input.isTrue()) { return input.factor * input.instanceField; } + return -1.0; } @@ -1481,6 +1483,7 @@ describe("Resolvers", () => { @Mutation() mutationWithInputs(@Arg("inputs", type => [SampleInput]) inputs: SampleInput[]): number { + // eslint-disable-next-line prefer-destructuring mutationInputValue = inputs[0]; return inputs[0].factor; } @@ -1521,6 +1524,7 @@ describe("Resolvers", () => { if (root.isTrue()) { return root.instanceValue; } + return -1.0; } diff --git a/tests/functional/typedefs-resolvers.ts b/tests/functional/typedefs-resolvers.ts index 6c599d0ba..bab3751c1 100644 --- a/tests/functional/typedefs-resolvers.ts +++ b/tests/functional/typedefs-resolvers.ts @@ -114,7 +114,7 @@ describe("typeDefs and resolvers", () => { sampleInputStringField: string; @Field() - sampleInputDefaultStringField = "sampleInputDefaultStringField"; + sampleInputDefaultStringField: string = "sampleInputDefaultStringField"; } enum SampleNumberEnum { @@ -145,6 +145,7 @@ describe("typeDefs and resolvers", () => { if ("sampleType3StringField" in value) { return "SampleType3"; } + return; }, }); diff --git a/tests/functional/unions.ts b/tests/functional/unions.ts index 52557717b..e7b391885 100644 --- a/tests/functional/unions.ts +++ b/tests/functional/unions.ts @@ -58,6 +58,7 @@ describe("Unions", () => { if ("fieldTwo" in value) { return "ObjectTwo"; } + return; }, }); @@ -71,6 +72,7 @@ describe("Unions", () => { if ("fieldTwo" in value) { return ObjectTwo; } + return; }, }); From d8152cec3a81c120a1dbaf4e5a780181aada1db2 Mon Sep 17 00:00:00 2001 From: carlocorradini Date: Wed, 8 Feb 2023 18:47:13 +0100 Subject: [PATCH 022/226] chore(fix): passing check and test scripts --- .eslintignore | 5 ++++ .github/workflows/main.yml | 5 ++++ .markdownlintignore | 4 ++++ benchmarks/array/run.ts | 4 ++-- benchmarks/simple/run.ts | 4 ++-- cspell.json | 24 +++++++++++++++++-- package.json | 2 +- ...ss-metdata.ts => object-class-metadata.ts} | 0 src/metadata/metadata-storage.ts | 2 +- src/schema/schema-generator.ts | 2 +- tests/.eslintrc | 8 ++++++- tests/functional/interface-resolvers-args.ts | 7 ++++++ tests/functional/resolvers.ts | 1 + tests/functional/subscriptions.ts | 2 +- tests/functional/unions.ts | 4 ---- tests/helpers/sleep.ts | 2 +- 16 files changed, 60 insertions(+), 16 deletions(-) rename src/metadata/definitions/{object-class-metdata.ts => object-class-metadata.ts} (100%) diff --git a/.eslintignore b/.eslintignore index ac4a6c1ba..e02451e98 100644 --- a/.eslintignore +++ b/.eslintignore @@ -3,3 +3,8 @@ **/coverage/ **/node_modules/ jest.config.ts + +# FIXME: Remove +examples/ +website/ +babel.config.js diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index dd63324d1..53cf16d14 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,6 +27,11 @@ jobs: run: | npm ci + # FIXME: Remove, this is due check:type benchmarks requiring build files + - name: Build + run: | + npm run build + - name: Check codebase run: | npm run check diff --git a/.markdownlintignore b/.markdownlintignore index fc5c9dab5..89f3245a7 100644 --- a/.markdownlintignore +++ b/.markdownlintignore @@ -2,3 +2,7 @@ **/dist/ **/coverage/ **/node_modules/ + +# FIXME: Remove +* +!CONTRIBUTING.md diff --git a/benchmarks/array/run.ts b/benchmarks/array/run.ts index 87d33e07d..527c50cbc 100644 --- a/benchmarks/array/run.ts +++ b/benchmarks/array/run.ts @@ -27,11 +27,11 @@ export async function runBenchmark(schema: GraphQLSchema) { const result = await execute({ schema, document: multipleNestedObjectsQuery }); console.assert(result.data !== undefined, "result data is undefined"); console.assert( - result.data?.multipleNestedObjects.length === ARRAY_ITEMS, + (result.data?.multipleNestedObjects as Array).length === ARRAY_ITEMS, "result data is not a proper array", ); console.assert( - result.data?.multipleNestedObjects[0].nestedField.booleanField === true, + (result.data?.multipleNestedObjects as Array)[0].nestedField.booleanField === true, "data nestedField are incorrect", ); } diff --git a/benchmarks/simple/run.ts b/benchmarks/simple/run.ts index a7a1fd9d4..bf7fa3f19 100644 --- a/benchmarks/simple/run.ts +++ b/benchmarks/simple/run.ts @@ -47,8 +47,8 @@ export async function runBenchmark(schema: GraphQLSchema) { const result = await execute({ schema, document: nestedObjectQuery }); console.assert(result.data !== undefined, "result data is undefined"); console.assert( - result.data?.nestedObject.nestedField.nestedField.nestedField.nestedField.sampleField !== - undefined, + (result.data?.nestedObject as any).nestedField.nestedField.nestedField.nestedField + .sampleField !== undefined, "data nestedField are incorrect", ); } diff --git a/cspell.json b/cspell.json index c3b8c4c61..7d444edc7 100644 --- a/cspell.json +++ b/cspell.json @@ -8,13 +8,33 @@ "@cspell/dict-shell/cspell-ext.json", "@cspell/dict-typescript/cspell-ext.json" ], - "ignorePaths": ["**/build/", "**/dist/", "**/coverage/", "**/node_modules/"], + "ignorePaths": [ + "**/build/", + "**/dist/", + "**/coverage/", + "**/node_modules/", + "./img/", + "./package.json", + // FIXME: Remove + "README.md", + "website/", + "tests/", + "examples", + "docs/" + ], "words": [ + "asynciterable", + "cdpath", + "graphqlid", "graphqlisodatetime", "isodate", + "michał", "middlewares", + "netrc", + "lytek", "paramtypes", "returntype", - "sindresorhus" + "sindresorhus", + "typegraphql" ] } diff --git a/package.json b/package.json index 86f18b739..616d6fca0 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "check:lint": "eslint .", "check:markdown": "markdownlint \"**/*.md\"", "check:spell": "cspell lint --config cspell.json --no-progress --show-context \"**\"", - "check:type": "tsc --noEmit && tsc --noEmit --project ./examples/tsconfig.json && tsc --noEmit --project ./benchmarks/tsconfig.json", + "check:type": "tsc --noEmit && tsc --noEmit --project ./benchmarks/tsconfig.json", "clean": "shx rm -rf build", "docs": "npm run --prefix website start", "fix": "npm-run-all --npm-path npm fix:*", diff --git a/src/metadata/definitions/object-class-metdata.ts b/src/metadata/definitions/object-class-metadata.ts similarity index 100% rename from src/metadata/definitions/object-class-metdata.ts rename to src/metadata/definitions/object-class-metadata.ts diff --git a/src/metadata/metadata-storage.ts b/src/metadata/metadata-storage.ts index 91a91fa04..4014707a3 100644 --- a/src/metadata/metadata-storage.ts +++ b/src/metadata/metadata-storage.ts @@ -25,7 +25,7 @@ import { mapSuperFieldResolverHandlers, ensureReflectMetadataExists, } from "./utils"; -import { ObjectClassMetadata } from "./definitions/object-class-metdata"; +import { ObjectClassMetadata } from "./definitions/object-class-metadata"; import { InterfaceClassMetadata } from "./definitions/interface-class-metadata"; import { DirectiveClassMetadata, DirectiveFieldMetadata } from "./definitions/directive-metadata"; diff --git a/src/schema/schema-generator.ts b/src/schema/schema-generator.ts index 6b4fb0559..d3b089484 100644 --- a/src/schema/schema-generator.ts +++ b/src/schema/schema-generator.ts @@ -46,7 +46,7 @@ import { } from "~/errors"; import { ResolverFilterData, ResolverTopicData, TypeResolver } from "~/interfaces"; import { ensureInstalledCorrectGraphQLPackage } from "~/utils/graphql-version"; -import { ObjectClassMetadata } from "~/metadata/definitions/object-class-metdata"; +import { ObjectClassMetadata } from "~/metadata/definitions/object-class-metadata"; import { InterfaceClassMetadata } from "~/metadata/definitions/interface-class-metadata"; import { BuildContext, BuildContextOptions } from "./build-context"; import { getFieldMetadataFromInputType, getFieldMetadataFromObjectType } from "./utils"; diff --git a/tests/.eslintrc b/tests/.eslintrc index f30e30207..687b1f1b3 100644 --- a/tests/.eslintrc +++ b/tests/.eslintrc @@ -22,6 +22,12 @@ // FIXME: Remove "@typescript-eslint/no-this-alias": "off", // FIXME: Remove - "no-empty-pattern": "off" + "no-empty-pattern": "off", + // FIXME: Remove + "no-promise-executor-return": "off", + // FIXME: Remove + "@typescript-eslint/no-throw-literal": "off", + // FIXME: Remove + "@typescript-eslint/no-unused-expressions": "off" } } diff --git a/tests/functional/interface-resolvers-args.ts b/tests/functional/interface-resolvers-args.ts index fafcd3aa5..9cfb45de4 100644 --- a/tests/functional/interface-resolvers-args.ts +++ b/tests/functional/interface-resolvers-args.ts @@ -35,6 +35,7 @@ describe("Interfaces with resolvers and arguments", () => { class SampleArgs1 { @Field(_type => Int) classArg1: number; + @Field(_type => Int) classArg2: number; } @@ -259,26 +260,32 @@ describe("Interfaces with resolvers and arguments", () => { queryForSampleInterfaceWithArgs(): SampleInterfaceWithArgs { return new SampleImplementingObjectWithArgsAndOwnResolver(); } + @Query() queryForSampleInterfaceWithArgsAndInlineResolver(): SampleInterfaceWithArgsAndInlineResolver { return new SampleImplementingObjectWithArgsAndInheritedResolver(); } + @Query() queryForSampleInterfaceWithArgsAndFieldResolver(): SampleInterfaceWithArgsAndFieldResolver { return new SampleImplementingObjectWithArgsAndInheritedFieldResolver(); } + @Query() queryForSampleImplementingObjectWithArgsAndOwnResolver(): SampleImplementingObjectWithArgsAndOwnResolver { return new SampleImplementingObjectWithArgsAndOwnResolver(); } + @Query() queryForSampleImplementingObjectWithArgsAndInheritedResolver(): SampleImplementingObjectWithArgsAndInheritedResolver { return new SampleImplementingObjectWithArgsAndInheritedResolver(); } + @Query() queryForSampleImplementingObjectWithArgsAndInheritedFieldResolver(): SampleImplementingObjectWithArgsAndInheritedFieldResolver { return new SampleImplementingObjectWithArgsAndInheritedFieldResolver(); } + @Query() queryForSampleInterfaceImplementingInterfaceWithArgsAndInlineResolver(): SampleInterfaceImplementingInterfaceWithArgsAndInlineResolver { return new SampleObjectImplementingInterfaceImplementingWithArgsAndInheritedResolver(); diff --git a/tests/functional/resolvers.ts b/tests/functional/resolvers.ts index 3648061f6..bb7b8f443 100644 --- a/tests/functional/resolvers.ts +++ b/tests/functional/resolvers.ts @@ -1222,6 +1222,7 @@ describe("Resolvers", () => { const originalMethod: Function = descriptor.value; descriptor.value = function () { descriptorEvaluated = true; + // eslint-disable-next-line prefer-rest-params return originalMethod.apply(this, arguments); }; }; diff --git a/tests/functional/subscriptions.ts b/tests/functional/subscriptions.ts index a9267b6c3..7123e9509 100644 --- a/tests/functional/subscriptions.ts +++ b/tests/functional/subscriptions.ts @@ -35,7 +35,7 @@ import { import { getMetadataStorage } from "../../src/metadata/getMetadataStorage"; import { getSchemaInfo } from "../helpers/getSchemaInfo"; import { getInnerTypeOfNonNullableType, getItemTypeOfList } from "../helpers/getInnerFieldType"; -import sleep from "../helpers/sleep"; +import { sleep } from "../helpers/sleep"; describe("Subscriptions", () => { describe("Schema", () => { diff --git a/tests/functional/unions.ts b/tests/functional/unions.ts index e7b391885..c546d3dbc 100644 --- a/tests/functional/unions.ts +++ b/tests/functional/unions.ts @@ -328,10 +328,6 @@ describe("Unions", () => { name: "ExtendedBase", types: () => [Base, Extended] as const, }); - const _extended: typeof ExtendedBase = { - base: "base", - extended: "extended", - }; }); }); diff --git a/tests/helpers/sleep.ts b/tests/helpers/sleep.ts index 92793a163..a3b773416 100644 --- a/tests/helpers/sleep.ts +++ b/tests/helpers/sleep.ts @@ -1,3 +1,3 @@ -export default function sleep(ms: number) { +export function sleep(ms: number) { return new Promise(resolve => setTimeout(resolve, ms)); } From a2568e9d3ebdc9b5ac5c5ec901d9307d845306af Mon Sep 17 00:00:00 2001 From: carlocorradini Date: Thu, 9 Feb 2023 14:35:22 +0100 Subject: [PATCH 023/226] chore(scripts): added shellcheck --- .eslintrc | 6 +- cspell.json | 3 +- package-lock.json | 966 +++++++++++++++++++++++++++++++++++-- package.json | 38 +- scripts/.eslintrc | 10 + scripts/publish-website.sh | 2 +- scripts/shellchek.ts | 23 + scripts/tsconfig.json | 5 + tests/tsconfig.json | 1 + 9 files changed, 1005 insertions(+), 49 deletions(-) create mode 100644 scripts/.eslintrc create mode 100644 scripts/shellchek.ts create mode 100644 scripts/tsconfig.json diff --git a/.eslintrc b/.eslintrc index 3a66de211..0d363c375 100644 --- a/.eslintrc +++ b/.eslintrc @@ -10,7 +10,8 @@ "tsconfig.json", "tests/tsconfig.json", "examples/tsconfig.json", - "benchmarks/tsconfig.json" + "benchmarks/tsconfig.json", + "scripts/tsconfig.json" ], "ecmaVersion": "latest", "sourceType": "module" @@ -26,7 +27,8 @@ "tsconfig.json", "tests/tsconfig.json", "examples/tsconfig.json", - "benchmarks/tsconfig.json" + "benchmarks/tsconfig.json", + "scripts/tsconfig.json" ] } } diff --git a/cspell.json b/cspell.json index 7d444edc7..bae515c79 100644 --- a/cspell.json +++ b/cspell.json @@ -28,12 +28,13 @@ "graphqlid", "graphqlisodatetime", "isodate", + "lytek", "michał", "middlewares", "netrc", - "lytek", "paramtypes", "returntype", + "shellcheck", "sindresorhus", "typegraphql" ] diff --git a/package-lock.json b/package-lock.json index b20654d4a..a444728d8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -83,6 +83,7 @@ "prettier-plugin-sh": "^0.12.8", "reflect-metadata": "^0.1.13", "rimraf": "^4.1.2", + "shellcheck": "^2.2.0", "shelljs": "^0.8.5", "shx": "^0.3.4", "ts-jest": "^29.0.5", @@ -6517,6 +6518,12 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "dev": true + }, "node_modules/bowser": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", @@ -6631,6 +6638,37 @@ "ieee754": "^1.1.13" } }, + "node_modules/buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "dependencies": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "node_modules/buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", + "dev": true + }, "node_modules/buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", @@ -7548,6 +7586,181 @@ "ms": "2.0.0" } }, + "node_modules/decompress": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", + "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", + "dev": true, + "dependencies": { + "decompress-tar": "^4.0.0", + "decompress-tarbz2": "^4.0.0", + "decompress-targz": "^4.0.0", + "decompress-unzip": "^4.0.1", + "graceful-fs": "^4.1.10", + "make-dir": "^1.0.0", + "pify": "^2.3.0", + "strip-dirs": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tar": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", + "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", + "dev": true, + "dependencies": { + "file-type": "^5.2.0", + "is-stream": "^1.1.0", + "tar-stream": "^1.5.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tar/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-tarbz2": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", + "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", + "dev": true, + "dependencies": { + "decompress-tar": "^4.1.0", + "file-type": "^6.1.0", + "is-stream": "^1.1.0", + "seek-bzip": "^1.0.5", + "unbzip2-stream": "^1.0.9" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tarbz2/node_modules/file-type": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tarbz2/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-targz": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", + "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", + "dev": true, + "dependencies": { + "decompress-tar": "^4.1.1", + "file-type": "^5.2.0", + "is-stream": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-targz/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-unzip": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", + "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==", + "dev": true, + "dependencies": { + "file-type": "^3.8.0", + "get-stream": "^2.2.0", + "pify": "^2.3.0", + "yauzl": "^2.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-unzip/node_modules/file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-unzip/node_modules/get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==", + "dev": true, + "dependencies": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-unzip/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress/node_modules/make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress/node_modules/make-dir/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", @@ -7777,6 +7990,12 @@ "node": ">=8" } }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, "node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", @@ -7896,6 +8115,15 @@ "node": ">=0.10.0" } }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/enhanced-resolve": { "version": "5.12.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", @@ -8021,6 +8249,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -9023,6 +9257,15 @@ "bser": "2.1.1" } }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -9035,6 +9278,15 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -9173,6 +9425,12 @@ "node": ">= 0.6" } }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, "node_modules/fs-extra": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", @@ -9405,6 +9663,23 @@ "node": ">=10" } }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, "node_modules/global-dirs": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", @@ -9426,6 +9701,21 @@ "node": ">=4" } }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/globalyzer": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", @@ -10174,6 +10464,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-natural-number": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", + "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==", + "dev": true + }, "node_modules/is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", @@ -11224,6 +11520,12 @@ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -12094,6 +12396,30 @@ "node": ">=10" } }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/matcher/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/mdurl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", @@ -13291,6 +13617,12 @@ "node": ">=8" } }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, "node_modules/pg": { "version": "8.9.0", "resolved": "https://registry.npmjs.org/pg/-/pg-8.9.0.tgz", @@ -13411,6 +13743,27 @@ "node": ">=4" } }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/pirates": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", @@ -13548,9 +13901,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true, - "optional": true, - "peer": true + "dev": true }, "node_modules/promise-inflight": { "version": "1.0.1", @@ -13711,8 +14062,6 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, - "optional": true, - "peer": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -13727,9 +14076,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "optional": true, - "peer": true + "dev": true }, "node_modules/rechoir": { "version": "0.6.2", @@ -14017,6 +14364,29 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/roarr/node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + }, "node_modules/run-con": { "version": "1.2.11", "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.2.11.tgz", @@ -14118,6 +14488,25 @@ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, + "node_modules/seek-bzip": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", + "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", + "dev": true, + "dependencies": { + "commander": "^2.8.1" + }, + "bin": { + "seek-bunzip": "bin/seek-bunzip", + "seek-table": "bin/seek-bzip-table" + } + }, + "node_modules/seek-bzip/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "node_modules/semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -14132,6 +14521,12 @@ "node": ">=10" } }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true + }, "node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -14178,6 +14573,33 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/serialize-error/node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/serve-static": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", @@ -14257,6 +14679,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/shellcheck": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/shellcheck/-/shellcheck-2.2.0.tgz", + "integrity": "sha512-rMt0WhmeqRrKMUqyTlkL6pd0zY27FRQMQWjQhpHMQETwG2ykc8gz+QGGtxHym4R2np646QgQAcq04sAEo3SWhA==", + "dev": true, + "dependencies": { + "decompress": "^4.2.1", + "global-agent": "^3.0.0" + }, + "bin": { + "shellcheck": "bin/shellcheck.js" + }, + "engines": { + "node": ">=18.4.0 || >=16.17.0" + } + }, "node_modules/shelljs": { "version": "0.8.5", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", @@ -14580,8 +15018,6 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, - "optional": true, - "peer": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -14718,6 +15154,15 @@ "node": ">=8" } }, + "node_modules/strip-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", + "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", + "dev": true, + "dependencies": { + "is-natural-number": "^4.0.1" + } + }, "node_modules/strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", @@ -14809,7 +15254,35 @@ "yallist": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=10" + } + }, + "node_modules/tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "dev": true, + "dependencies": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/tar-stream/node_modules/bl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", + "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", + "dev": true, + "dependencies": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" } }, "node_modules/tar/node_modules/fs-minipass": { @@ -14943,6 +15416,12 @@ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true }, + "node_modules/to-buffer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", + "dev": true + }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -15473,6 +15952,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -15606,9 +16095,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, - "optional": true, - "peer": true + "dev": true }, "node_modules/utils-merge": { "version": "1.0.1", @@ -16011,6 +16498,16 @@ "node": ">=8" } }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", @@ -20991,6 +21488,12 @@ "unpipe": "1.0.0" } }, + "boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "dev": true + }, "bowser": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", @@ -21066,6 +21569,34 @@ "ieee754": "^1.1.13" } }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", + "dev": true + }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", @@ -21755,6 +22286,148 @@ "ms": "2.0.0" } }, + "decompress": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", + "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", + "dev": true, + "requires": { + "decompress-tar": "^4.0.0", + "decompress-tarbz2": "^4.0.0", + "decompress-targz": "^4.0.0", + "decompress-unzip": "^4.0.1", + "graceful-fs": "^4.1.10", + "make-dir": "^1.0.0", + "pify": "^2.3.0", + "strip-dirs": "^2.0.0" + }, + "dependencies": { + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + } + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + } + } + }, + "decompress-tar": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", + "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", + "dev": true, + "requires": { + "file-type": "^5.2.0", + "is-stream": "^1.1.0", + "tar-stream": "^1.5.2" + }, + "dependencies": { + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true + } + } + }, + "decompress-tarbz2": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", + "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", + "dev": true, + "requires": { + "decompress-tar": "^4.1.0", + "file-type": "^6.1.0", + "is-stream": "^1.1.0", + "seek-bzip": "^1.0.5", + "unbzip2-stream": "^1.0.9" + }, + "dependencies": { + "file-type": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true + } + } + }, + "decompress-targz": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", + "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", + "dev": true, + "requires": { + "decompress-tar": "^4.1.1", + "file-type": "^5.2.0", + "is-stream": "^1.1.0" + }, + "dependencies": { + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true + } + } + }, + "decompress-unzip": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", + "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==", + "dev": true, + "requires": { + "file-type": "^3.8.0", + "get-stream": "^2.2.0", + "pify": "^2.3.0", + "yauzl": "^2.4.2" + }, + "dependencies": { + "file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", + "dev": true + }, + "get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + } + } + }, "dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", @@ -21916,6 +22589,12 @@ "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", @@ -22010,6 +22689,15 @@ } } }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, "enhanced-resolve": { "version": "5.12.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", @@ -22111,6 +22799,12 @@ "is-symbol": "^1.0.2" } }, + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -22849,6 +23543,15 @@ "bser": "2.1.1" } }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, "file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -22858,6 +23561,12 @@ "flat-cache": "^3.0.4" } }, + "file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", + "dev": true + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -22965,6 +23674,12 @@ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "dev": true }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, "fs-extra": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", @@ -23129,6 +23844,20 @@ "is-glob": "^4.0.1" } }, + "global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "requires": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + } + }, "global-dirs": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", @@ -23144,6 +23873,15 @@ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, "globalyzer": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", @@ -23668,6 +24406,12 @@ "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", "dev": true }, + "is-natural-number": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", + "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==", + "dev": true + }, "is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", @@ -24462,6 +25206,12 @@ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, "json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -25099,6 +25849,23 @@ } } }, + "matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "requires": { + "escape-string-regexp": "^4.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + } + } + }, "mdurl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", @@ -26000,6 +26767,12 @@ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, "pg": { "version": "8.9.0", "resolved": "https://registry.npmjs.org/pg/-/pg-8.9.0.tgz", @@ -26086,6 +26859,21 @@ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "dev": true }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, "pirates": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", @@ -26177,9 +26965,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true, - "optional": true, - "peer": true + "dev": true }, "promise-inflight": { "version": "1.0.1", @@ -26297,8 +27083,6 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, - "optional": true, - "peer": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -26313,9 +27097,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "optional": true, - "peer": true + "dev": true } } }, @@ -26528,6 +27310,28 @@ "integrity": "sha512-BlIbgFryTbw3Dz6hyoWFhKk+unCcHMSkZGrTFVAx2WmttdBSonsdtRlwiuTbDqTKr+UlXIUqJVS4QT5tUzGENQ==", "dev": true }, + "roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "requires": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "dependencies": { + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + } + } + }, "run-con": { "version": "1.2.11", "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.2.11.tgz", @@ -26605,6 +27409,23 @@ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, + "seek-bzip": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", + "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", + "dev": true, + "requires": { + "commander": "^2.8.1" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, "semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -26628,6 +27449,12 @@ } } }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true + }, "send": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", @@ -26657,6 +27484,23 @@ } } }, + "serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "requires": { + "type-fest": "^0.13.1" + }, + "dependencies": { + "type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true + } + } + }, "serve-static": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", @@ -26715,6 +27559,16 @@ "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==", "dev": true }, + "shellcheck": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/shellcheck/-/shellcheck-2.2.0.tgz", + "integrity": "sha512-rMt0WhmeqRrKMUqyTlkL6pd0zY27FRQMQWjQhpHMQETwG2ykc8gz+QGGtxHym4R2np646QgQAcq04sAEo3SWhA==", + "dev": true, + "requires": { + "decompress": "^4.2.1", + "global-agent": "^3.0.0" + } + }, "shelljs": { "version": "0.8.5", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", @@ -26967,8 +27821,6 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, - "optional": true, - "peer": true, "requires": { "safe-buffer": "~5.1.0" } @@ -27065,6 +27917,15 @@ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true }, + "strip-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", + "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", + "dev": true, + "requires": { + "is-natural-number": "^4.0.1" + } + }, "strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", @@ -27157,6 +28018,33 @@ } } }, + "tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "dev": true, + "requires": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + }, + "dependencies": { + "bl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", + "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", + "dev": true, + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + } + } + }, "tarn": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/tarn/-/tarn-3.0.2.tgz", @@ -27242,6 +28130,12 @@ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true }, + "to-buffer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", + "dev": true + }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -27546,6 +28440,16 @@ "which-boxed-primitive": "^1.0.2" } }, + "unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "requires": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, "unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -27636,9 +28540,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, - "optional": true, - "peer": true + "dev": true }, "utils-merge": { "version": "1.0.1", @@ -27957,6 +28859,16 @@ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, "yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", diff --git a/package.json b/package.json index 616d6fca0..abdff3c49 100644 --- a/package.json +++ b/package.json @@ -42,28 +42,29 @@ "./build" ], "scripts": { - "build": "tsc --build tsconfig.json", - "build:watch": "tsc --build --watch tsconfig.json", - "check": "npm-run-all --npm-path npm check:*", - "check:format": "prettier --check .", - "check:lint": "eslint .", - "check:markdown": "markdownlint \"**/*.md\"", - "check:spell": "cspell lint --config cspell.json --no-progress --show-context \"**\"", - "check:type": "tsc --noEmit && tsc --noEmit --project ./benchmarks/tsconfig.json", - "clean": "shx rm -rf build", + "build": "npx tsc --build tsconfig.json", + "build:watch": "npx tsc --build --watch tsconfig.json", + "check": "npx npm-run-all --npm-path npm check:*", + "check:format": "npx prettier --check .", + "check:lint": "npx eslint .", + "check:markdown": "npx markdownlint \"**/*.md\"", + "check:script": "npx ts-node ./scripts/shellchek.ts \"./scripts/**/*.sh\"", + "check:spell": "npx cspell lint --config cspell.json --no-progress --show-context \"**\"", + "check:type": "npx tsc --noEmit && tsc --noEmit --project ./benchmarks/tsconfig.json", + "clean": "npx shx rm -rf build", "docs": "npm run --prefix website start", - "fix": "npm-run-all --npm-path npm fix:*", - "fix:format": "prettier --write .", - "fix:lint": "eslint --fix .", - "fix:markdown": "markdownlint --fix \"**/*.md\"", - "postbuild": "shx rm ./build/browser-shim.d.ts && shx cp ./src/browser-shim.ts ./build", + "fix": "npx npm-run-all --npm-path npm fix:*", + "fix:format": "npx prettier --write .", + "fix:lint": "npx eslint --fix .", + "fix:markdown": "npx markdownlint --fix \"**/*.md\"", + "postbuild": "npx shx rm ./build/browser-shim.d.ts && shx cp ./src/browser-shim.ts ./build", "prebuild": "npm run clean", "prebuild:watch": "npm run clean", - "prepare": "ts-patch install -s && husky install", + "prepare": "npx ts-patch install -s && husky install", "prepublishOnly": "npm run build", - "test": "jest --verbose --coverage", - "test:ci": "jest --verbose --coverage --ci --forceExit --detectOpenHandles --runInBand", - "test:watch": "jest --watch" + "test": "npx jest --verbose --coverage", + "test:ci": "npx jest --verbose --coverage --ci --forceExit --detectOpenHandles --runInBand", + "test:watch": "npx jest --watch" }, "dependencies": { "@types/glob": "^8.0.1", @@ -130,6 +131,7 @@ "prettier-plugin-sh": "^0.12.8", "reflect-metadata": "^0.1.13", "rimraf": "^4.1.2", + "shellcheck": "^2.2.0", "shelljs": "^0.8.5", "shx": "^0.3.4", "ts-jest": "^29.0.5", diff --git a/scripts/.eslintrc b/scripts/.eslintrc new file mode 100644 index 000000000..d26406272 --- /dev/null +++ b/scripts/.eslintrc @@ -0,0 +1,10 @@ +{ + "rules": { + "import/no-extraneous-dependencies": [ + "error", + { + "devDependencies": true + } + ] + } +} diff --git a/scripts/publish-website.sh b/scripts/publish-website.sh index 3ba7252e3..88c01bf6c 100644 --- a/scripts/publish-website.sh +++ b/scripts/publish-website.sh @@ -5,7 +5,7 @@ DIRNAME=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) # Load commons -# shellcheck source=./__commons.sh +# shellcheck source=SCRIPTDIR/__commons.sh . "$DIRNAME/__commons.sh" # ================ diff --git a/scripts/shellchek.ts b/scripts/shellchek.ts new file mode 100644 index 000000000..5306d6378 --- /dev/null +++ b/scripts/shellchek.ts @@ -0,0 +1,23 @@ +import process from "node:process"; +import { shellcheck } from "shellcheck"; +import sh from "shelljs"; + +shellcheck({ + stdio: "inherit", + args: sh.find(process.argv.slice(2)), +}) + .then(result => { + // Check error + if (result.error) throw result.error; + + // Print stdout + if (result.stdout) process.stdout.write(result.stdout); + // Print stderr + if (result.stderr) process.stderr.write(result.stderr); + + // Exit + process.exit(result.status ?? 1); + }) + .catch(err => { + throw err; + }); diff --git a/scripts/tsconfig.json b/scripts/tsconfig.json new file mode 100644 index 000000000..926a1c779 --- /dev/null +++ b/scripts/tsconfig.json @@ -0,0 +1,5 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { "noEmit": true }, + "include": ["."] +} diff --git a/tests/tsconfig.json b/tests/tsconfig.json index d3188e1e1..8f76807a2 100644 --- a/tests/tsconfig.json +++ b/tests/tsconfig.json @@ -1,4 +1,5 @@ { "extends": "../tsconfig.json", + "compilerOptions": { "noEmit": true }, "include": [".", "../src"] } From 551b07de0a5d7e3b55074985bbda1046b8592460 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Lytek?= Date: Fri, 10 Feb 2023 15:31:19 +0100 Subject: [PATCH 024/226] Remove parcel cache from git --- examples/apollo-client/.gitignore | 1 + examples/apollo-client/.parcel-cache/data.mdb | Bin 18321408 -> 0 bytes examples/apollo-client/.parcel-cache/lock.mdb | Bin 8272 -> 0 bytes 3 files changed, 1 insertion(+) create mode 100644 examples/apollo-client/.gitignore delete mode 100644 examples/apollo-client/.parcel-cache/data.mdb delete mode 100644 examples/apollo-client/.parcel-cache/lock.mdb diff --git a/examples/apollo-client/.gitignore b/examples/apollo-client/.gitignore new file mode 100644 index 000000000..f78ec9285 --- /dev/null +++ b/examples/apollo-client/.gitignore @@ -0,0 +1 @@ +.parcel-cache diff --git a/examples/apollo-client/.parcel-cache/data.mdb b/examples/apollo-client/.parcel-cache/data.mdb deleted file mode 100644 index 6b5ba8d5f7214e3fce2f912f0a60fd2d69e97b28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18321408 zcmeFa4SW>WbvJzO%c6-DR|*+D=DD2Xl~RJM%bWC{E658b_y3PvnY{R1 zq(G4ZMG6!tP^3VS0!0cGDNv+9kpe{u6e&=oK#>CfEecGY@qg-4E)qHEue}|m6(xV| zy%bn{C{mzEfg%Np6ev=lNP!{+iWDeP;Qt2{SZCECK*?lRGS%K0i$#**!H%IwOG|4m zn`}*w=FRL-B5CGYS7k<*?ikDOS(wcx_O#@4M5iVuCX6fEa0Y%pjhb{HhM!+QRB%hI zrLt94ye-k$o=BvkL!Di1#(2)ubNOsKnKyd8s|UB4$$U%797>Ox{n^Zzna%GBnY+g_ z*?g{9H#ToJb1O5c@e$K#*7tgK{OwANjGNthK09uD_cir+3z0dG#P~>FpRcELedg{& z%1owrBu09?yAoM_b0U{R)&nSabSt84w%VE*TWjtdPiM^~cG^(Z_J)j>*71CLr1i>F zMiUAf8XryO)0xrVmqBK5TT`K)Su;PL9n}${&zi+f%jL%C3#{<&LR4;6q59qY!fNNf z9`8P@?!%WGgPOPA5(@9WEj-+`U}Jc0*TT8WZl2T7n!ciDZ)kl8l%A|mDBS!;I!uzR z$%@rum0GCv6=k;M&0M|^W1n}2)fp`XqN6@nk-z7v7?WkZRZRNiWgcl8G~1HxkwjN2 z5lOsG%E!(t+;3xvY|Wz4l_G*>Y10*5VU4$q7&8%b=PWHQ8Qoju#D&(?1kP465x7rGwc{vA#1 zFmqmgDm}eWzc!l~8(ymoSqpS`HAZ@>6D%x(i0;i`Y=_emQh76R9!KC zGl>CGTh`I}+5ywlhx7TdTz6}0Zp=)!Y~`GGj%58UvM=_}J&t!k=G$9(vXxZ@rv5-0Vd57O5$5{#`Ga$(Be1StwdEcAYw~uCS z9ese#y3u2+?a`Ucnu)v_8XX@QY3gaG=~?rUDrpfdWw!01swF3+lpY$*q|B|PNOU7I z&E@}AoU>|+T=-23({nSwUJ8ZJK-$|_Q3lK&e-Q#N+d`&+DmeRI<@fqPJ;maNHh zK#y1%8Z~dti<*|3#m_=p)(x9kQ%@#F^+EFkQgdeX%hKkQZZz!OMYMCD(Xypk-`FL5 z68XPERa)~kBzbmFsX;StZu-1%OSIY?$(hd!;cpevY<>RU3h$@Hlzmx}RY}~dI73vu z?<*8phOTit4XM1lOcqf(a(O&X;`PTb&4j%F|FC?_|0(Z>xsPNlb>ooJmX%@~e`hHT>2b%v8aS^3;Tkujun$_R9& zIwNtjJvJ0EJBEh31`SU#vtvg(pEpzM3}rZx8#V$R@y=*xTPhN3iwz~h;h5nbN{^WR ziTtoJ*gBlqVYco_Y};;*w5H5m=1692hdG*W&F>jA=N9I(RvzM;?a4RSnjAqL=3+Fb zQ;9q#A56>bNSe%KEiZrjN4K^v&n+KVzKUmQ2WH*up3O$t;P_~2#9U+!Cw8SX*|1TO z&MmTn2F6BEIi8^z^hJ_{b}@lOoJ!9Hcu_>RVYP!m`WoCg-1H8f zwe-FEjknV`@f}$`#;b*#zVDT)m5r#tRBCVR@pjXbgX8Iu)JjbCiLGXHAH~f@dlr%u z2q=AYC!P@r3!B^MMTa$;>dOZ<53F0eeATs>PaD(E(ODPAD15jU51YyDIqO?Atx6ru zy7?28(6jSpNfS%>Te6X?dHHZ5BWVHcv{oWnv#m-rll&Ks zwMjEGq`zPMrGDFOIujx@G@sVapO4ZP&}x*u??H+wXM`G>COJPT8Wwa931=le*3_*} zuHu#~klas@{7vzGv?s(q~w7%~In58eng=kMI#0;J1!)QiYoa@JLcKsjdy=uP5P;lh8z*+)6!J&oZ9XXgv)u zP%L0)*NyDhTXQ)(Upe_7L(;O-1R9H#Nx7TDf(A0v z?b2qUa1RL3V0)WUIH#YB7<25PXdy<}_I4J$?Y5WugVWEq2&jsAqK;5@N>(-qca2b% z2!Ed}K#qc=`Hz4)cS#%lNOa9XQfCIJ!v8lUZg()*MugR%u%rdTlG}PdC4%J^p_rKH z57m8`1}c!+Y1hCPAhlvlxcf!03?+xGR`)>b7Li1 z*)v991+D6WKo$Zn`0Jn&tg?C%PgZ$kIcncwnpH)IJjg}6t{&WZJ${tqVxS5cwb`^d zZd2HH)aiZ5dN-Q#uw+H*os6`RlWaor1HyNdkcUNje;--VZm~$OtdOi|84zZRqE+9E zswqyZLc1Mm@VwW3Mphjun@1ZwS`8PJ_i8n6F3?#~TS6Y)sXXpfjxvK92hW@?QF^KF zwg9aUoS&GGmbmIR>9jtCXL*yeZXTXD;n{IOuB+Fn?(trlees1uRCf`HPU&O}zjTC@ z72frSUYeM2KIt$*F9%4uNb8TkJTc)rK?YsuC8a?ap$lPBdL8SJUznIs!d^pv74a@e z>VA&ySbzG}i3xAB!+7?${iHl88T(%wBjrA6{n6JZCftYR*}E@>$q4)of%i(r*zb_% zZIXJoPD;I`UVwv=!Y?37{G6MN!_RLK``xckOiTkoNxHOt=<0|hQiEOXgB|g%c=UDh z{QT@6z1{L5GSuD{O(x8t&i1I;-f6z&@*xpUga-%XLy=^pBW#ARSUwE>7nTo`YYJ-t zvE4JhH9Ljge?9L?uq;2SoUOmK32NE#zgj)0bhhaoEFOlE9g+67p;UXay`!sbu)}cf zNQ~9e*+8T%5pRnPwx^P9gPp0iAzohbdLwN3@Nn(xzCkQ-;Q5&IY^gb#Oq;nLEV(+v zDYGjw6z&}Cj0|-SWeiV=|Ezx~ZDx)7D|cmueWkT!`vFyzHqpPV!>4vR8S+Rbnb{-~ z=R_`_$mTPKG6MO?a>;ORlRve5-d@R&&CygXIBVBlX|HU!$Ff*4rSp4`)|<}RtB%CT zGDF#6<`YQ1Jw2K-oXf4%$zEZUWX)V=WS6-to7u71aOL*w7|e{I?!G#42iB4(Juy;^ z5hVVHR#`8c<+JO>1I~1Ay_wj)Y_HtCRH(Z$@>x06VJ0G}SQI=02~TIc;krlq{_ect z8q8*Hg}lXZ`TUD>8N;p8&Rjx4<*F`Ly(CBU#ltAr)OTT1kLA&FX$qMGiJ?R`J%!p7 zqdH3C%OI5*%IvPCHm9N1Qv1@>*6S$Ot0<^_#R>n~RakMZd_X=MTxa+)|AWeVM61JhMt;BHA2rQXZeWjc3-ju-zf@i=bER`jNAoCouipr?4TU4Ac(|i; zC=nY3{(-B>`qj#^AkQVe9 z)i1eZhs)U-Y?w~62nv6TD^pe7;+k&k{iVav;&Rqf`HBjssB)EW4mi)vD9NQ$=F*`d z2n}=Sqj5`Q!y5oHoMR*7ThpVPt$o2zdMoc=HXEg-6vg`hopF?)`?0Vz7lA>R?X7Jf zu~(Y9fY*AwV~BT{nCsd)O*0XXCx2PM*W2|an#Ac(y1eGM{}gMj_&SAZ&bjQt&7#yo zU$yc^s?Waw64ZL~yiD{M_6Zsi{sb;oJoKUyAAKXUUEbN zq&cw32+qSY2}?(OZ`D>raUn`!Vae+v_D-?ClvqYoD^w|_&|(BGYNml|xb~t;Sx4Fo zEKk(y5Ih6HhMi*=r8FZv*o{)`suRz^+ zm|TilYhaZ86L1#Vrh9w27KP*#&ZCFK~5)P}$O(9-rtKu%I zb0G&*!10(>0sl!!sO5dcZm<(o4B6H04N%ZwuSPvsS_QyN705jx2USF>wIfZ%qRn+& za^EY0ysUac@WST_Np)dii)x`EsvE0Tyu#|67o=F&s%|@N6$)^luor7e&}}b-eD<=& zCp7nySWP`fn&&aB-;os0s%HbaFOpK@2zu`4qSWTo6!h3Bdl7gS2L`W288huNR)O}O zQ-Xr4QH7JdG!5Q_r~4$XXN}OjHNwu^ekSFJgeqD~@alu4c{eyoxn0t{4Gs!UM`t{4 zC9GF8FR$a42-W+X!+l)v%F%yJb__6JrNvr%sf$sxm)p=Uw32>a_1SAYT@IGmt23XX zm2d$gh%h2Z4IZUn$ru+NtVboSYA9HHmRN1!Rj)7Z_V){+`D)x)*N@SF59O8FubbtK z>;tK=2Gx8ah16(aUvbbC^kKh-eCMMLd2U1S8pL~!i62~mUX8hx3)m`gqn>f9W$OgC zC5lg|W%pV9hE-wN7KM~PSu5*9leW0EvPusrXK0`dWzMpDu}=<`ZL+$h5e1({m(8=6 z(I+L%AGQc?b!3fD{lhZvD)>buUZlJOypO1}m(u;%j`0!`y9a+B^m)=7^jlR$NYLM} zpwh~DkLF*38lm3;HK_HIvK9!SW?0GxdBXrGCt%O*xLb9P(NlYH&p@Z)0?OuMiVj zZ5)|_mbKj5phxXtB;Me)qg@bc-G(xEK%N{4=)*d$+Y)I}Qj3PT)B+0cs?*mE9FAPr15FjWInv%#S?U_w#)5RD0?JGBPg>9&7n zGDQj$1x04!g;nE}tj$azF^6$ip=oDR^`j{!V)sxnE#6v-RLzS>KE9Ngf?ZZ5#SceKVHbfClBfNVGGkW-s` z2$gS^!BQTrh5Klo-4ILzEsx_BI=77aZF9Fe=Hx^vof z4D(F5Qi7)sT!+BONv_$YQX`xX2jk< zt6EOXt;KoPPPx?h!!pDt+>dddVX16@mmv%9v*w`Z6g7?>!<==I2@Zqqe zb@7ZCvm^=1k`k>OoTMC+weEFgw#%Hc&ZTwZ6QtZ%sdXPf+w+xb_n4c%Di|C+!v&cT zIKPK8EAaagMeE^_kC~%~DKQVP=b?HdQ?33vF0^?}*FtP0p2z)zHNw1R^a8v5k$MK< z+(qcOd3X8T+Pr(KA*u3d^O?8urB;jbrP_Raa`Cy>=JVo!sLsDvL+{a|2=G0v?SRmrYVsagh z{iRLLZM-sl_9tOdM|4oBrtWc_)Z6htjs@CLxQ7vZnCcGT@ga^;S~rZxC-A7xsO!Vy zGkDxWbs;=n#N&RW&JEE?+tcb>NXtO` zdPo?(zc>w=m#iQD1%xlVW%Y4nyrRrF^NW7e%enr*vkd0%z@o_u#l9M3! z3W$R){M#96|49gv7E44a59yOn&BwRl)AzROZ;k`>ZaP-v#3EPAU(Hd|I#Y%OHf4@MB6?W{YsM1MNJm>NHWUqaCfgx{WdKgv62kIHFv~@8 zJe_FWYUWq^=*|HMa&Z)Elm`5-2#$57BsMMZI#=~(iL7-<{sx(Bvg|6E?7+Jr zlWp{$H7ud51rW=Xmc{;wC5tuQAd8)E$zp#b`{zlf?=>O)5qX|b{Hq{~Eq917 zULlL!B^!qKPaul@t@B(-yfYphG$X0bRLl$yM$F5i*k1{VVsCOtzmZB-x*&@Ej^p== zV#9kOitUkNJ%&5za%^)ncp6j^uaSSDb5@mep%a4GxWlo~$%5Eu!XX-+<(oGV+=n^p&&gyx`5{9n*T^d^hEx3nrV*ykmS2XbYOh&v*i18A-*fbG~xfG=y3x% z@d=Tr99Ss4hlL|ZuZl~UMn1R7t=zUpj$zK8SyA4KO+(9$EsVzg9tq`==%PfkK9o&-#{CG;$Us@98H9A>dYaL!KPBJ9--zaGm7N9r zk|{Rftt2oo5i~dw4$0og+1ulL2t>ze?g!Kr8iK>0BE4tz}z8J7%_K5??22 zrdSIwtR9NcQl60(DPkjizlpJy>}|=JBQKR*hccVKBmD0X)vg~=={l-yeiFidr1p*p zPlWup0vP$KxW>O0K#)%eSD$b+i!OBbmnG*i@h7>a+^y++ayZmXgDu=KP5&l|pGX~v z9Ey9S<$8p)EL*;G#ggt*EVFe+czeEA)u8ILK|JnikL>aMYHu@mv>xAcUD>BzJ>*MoTV3T^2wT6?3>n=`_-Aeh<-m z1_5y0-YBZ}b&%J!ZpB2;YVnEdNRL0Ex zP+qt=GnyLo-mo$Os%%yqKP1l*hyPc?>2Gqxo&O<;=RM+|g}+;Nc>6@jM&Vxxx-Ju$ z%>(^wmoD_mW%385MObyLdPH&rMZ&_!w)~CL`yo>PRQP`-i*+pk=!L)z9})hoa=RaF z-H}M8GE~(wWRdvaNt~@LpZ`lrF(xm!@vmsw%^f6il9F=?$n#c90VPcMlBnYAiu=J5 z|8!@y^hAmLnp6I=)4xV)^xuGvx?hg%^X@z9t6cJxvZah8i}<9Uh_#qH^z<^vJ(wxb z#VLTE-6b=&^wv=MmN_L~+R~fbo*vu6L;Wv3YV)5?m#5PEb<|fMPH){?^$UzmlhK@RC5+k{NPU#Vn(HoCZgFILGzfCocF>-x}+?6ChMy`J%c^WxRV62h=cRj~U7#n%07y)(s+*qAj7a5Muk&Belgw1f|FB%!gU67xlmiwyr?1NF z6v`bmrDZBf%M~$S@qm1*Zj(IEkTfB8U^G8naWFB$6Nx^5%qLPLzt86g_{z4Bw2r2y zhmLxs7o5sk0();M^M8=&I_CFa>1(1Tom)5vFeT=8P9FL+RW&Uo=?==^4QAQdB&2(R zca!CdBuH{SE!OZHWd5;30FyV8*_ux3`OGKP$avnYqUqbs2mIxU_sx`heRnkGbg)x) zk3%Vaug85}mOp^$sN_~4I?=rgN=f=pr=fSNn$NB5ujH)6CH`pc)UH{5$?KT52G<3UBaG@ zWiwD;$+Z>$2=5xaw0$Vr(PgIEJIq0|J#5A=Z&5nh6UkH;b|*tPavvJP<|T0@MCA8v zQMw@@LN{3$1st#25Qe_r(2M1XSfn$W80<*JO|!EjnYz5J+svqsU2*ZE?`@X(uajZ8 ze(1YuiT@Aky8yfRM5ztCI3muL{QmX5N9<&N{I7y8UUXQf3mXH&zzYk)5*5B}(z*8l z{NVs1=J&t~&OV5>>?JhIX5)XoM!gy=fXxz+18;*Da29s>(Mvmhe4XgD?=&A~7XOMA zC{mzEfg%Np6ev=lNP!{+iWDePph$uL4JdGCQd6H5Pa|RM@Q3g-n8f~m@%asJx4nm2 zKqB03;yQ*1cJTm=zl8#7tP|Vnws1Ta>uBp}@9ex{dmrS($Hf`Q!_BOl&Z;q?;=i$%Klg`kwU^KArMKI~pZVbb-Cew4yp`?*OW<;EI(o9S znmsLHy5jKZm{e1{nBLLhlXdij@yz&N`wsvdJiJcxj=X9eh+Gmy;T{hhPt3)ENP6oi z?p8^eyCIIU?ona5ed}zmL1$~cp=6UjfVa5TU?7tn9?yAuAzL&@aZAd|;rE?{|7t2O7bH_(U&6Q(MT%q>84IdYP-qVMt=*DSw6$WYB3;QrY!tp%X3Sc$`|0MgEdii zNbV5rgt{?b9dV1p$Y(x9=gUGkIpK2;56dI*tg~|Pq$D;#cS3R7y3{2#n<_j%l+F>K ziLhYEQg;e9uBM8XKNja)e3`>&CeOm=B(BncoEe7*K^xR0|52XmQ*hc3i zPiw2b#LS~p^uh71TleU*g`t~k08kf^Og8l?_lt_28A+L0{l@sDYErIc37zelyu$;@ zaxF>LT}qGdurBc!Yuy!ZP3LmsI8aIfQji{5kWS5yMIv#p$HV==m#0JuCqe@a?(c>g z6N5>#O4nOk^U}h(=*d0OStichTX8uEUvq+#OXNC`g0&f%zI zVbjL&&CiGhjqQ!IgwOvontE+pxV__NP-%`L$zEI>%le|N+^Bj#wn_70@ zRO?k~Mrbroa!!)=()7`rH&JENwL-duCcG`%GU?G!V`G!f=P`}pNVF~1-q9KF>Jcld z+Iqw*Q@H)$jIG1zZQDn7jAq7mW^?(*mK>}2bHWzXd?}Q=Pg8Ql#5D!kpVJ^$w{4?J zZK&9kYVUI-w@FL3n|pFTlD;J`4DH?5{5h$st*NO*EI`};oE-9Ql5ZB?_sVh=y(nAq zd+-rB3@0^u$jpA89soD2H*u%SXk-49?jL|D5~F;u$p^E4P#wu<^!F(@G=o#}+tq~` zu;;y{)h%0D<900$OT6Bg^PbDM;4BGv*C>?>fT8>yb?DuCOnMr6dl-Ywx~+!x3`Nix zKdh_hDWPS^d;Sd$DNJfpJuZ!@aCTsDmB{D)xZy^R^yoSC6;h8|XF4q-=IGY^FhZxu zOSzx^L#hfj(eTFH%@`Z+kr#mudP!CJj!%(P~bZpV^2< z&<_V2K1wl*c=kmd)@j0KS$@VTFCzIgwd(V|E?MMAyhnCUkjtyc*O23P}rf>cyTE@8s3FlreUw3Dk1o zq%z>NCFtWQmfkiix8ooVP-=%tP)U(6*}#DsvI?zv&DjMlB*f8tI?-lEpt@>^wTU+J zEIdPJT@T#!qE3f?5#}k|r_Eq}`-XawKQ25_7ip}gDRM30h&WVFb;vC^AMO;my>RQ{ zE`tlz^x(CuSR#U(;EhA?ke^vk)ic|05<|gRcsa{{8AE6cgp=q7ZkD%tM06{+OFKKC@Ir~Ld^b?lr-W918pW<4wLH(& zhO*8EwvFpYdrp7`=S6u%1$m*OE_{G+A98>de2QCzzLr{fQ05fSuBl`NhZT}qIqcw& zO%4^hcl^{Zlw%yEx}Z~6HD<*JlDdl3i;zQ=odcM*nqk|3epj=;+_SP)4aC2y9)%)a zK;eu47U!T~ZJcT<+er?gZg(lZi!Rkb>fpT~;RuvrHla;-K}lu>k^q8U3&pQBwP?><($o@}z~5qGJY&4V4FcGT8_gj%Df zpMo02CZDEr(^0tP?za4HZN_nEF3boi_B9+K#UdcIgc_KDP^W3YD_axhl815q?3q;0 z!+h8f_i}Ba&@}Tjv@z@-Ry6^|XR;Q^F|Vx|gWjFVT-58h>}O6sQ35}zdEBkeJZkY< zuS1=ApG51#02i?^^ zgd(;)^xz_)@Ji~z2BkDW*rPPYYuD69d~PUj^pJVZX0gJn! ziBlNHVP-OD;)G9t$-1L{qtY>^II@ZLI-o4Xd0j-H<+<{Ql-q+^42oDRjhFP0$$}IMUB}br@^PiSoQCaQ;pqi4Htg0=j_`hHCAbjFAj@wqY+PQ z=T9TM_c@{Ef_bxp^@I*os~y&73R+iM2Wx_@@Ms-eXY^?oGfJvl>*DcnU#Zr`>Ne1T z>|&Liqg6@+_k!v`>$>@kZ;IB9VaK{z-8{uDsj&T^kL5?1-P}_2Z}%an&h;?8&{aM6 z1&|NV#%@(z0VOqN9q{`+W*v4pQ+DyqhT0#ri@-g{g*yK(YlPs4fN)EpTj6>a7@N{qE_qWg6>kaUd*bj zJvaGkzZZ$|>M$~4-b~?*%?fBuuRZoRsgqC8aq4}xmV&Duqng$DKthw{lqm1F`3}nB zXDqhE_kN*uUyiITeA4UI7M@4F$DpdiwBhd|CNnqxSUP@-xbN;(v_(AMR|d32sHs{F zEviM#6_p+<0EAW^^Kf!dd@)bj_+fQVZ8490WPYE&koi*1d@0Z7nD&-3ozcdnJpG}& zm);KzEwIN@EHAXB3VLoStCoSot(f?_FMYBcIzEcFlyzI7=C+gv$oZhQlqV*9hL&!c zj+|A?Rp&y5Z7J8gxkg=Tea#f8`7Tqydze#~@uviHt>t2VS;pFH?DCX>$!Hm??x9l4 zxCnN~s;u_)annHRKAu6qk$patz%KJDhg+(PZreo-`j~X%fVu58$Jfhc|~)$+;W3hSJ!BNA-QV&+H%&Bgu3(cO-uv7b{)^s zF{gGN527)Ldff$UvVdaVbvz5+TdiHkO=UmNvSw5*J2#pXYkCuic><9b`^hS z*v~H3Xsfse$7bNE86eh#za5s$XIS+m_^GXWN=D9Q!ek+`kCVBDAqR{w%LRM%bH#V#J%`_>Xlt0Z_@1vh&efe_yN7GEHT%I% z>|&}?w%|Rly;fp~u0d6UYe1mB^56iRd3C|}V1l1>kKoP9Mtnz`?O}C%j<%)->xnIx zj@ROH19SV`CF+fv?0Lzr-H7{%`HQfDzX;Hm+`y#6 z=-j|ejIY-QP8kkV++^>|@OixnY&J0VFSw}bINi=$sWac2n3zu+`SEms>P|p~@pim+ zoR`Iup=(b}Oq89H26lfBT7-uy2RYXM?_+{F*u4J051@Fs!7-pe35~+z0qdRnUv=)P zB}e{sVxl?xXB_=;JSxW;jnKa#*^|OJ@NbwGPHDy=Xxb^gih2gYfy#mYA3;Cye3_NY zp&#!@t(^lQ-1!kWRAGgkJk^irxU1=@FzW&uC!V?=UmF^@0QJY(F}D@x_~|noW*q%l zFD|gSPt5N952P6Wk1f#2t(<-Onf+w+{=Aoz{ZJ)@YtVnfGwd;T{{nd`HM0ZHhEc$? z0ipCejorV*%ZmZy%&+#7W5l)i*HCwS#%YzKKc`y^xj(=o**N{&7-keGQvL@1ha@BX z8yy$Qd5oGD`q2!xvHJz=OzXqK=sSaSF}HE_46@#QD=s4OXaL{vpDwX zetG{e?&JeE6#t48C{mzEfg%Np6ev=lNP!{+iWK<&gaV#Isnai&K6(G2diEs=M~b=O z^bVa5U&nK}<@`zK&(knfVBdzx=kh^%v0}ddCLfqLiDfxoh^ zvSf{;TYS?q`VXt5d;GX09a`_X3S0r6%a0H0={zU2jxkXX^w<_xei5hCy1r;Uuit96 zSDh=xc_W`KBPz5q^#n|(>_JI<5}F=;+4Fu5&LNW!op+7l{2g)lj&_`gqMkUF&!ifw zUzAzp4M(MHrv#Th@?q&QI_Kqrmgk`_lpf`q8TABLhH(OG92Mp_D;J`u*4yZNW)A5x zg}XNYkmPUsrN?~Jb1l~kDI~rOwZwJMc7+a1Pc_}J7*~F0Ysj&UvM7s9y2R)~ybBey zEdBC7FqEJGBgn0%4_I1fzz`g+lzu`xQj8hchpYE?5w6E{1(S!#e>0T3Lbs6fI+~H) z^96c^_#ScwE->x^XTG1Kb=KYH-87@IX{Ce%`K??XeSQm-_gtipa&)#F0bNU9L`YFm z_sx(RLT0a6fHw=MM%+sNe_>DiKa}GW`2P8&c-msu@?k1pf0!16d$Rwbh;e$F6XF@v@h_Ypd4Au1a4 z!|7aOvp$>|8$yo23yfzsR?RYZ|8W&iG_Xx_Yx-}Ti&^jbI}SCm$C=SB`zsf5qa&w; zBA!@8HTzz4#L?a5Ns|QIh}X z^32jNk^Bo8`h(72$?hO6=Pvq~L#Y(b=VfN5Z#bOFy^^cN<$a#~=jEH-U!sybaKDyI z^1m!E^}iy=-2X!ES7rGhC26hXe^tJ(yyY0*mzGCw4xk%9s#N6;DWYt;v{t(lOr~dH zXeRgF63_K=`SAVhNp-84bZe6IgK=XARzsH$U!u0LE?7 zqqeD~`+ZV1Sgd^U8bqid5vRXd&R{4+og2B;{SxCm5~DYat%B8;b?M~xYrQuxTTb6h z;vZz!jQ~mfGeOD9(MXODld{+AzJoqg07W$Y19_&>PH1gmIt%?zk`KB?#w&0e*x!?~ zk#O&+V;zYPLP-`kPmPzjaE?(^vXFBRQ#We&k7Vph95*Dn#Pu;x$t)q?L&{RhqGpU3 zIZPkpb^(8(&wrNW&k&FcpSg7yH@b!p*0jbaextb73#FZ;7K&mXSVHnyfiqBL8BL!v zM-oz<7@5cEo3dg`)6G=9F-*yuThR5PZ;@jwN!OF4OHvRAlHb9x?s|v&n}Q2xX6+$Y zt&s1Q#8gj7nX4i{>JtwL+3TOtGWv(oOnv@qrS3qI#SBSAAFL~u1 zVzE9~k32=!pv4+p^jxDyn)urUxR#9z0@j3aL4EYHVj+W?IIE3mP6eb$14RMz_*W9^ z#m`umdYCQoV751Ryx>{SF`Ev6LrHSV;^(d#B5dW#lxv!HN@Af9C!`roJ?H#8cg6LQ z^mg-(KH{N0<_i~9X zmr-ij7>N)29ZO^}k3No6Ev${Zr_3v=NGvDm?^rJP@q9Wz!pzwCOrW~4j^qk*ERvNr zXo8RK`b|JlX)zkG>oo;WN}Km-L~QKAG^?9z^lVSyq8C=e@YzgQ`ovjtE391MBgrtY z`Q*5vTnYHsU~0>Z{gRx2DlLS)sQDO|x6z%LuDtz(~Qvk%+OFJWwPdu z%r3JJJ*`n};mC+V;)3MaPAg5=V_8qr$Flbal@46xNR9=oN0YaaOZqEK%8^nhma?|{ zKl>%gDL&$?-WL>$2LTzp)2ZORs+~#~mn(nFrW-2K*OtpCs^ul+&dn4}-kN$;@_tm3 z4^mfSYvUi$hU75rObFA=RC-^D{|;27o%{#Lw_$uoBDeiLq@-o}4%!m7a66Y4IK_t| z1&S0XQlLnIA_e}BrvTrW&VMDggWt*he@*?lx;I=!@m4wsmkd?Tq_d@0Tqb7O1?WL; zlh!l`OV5hT*pf>oO|i~NzE`;?l(09!S@VMWNP<^f3EQgZUiuhpiY5R(-ka*7d%N`n z1Pb`)-AEIXy=A|`_T?=klD2KfW>Wj>r5i)I=BRNS-Gi;oUhJ}9Uv+ia?0vYNNE)Lq zELFD9H*FkqGxqVh{6CVsofb0ydm8=qCB$~=sqtDbp08XNa7wY$pSDpe+ZY+@D9APV#eTz z8gkKK201$R*796$? zD4bw5{P-UPrr5$2Plt>DZ0@RV23-8F10I>7z;(a?GY+_}kulKqw3v^S8wGH{L97;m zgJla^Rh}qG2=M_M?!_G|cm&S2stm#dJeDKWZ->IZK~=yG1=_fx)(+JWI@J!<5jxEZ zW$1?hoFLc`rz*qBABZi0GDQ&Zp^BzfF2;S4s^(ZJ@l?@lC4{vA)FX%sa;oM=v0%i` zQiveM0OR&q;A^p)9mek#Fx|lY6rP$dg#pJ`2!mCC!V{p23M3^+3j_xK!;-^!(tv3p zh6>lrUIXY4u(5fzmLxKsGDUg*N6>kz^(b!?KZqRVBbC; zu-|vIFpBs++;dK#-WfH8197LD$)Jgoz^0HQqi_8ioDR)B57qW5Y(oMqRV#0|%t>&g zfeFM7Y z-Kl!*(jP{oW+x&AX9IDHz5?oy9RTxdy4F~TQ=q@gyX}rx0bog=-L)$by4()!N9YPG zR0Xm{D`B>|39o%NKJ|WwTJ|Itp_T#lURGm~2AHujrYTxo#t<6N!;Yi?q*}(EQHT+2 zMDv%FFdP{+CSW{bKi&aR1Y;H!PRP&TC}7w8k6UmtU|KBW4nPzI7;uKM7GQ83?gI}n zmHXXlV2Opm1O_)S0xTK&&~gD6DnEm~0k10u%t!_NTP;6f!C}Bt91-ZB@Y)Ip9_+Y+xq_kjevyvFz#vt4_c{Ra&>vyEm{oHyNFn0;irLf1lT(Rda^` znOV&sN912kKp34V@on)cHHa0E{PX;nFop%WFSxZS{h$GWv!no&G=)K(pv4ph8?$=| z;h_>3UhultPC-%HS9vaB;O!K`4eLi;>Xd#9$^~*v0Y*xlivp*Np}>Q#4V)m%Bb}+{ zJLFUVHLK-DB6%%W5^*i-3}DULix!Ka`LztW0z9&ojX$s-Kw`^fL@xV*>Qm?N1C#%l ztk$iwDB17V>Ns=YYwMl>*tCvqFxc36tJms5MCOiqP6q6M{c)?}V1ua)(L(E|Zb8W> zW#5^AMW`bJ=AH(QKLzHCBqOY!jNRuBF-mCtu@`|`+90nF!@yj{MYmD& z${1=R8Tti=;;fSf_QQyfbDh_M^VG0axs=nm|5YRg?DHhNl}>|xtApag2>o^oT!(r9 z-s5E4|J(aX4euu-bnys4Xn_0tt`}vyRjy`(H2Vzf%^5YX!?T4x(~C>exd~@}<)$;@ zJZ@5lheEJ2SI-Z{zaj;S6ev=lNP!{+{&%Ioeirx>ejFcb!*u7xHaqn-5Pd(ZVeWdVV8)1uqDB! zfq$^agvm1eAQO-OxR~j`S9mn{PK07h>4ptHk2VEbv|24k#C{697vc5^%h;ctPbt5_ zt`wSz{8Pg}*#Ei#;Z8nJU|fdN45VEBC$q4Vs} z81jwbT3_2jn}3Vq@i#a;mA*aPS5S4u>YIy4`+_h6g-2{Mth)K2=X%^SuT+8^9Gl5z z?|BK8wv1TaiyK$b`q@^CcvZ`L9JR9<`Gl-W_Mj47b|vPcYK71x2wh}{F1r+}+$UR^ z^;s!dSE&^GXBPSGXV3&;ypx26W+`tob<4<<8aih8(h1w>8G5Nq_qg2-wE~LT+{4gl zC<81%SdIE0c4AKzEPL28(FG%spoSw@c9EMCY=la6jb#fDT~&sL0dB(72!KYaZs4Ez-i~(Y+U=@u`UH~u;Q0$wG6v|Y*e6%px%yvUKq`TQgJ_U z@V2e5O4}@3gA`P48;-pP$%h^NLLLG-%yiq^1*?|WJ-}cC_A4%}l2u5cTvfROd#4K` zSZSLp8^M#sk|2Jta)ZSr*fm$OsVkVWJ53(7>VU-U#Bi$O4Gg=`+`|?wSoN$`XYhxm zas04dGpzfAeWhSJ?0&3TpeZ$6soOnj&3$YvOVyz@RKuIkC*@$xekV5^+us^&kb_|m z|DeT$g%BlPqSf#w3meuNR>FYo#2TBMA%U>o)VPB+wlQ_c2Wnv8D!3AJ!D5>eS7Yqf zpjVgL-hqO5x$V6XJTL{yAVFxPC`;JNAS>b9Pg;tnmaY6V%*3^Jo~Y_cyPYY!bt|Nx zZPlK`Sse}{8#rnmv^{HiuZ$gXEvpXV2YXAKb782D8TbtB{c-=mOxIC6C5K{I)LGgl z9y^k()p4YUO0+ueL@4prv6dg~dDc}jyIW7^3s1<%qt>5rxF1qj>#W`fO(E>;>lMpF z>Pe4Q&s~d6|5O$iJZ29qlsJv~;-Qks4%1mkf&I76@*H&FbXJSmZ?_m^H#nGGmRub1 z1ZPxQ*7B+_f@g3>2ceLReHql#wFch2LshkbY4NOWTM^1*4O{^B(N-`x?TYq;pJwtN z9jazCSz8dh;+d?k1IfiqmSAA`%z_e}RaJyF9*2ma5fc=vuZ38xZ5{M}Lx4h{-m|&h z*vLcLgM?+UE(^H;m1xbZOLoAo%{|};{VE3L5|P8Ub&6E2oT{(fDgmRmm9^@i+|{3w#iAv4RbTmKFjpoDZj-Lr|nKJ42O%h5Av7@%QK#{8-fjfB!s?# zDp-UK?V*RD#t5_#bX$4Yp;m2ND^RkHbzIRG%xrFlRSjs0Gw0Z1Ri3b8kegUR_Oq2w zjFsylAd0bY1IolPCNkc)TM`|(tQQPzb?7@O!47+VXts$^FsX@lb+8l*5|R$KUx^lR zzxCU5BKo2eePI<_c(wxg2TI^Eht|nL4~*+h&VMr?w^Uj;)lRCmTE!IR#ADuI*C}g)M^z4@M&|?8>)R@9$7XAAc{h`? z@I3+hT3%4P`(f}bRFiv{GH9IT9=xQ!YGr~NTyq+2wm+e&zd_QjVY8}Gp1TG%#+5^L z+JZx{O?VsZ;yp1H9XPe37rJ5)L<>kT9t%KRk52U0OckmNE_YYK$RotT{Zj?B!mYsj ztf^s1|G!U69I3bTzINl$d%Ar6ei)#Gv~~9BpN46@8&>Gt&z4#umWO=nk3J3A&#ChD z&%!8O*}Pg~%QIW>F%ib`XLM9~iV^=$_#1qN`xo#BDvbTl!rf42^#5{u!!{x$q3WaGlG;XhSk=+6aMRMejX)0A**3{D-~nI`7;;lyTFgvL^Tc z4gF^)w!hs)n6Y-VGa8L`z+hjbGZv1$)kT=`@DQv3c11dp(YCI5>PkBotKXTezPA!S zw3@rkBn%&AMq91J{ankAZSRulzV>)$+fZjmYAD(@7!OA~F5AUO#-eRQv2ZjBqa8z$ z2=3Q>M|LrcKxaJG)tN|jB|5|5a4hmh(|uJCv24q+5vN=$paZyG(rQa-wSVGGR{O3I z*S*5>A`p&P~^sbugbJ}&9wAcsPz^k-Xt9%s(`=-7627`SD4E6=(cV@8f zp|Y#2dEEPM80_2ax2<{HB%ckgGkgI5kB#S-WwJXGdBbUIo)}&m^}*LR{#WgJthKHH zef*NezVlw&WM9e%z*tOsVlWYJZ;!Pl<7NaF{N^Z&#c{=V_gh-@kN zGI77`(2zOwBRN?8Bl&&MMS-oy{Ey{qmGWbGdUWqG$?;>EE!b^&T7r?lcGWdOj-SX% zIr&e?H#?su-zn?0{u-5@l3Q;n`=XRB*(v$IC{24+B--1}Hdv@>OAbam5^eD>O2MgL zlwKIi;to!}P1M3%e?`hxIlm&+^?pU-a&G&&@P9>WuPt*5$8o8ohWy`_Zg##vzHeKv zTRbp3B;D@¨H140WX1!kvj^Bsv&vi*$8;Tbgi90jFEa1FZ!ENS4COqbSGys8l!a zQ7fadzZd>TrS=-1A{>uMo@!_TpqyWm?;F zwcgjh!~q{F*(Sk3JIs!7XQVyV78{I2+hbw#vrRLW$rM%^s z@PAHfFL$6LJ}*gr@_zvtKSjPTSg-3};egwHqY@lsoa|^zc6JPQ4t5N-MRA?*7o4+|9W1*!e#rRm(N%;+j$>Y0tdEO~=A zm7XWxm#ki2<`T|tNS|P1gUd%T1|BDO75TqKTYVpro!^4yz_+NiTQSRa`k*%uywp6#|fP=F>pn7`h10LacLMp8#{|RJ$9=C&7 z{S^J7?406}@2d5G+>!HrRKi;n5(&452V-5SWTG=M2+OYJ=ls9Nu4XIW?ri41RQu^m zV7Tkch5O_6O-6j@G^lS~Wl{5q`tr^H$t=C zI_dj8Mmex#3+=l+KkcZ>{h2bi0#X@KD*Utb4KqI@9d*T>62_VD#KcJhnmhTf=;Vk(cJyC&7mlUiYexF*@hN)JR*3=zE1`9~b-qK3v)fSLSDSExRCqQQ$Z)tn;(z2)cP^3VS0!0cGDNv-q|3MTeEwnXp zsm%~((=PWh-!Av1pyET30!0cGDNv+9kpe{u6e;lk7zLUX&N@I4=s|Kg7)uVqZdF$- z@j5xqoxSyK4?k1S!!_JZyG$rJ`m$9=*aU*V1=(7{St= z!=-0u4kcieyA@KnrF^}DB`}2@uXn|aS2EQZi$#Yb?VXWWqAfCb$&A;~V4^eG)fG>) zM`G=eNM3dR@YJLkubs}br3EuyMxbpl6^%zCsT3q`@y=)}V|ad5_EO_e+RPenFT%2~ zbh;$P!ud*R51lJvk>heQO0s4yGqTHMsh|&z6`LikWJw#8F7`hu+nPE*oOs8 zvXF5);F7z<$7COjA$^R_0y6*^d?uUD?*WDVqo$e44fy3-ShI6kmwaxDE1g@)R_r0% zOXs-c%xGd{nQc!THpuq+yCqBhw?G(%_ZCs!cSe4#q$7;Or(|cFnTV#^VYlwG_%A8F zU?w7|ShO7?=uVimOG*$rI?up<)Vd#vwZ<);MPkO@lGkzOqsT8+zP+jP-di9b+$K*< zfhn#xNa@zSrIgMvrYk}`=r}9A$)MRX$+*g#SuNGnrj&PN&WwWcAI);q5)ogzAK!6_Z8?tJ7lRk2&p!WQxn0EN& z>t@|pIS%XZ=t!ek4>irdX430LO0M!|2u4@J3|A_VPYmQU*~C`91m;r3A*0_>c-#8s zn8su#g~6Jg%;~BuhHZ+pPDYzMndhYpQf3lmqx?6J4W&;ey&QqluyQvyN}p^_C~M}& zv!gtDEW^9iS(|%v&A3Ku&!AcG74AdB1#P3byuMe@SS+5?o6+DalS3UEE!cdy%oenr z^IkGp&Hh9-u_N~mOSSd1?IQHhrF(f$H#0w+N%8PQ&+PTG#y0=i)tjUd*JP4#ll0~K zthFb|OEiD$jIVB5^JJqzMY}Zpt$2V7m@KTo7NMq=WCrHulKDxZ_a#PCBj)7_OxC!N zHS5!Rq0wmnr3x-#_s=SEuamwr0y};Gv-HJs+fLt`?)bY2M!7K6!SWV;tA!_4kb<2m zlE3S4L2KS(0|l0^&X$EZ=4AgeW9Q6~A;jmKl6tBrVO@|F3X=4HvG?wQQB_yp@Y?%a z=90;rnM{%iBw;3pKoZPla!kRU-WAqf{1g~`l>L_-pD;ZneYMQfERR=l)oMMR~F z1yL(jtEjZ4Uh&e_w$}1k+p4uKH) zTI=^)qt-s&~T>Gwm7304u{U7 zVidI%bbgE_&<~ve7#=@+h=nbl!v6~8<>X~ja&8*6Ss7I zT(r?IV*VpaoO7_VI}Y^3f<0UKa<}k;B7uxTa!up*C?w@lsozRk zflz)a%z}b`5};#wmxEsgpwjk{{xp9Pmk1yRDlZC|C5qNfcuCM#2fBbS+17thcwPTZ z@&c0gkywIIOOcd!6Y}yE@wN~}QUuBNv{1SgtyahevL7J*u)-xfg`Q7SSy)$yIbkz|`vbkD59G2r-tFp9qu?uuoRi@v8Bxnkjy)E?~*$ zA5{~dQ^h?bpB2Udf&6*J_!bo_=a6v&g{Jg$_gqIpzg)CHHERva;<0Fz$(nph0tLR;tjMUt51P+m+sBB4zy zW5ITSh=zla)xh#AOJHa_2iYDL^H|k7-n7l?LQ!i;Tdu&mDf1NL9U-Tn0&gSG`0q$K zzg>5&<8QS(eD;5*%Dm;_?`y^r$_Ra@X6!=X_gPY|753jK?l-0F*RmFkRhVfrex*2< zuz2%+sU!pbFlh?NDUqOTB#K!^6@m&9#T31QH^~?D#-am}_f^;cIOxNj32HC*>To17 zNi*I>yFZ~ACll3;z{kU};G{)_euHXhKeovib^R}zdzQ4hRF-=ai8-1uZOT!liJM{F zV$z>WoW|qnONmKMN9Zz$$AXdjmfFuLUa&b^$s3$S>dz9@H>H64`em7LmoDF>zP7Gh zJTE^_)wb&h1qq0i!uW|QCBizM1^Q-(Q0EEbDd7^gNo)$_dk*iKv&r#Qo48YmZ#(qw z%7mwc7)4@$FPkmCN%HS@<5F9a@sb#W2mr@76nwL->hHFGbX{#z=Lqoxz(RW;H?md+ za}WUSP!5nXUpnrQ>Q|((NlS1&CKvSf!U`8VY}X0L%R=6w*sfKazo(+!-aV+*@5y)& zKp^i?m3Uq%s}$`!c6ps$zg6N;hVg>Xu+=AkqjtX5Z*frecfU*hK-0tc)omsyfMWSX z3ZM39H?RjWIN;1#4@)_kTA8vkI4LwPckS8_d}1UCq`o=Hm_$N8XA@uZy1$aFts^mo z%77<>p0LC*x;OUYBx5FVkc;<1rp9eJlj zY}U`%+$p*@f0x*VnG{P&w*5!~*hcvs(lE%V zAdt&C*oMG3V$hq+oRH#_7w(x#J~C&l#{ zawKW%4Ly_eHL3dB8G4xPf6b6rDsl-aKO*HVMgLT>he^#O@v6UhofAK|w*;=^(IN^U z>9*+DtnS_yN{?y5I16bB3S>($;UzWZh>45%S+pR5 zjv3uU9tgN?QPu%~(Qx8z(YSHW;5Y!y%!9M2ukRk|3r?l%?%q9#ikFTOTpEQqU*wFt zac)W!uNtlnT+GgarSwV=_cpX)Z5wPK-8T1wAkgRvMmkYa!MW524jm@a_=a{F)>?bR z!Ij}3C2m+A19iu;Sl<+65XTNWj(C9b&rBpi<{`ma5LR>X%YxT-dpnl3_ZP0DsYQ6$ zwIWg%YaLiNdj`EUWqh!;yPG*DCOGe+#Dv?auJ7WGo=mZUT`*X@3IBkugJZI{zXP;2 zM^lf8aBuANk|UUI9wDqumf~5dUi~g=;k)ODD5Y^W8Q-Jkxx93?os#Er%E|52TGZX! zC`NsCHs}Lz%PtzF+#}TMWCb{Oj)~E+=wm|sT@-Y!{<~<6c5~I=NqY3*Dn6KdF~f%r@f)P7~j_tm6=w7myz;`!+odF50c2E0q7w2f!p+Es}Hm$J^%(Ktg6Cu66;^!-P0Kj zLbBX#`VMFb1B8`!#fjckO$iqZqa7SJHxpFnJ-58ZVO&BZK&oQzp-EVc)Rk@Q=;*T; zOkNV#MZ&BQZQ+j9P9@j=AnW%)*Tr4kE4$uOZEs`!N=cd@pt+p*^BvvhU3k4sf6tbj z|3^{^Y{lr1S7ju3EmV_M-$2v)`n!96ov{JI65Rt`{jrfoDbC-YE~2WoLlLE_nCB2* z6UPNQd=Ly$-95Ga(>r?m`rj4WpKM2U{D4me2kf5_C#z!1UbDj|8A$T+592_R4-IaA zJD1>7V|!H@ixo%UZZC_5BPErK2j|!Ga3}w1@eQ?{vTv2qXlrY%DqLI|DlRU8eLHk? z!k5^$K}@bwiKPAAmXnAxNr}J_e6kQFcP#JW_3kxLLo1swxbC`?QY=#>(NRBNnFGSE zxcOu5oPO|EF@I23cUOVcb;gi zXubg$z}%eqUEj2ofOBc0*lzh&#s_nPXKfUY%P1>v!o4()SKkYFrHluE%GJPl0v?$v z(kA_lju87}nHk6fbkM^B?dcOL0V3Il1t*^ZBpk#|XOJ?D9Qe{m7LW=Ooq(qjPyj6B zE6$*Exq&@hR7q3?%xoZy`3RRtEL!(a6F0tYW2{-916Uq_dSaMtSC54;mXbEdLd#}c z?9p*tY@k4=jIq$I8S*P>taX$@xP7{XSj-6AY4#Bo{4j9CypA}~FhJE(ljHEifQs@4 z<41wt?E={DIDkjlfLG!#$5r0BSf*xdl7JofExrjri?Qzq{r=A6k;)&7~dZM*QF zgR4ixxw04FWOfoGN(aQ1=osrIYUDa0eR>N}jSt~=0G2V0HqgqFGM8Dk#5c4?3Jr2GMsHA`!ct<`L?smtE1e}ojV?eY3)q3y<-q?K*@J%T|bB-!}4-jd9 zFgN%C3~IpC8aG=_4)iMn*vS5|V1hTxNx9VmCH6{7tUe7g^DNS-t_B8TT%5)mm?O=N ze+R?&`>I$<2|-%85qnydI_@ywMw$;}N3J3Zq$TYiz$1xj3wLAdeqRBmZ3y@{dUGRi zLexcy1;4u+_#&!edOiWZNL2Ohz%CF}YCa7DuUVL{f4US1Ct_OofdBEIFTTO23f*S^|5+W!PFDV_kh`kVvf>!$#g-OFO3KPgzbxdgtQcvH;c%z| z$^Vh6;xj|;Fd&^VMFY`aq`x5CgAj)9qRx(11f!fjP#Ei5&Y@%)D7ku9FEQQV3`A(d z)L46X1p=l*W>QDrRO?VPMy~$;aBF9*#Z=k-Z%W+fgfU=)ghW8oQ(RtBi6qo;d26IJ z8m+24Bf~$2c)O}tX{ahx91XX9KEf^rnnI3&37M{FtOu6nRFqv=xS}{z7Ah?XK^PUq zWr(t46Wd{h*(KNfg5)b8cJpMJi66PYnART<`Cm-yKOuKD>=c7}{os2#Qo9BuYG=fU zeMtzIsdCn{sn=te?d?ar)|pXyOHKviO)xzelxzP=AIoVh7dX>Qt+P84?liNqMMm~n zFiD~z&?1EH1uE6kdPm z;6#1QWZ4n@p7yCS6a#4KvlRunSpOVgKvh|&qNK92HG+KVl8WN$_cSxDW|ywKpzn%w zW5Dl%*7yBYYfMr9s-<6ek8~j6`F*WwgR40X-;Dec{n7nQ~o{Y52X z>*Ee*I^MI^O~s4NCOK)wn;{toTC4nTs{Ra;{1s+&%x8+kEHe>WsZE1v}`gS zriS$M(iQz-$~f;~YI5=g)Mlmt9ud-Ds+x#aK7gmXe~a9#ycCe^IWOI7~?=5eQ7A%S`mrG zB5fhgxh`qcGJK6%QTN3`$GjAKla}%QCXL^&Nvo<$z&til(FSBj#wg*>9*ZF#FZWwY zZ|dP@a-OHnFmQ=Y(S8Izy&sXVk0awLJbV44!j`{YJVP_>IG+I&`o}@Th^E1-2Rc^> zJ)`qMn#%Wnpe>lz*%9lS=rvZr^BTY3b)8MGl!@D&8(g?#R`@Hc=L@Y&1~OL(fgfS~ z`mQ9G{utrYXw??Gk_0w*x#B8-Q$!FqT~$(1Rb3ft)e`nNr}Xvp?r}DzIG1V}H{YZ1 z%PrNaJ`e^>OdWz2IY79jHx}!Y8Nr}P&qf_q;5Gk1u41bV+qL^SqkJ}KBL^VQfcXsE z!T`wpF={bE(SJ<%e85cYWpmrx(%pP%=H&~~B3$%0MP|;kWE2xZ0?_D-uh8_DD1Gr3 zVLa|$?8*>^Q$_ARDq3Dz9&N*aF@#TFm-N5O-G9=z>vYuf*BxYk$B*Rw2S$7`c|R-7 zyX1gV^QU|+dEcLcINJ2>$!8|-Kbef={mh4?@kH_h*ZV?VN{%0mFz!njVZ1kDFnJ$9 zY8`#e@1}6_zCG1DZ;-q{vSg&_PH~x>yuW?q zKTY00@Lj~_=1b!`&kfhA90iD!{EtW8tvv-y3fC>@+lFqxQ-6|-&cy9FnC2q4_My$N zr+ppW!no9N58|Ve+`8Mif7ExNjK-bD4cY@_T#|Yd`kirG!UNh1WK8sbTYH#{UwH3C zUojfZ?`c0K<8Y>RWe^(J%^#6^X{ZId!gyN&5aA zxjcoRusNNtG_Fa%OMQxv_@DckkmBLQe@xJZ|Ar+nEP-JO3`<~G0{<^0;2pe|f$8Ia zATh(2PiggxBO^ca6aCAwWa7Wldt)a7GG4$7gVt~N!K@HF*8lLco#-JfLC!>>=0M*k ziBBV)zyy&WN6R(UP>-y)BcFo6v8k zBt*`S4hB6~RG-A&pE0CANct|quZ4v5WV}eOG88;b$Q2xwXFAty6aS!C7gjR{V)J{D z+k@1JwL)AYlq--sAzm%SS|xlG%bR!&B$!S)|VOh>7lRf56t#y%Ni^ zZs!K%2le!0S@T)Fwx=T&ebIkxwi7XH?fv~dedCLYmSM&`&{~LJghjj<3vbcIoHx|l zUDVpy-C9&p9E}xMv_^|#(P(9?va||_j-|!Lk*ex)fNE8g0rapm+*%SX>Ip|KW@ptT zDn=&clk!e1*Q^HN1F#D>%OeSBYkunNhL+&0jz|oVlnB(G*4?wZce1lNH-?{tqY z%&rj)O|fO!`E(gC@xcER1xwmm@ip*T^U8BC;@X?(zY05|!LzWwixpm6alV|4_HCoA z=8iT}`e|EX1j^eVYwlQfhs`&Aol*y=z!t<4L(&u8pefyb{l6tAk`oZ{-4~SCPlXyr zk@}bW04X^lIS-+fzoex4DWVGZO(uj=dh=c*4kMgFW$oSl(`alkm`uHe@SecyF-4W@ z#B@&MI*SnHsyf66c5p_{@9KqD49&?)R@S0@U+#B#rB``S91*-I!+BIl5$Ws>M{~Oc z&Sb4~PF7##rExBerL^J|?nSqgf)omXu|d^p$o3>HLL_#q2a&A!eT9T5tOV>+ZAn^&U0lh@KLFWBA zee+WQcUO#?o=pE5U%=@pA7HHyIDwDiS^bt$hqi0SrMt)enavawY8x?2p8I$>Fuo$((>4P%Iau)K~cBS^X$Py zMX|&Y?thhv@gx1*jLU;8i;nJr3Q8&5MN!lXO>;@w5gTgT7F^vuz(Jf?SY+1nqDcEb zFBawxz@HJzL2AIta94jlMc~EgjTNjEVuiRq?lD278)Q~r{x?(^@_YN!+}}UFvT_c6 zEB?#0FxdRCb4=&zTj_eNHFEb1hI7&ob(&C5DdFeTT7JwPx`VwW9bIrebWGHzKxEGd zZF;mL+K@-yNvo3loj$VvO;O(#{@gcYUViYGLJvyWsk(!5+}gFEZ1`9a_XzL8RpO`< z{xm!a(aI~JBP(Ks!4|YYcUR}?nxxSkU2{imLmRH_?#h9m(jmrlc8(GPK7>SdJ9}9n z4`gq>mMDL&NJQUmkV>ON%@sKvu}Me?FE}mSmD4k#7}9#lCY~ZYLX#(HUVV>4zgKlMYg)TQ!7@w^*~U;-tP8Q@FCZvi zQ`@vv>*CIsi=D=FEPiiQq)*rj^evp9dvUCD^|a+mJ?AeJkqi-jdDiy#4#Z|Tea^?= zGo<4xMhPo}j9FaSg20D3lJ3sJ(HzU)`>gW_L3`>~u?k!1AdySN{&=V_WQ+<=BH0hl zO=m^8vu_=(U`0l6KCX#omv6#Iia zNvv=7L|0u7RN|}1Pm%|?o8)p~fL+ZbWoCloa*{zI&QUI5LxiJONjp~bn?y?RS8n-t zp?o0B72!*hYf<3ba`81z3qPM*{x7FwjWSt2>>LA!BJ&*n;&3H{q7XhihV%KhP%Aa!BxH>}DMv>jr#SDk~8@q-Dz#4KT&e!D^Wi%P7AeT}ZCxlSq zT5`W2ly~6eUB}jMA%|YD6EN8KkA$S)7Q3(SMaNNzG_`P><>F*FFx>7%l<-4+{%QX|wDr}9{^mrp+{5Bomh$xQ@{Z2cQ&+cX!lxLG+WZZ8 zTy6^<^`=c+;m8Vi9m_sqgN7^%M^?j=x}u}EyK6Zw-xlV*i1ab3y+;~&B4%h6Mo2qo z9MN>yB*i;wV!l=o49=DEux5aM(rA|n@GE)q7OD1;n(Z}V|5R1KV<`1D;~BTA{ZW-z zm``(qa#&6Wt#LG+S~{Yr?@V8EVF&34b>*bt8`DDGF|&Nql!_1QlJ=QKP{}b;l_`c{ z|F-cvIaYl{COD|=;Vek6JAowwdu04XY^e5 zEx|d4am1@^x3!{^#>5r~5H z!^M26;OoI2927SrvR z9b{cII$oJvh$AO1q&!FgNxJX~`&^KWdn??-;QMvIZ@EHWQvz=0x&Q%-8}(pH6?n19 z=RpMxW-?t1hS@5s%HU5n;@;P|bCuMM@S`$KQ?djLt;KG;6jwiQT@9)g53`zpUc{4& zYrx^+;qu@U@U&Q0+^i0g%lb6P#cMG+2ZRf}NMLq`av9k+(7#RuBP|`*v7ZFBwn$yU zI|O$yOFCsAs{WedOX;*YQo%}+!mO#_flish#JkovtKF?{RTcs33}sOYq&aR-nlq#; z!_I}JG8YLrdQzFx2%I3PERP)`$q(`l6t&N;zGLy{ZnyjVaiU?oqo3aq%pZOx;yErC z`BCx&aLMNL8+h&UX4lAS2%3(4UOg@an6u&4t`RXPg0=DAeI&D0S3gKOT)Bg^X-&b3Z~B(#AsYxyX(U zYOarM(1$<<`|S%_@FKzwmN-|9i~ahU$r={}f~d?W$YSscnW(Zl!x_j_!8rsvoJ>|+ z6~{N?IxyvChOG7t;s})7H}+$=hgcmZ>WebbEZOr2VG_PftL^;xc-|u2j|dMJsIN*< zuOc+tS|l>#(owIY#CNp7D1H)DBFJ1gyk+{P_y^Mr#gAAl%)z)upgRY_gygGF6N`c< zXd0pm1{t~4MH(yh3A^UnqS{w!zR?@47hI(UMy~=7@X!YchE(6^MV6|8lV|kv$UFtt z&uFH51~-tk1s~IB?o@TSGTsiLq_WOHEZOaNc^%dxd#FzavN=2iTxhN;H)zTN+04wu zTbK-M%ltywnlJkh3(z0h1j21tL$qynoL?$1h9f#)62@?cgUH8NeS>^sJXSY@)yQF! zg)(!vQT93mIZTiIu{)5%qHG!5?o15i?8GxsLJssXki*IeYmyr;E|ANVRJ_mROuT&q zq)aePxh#aOGLVa?4Qsm-*P+Yi?!`WM#B-Td3>L<^f4?n|3rcBU(c`#*xy8WalgA9& zd0fhY#6TWb@vt|Lx7lqOUOsEl>A9+Gz6#jLahu{1Gp<{`%m?mzJ6T<%2gaev{nH`D z*Svo4fx9**GiOo(b0(pE3fP(-_XG;qzHY@9t-vZ&fZz>l%ln{?D&T&(9h``>u#YMi zu15`fQb3OgX(ZVvQ-A|`A?^Az!$fcd+KiK2KPWKV%2W_LR7 z@D*8R+gApaC_*?3_m~h@0+kKj41y_G?-1YrkQxZ_!#eGO(3L1>XrIq>&pL?nn`}7w zn%5G3h&xvam%^>#QWu4w=;er71Vf#8-salsVYw7@RsP8b3&2-glL}?y+7$EC%fzB$ zl+#*Hh75?npwyByKPh861Gc*-Jz&me8}bH!PYvH zW*@qs5*N%vq#4bO&ld(S0Bs<@JW8m-1%awV;5_34hvN6+cr{0>RmTm=;L)v)p_?YK zG@wcoScULm>E{G6aQU(kq%~o!5AEQe0Sj0YpFA}1JE!_vFo4anUf7QSvD7(nfrN4N z-1x8t(>=*j9Bk{LP~hCN_MtG74yxFJUH4Uit#Q(=Y$g2T@rV)_|Nb-|vVgs%@lw#u zCv*4rIDL~XlMk__Ipe`(3pbs5!zuiRQ{J&=4so&gnol=)4WF&qX-#PckH+bZxakJPi7L0zVEJR3f&?tC_P=j}$|>_xDp4Ln9+ zd~0ZTalgv<1{!vt42(z(%*_W=G?OVV*9QVKANO0PW)|O(W&~z2A0a9{o8@uB@XZeT zxrEKhfjOH&j#rZvn6q^h;v-W7a~o4(Inx4j4+ARXgg>b)<#J-ThvZcwA)VNLvEw|e8pp+U{8LGAuPGruT0Q1d=)52Od0xw4pGHP>Lv z=XvnY)&k8?D)r`sKy$m_9%y03QIi8LQH;5jEw(@lW-sc}V4!6?DheyKkgX83=!_i} z%N5(-FQ=96{@<( zGWm|cqMDIb!@iRX9!INTG5xUensF&xTMVE}S&4DiQYPR8 zo#fJFs68IOl!r6kXIZ>IBCwPR^e`_9vzg&7t154~87G?YEnYvuuL-e7co;-OMMAib zx2y)}labe8t0Jr$n2ATZ0byODypM`5VcFMc1gg{-1ujqpM}Y}-)79#%)#ogP-V8Qwq-cLTf2*Rypb zO7c}hdY5n~JCPW;gsZp37r11fo&1YhC~eGgQtILp=DtI?eTO^H$0i3YHNd6?Eik|> zgkChjErC}WXvaR9eP9!lAZ7#x_$Ohbk+dRiNE!{_ilAlU8;!s!Rvi#buLAQkGkUIK zEx@F2RSb;ot6cJ{Jz3{;@|jK%W|IK^{qW*{RRO=Esogv z0}YfKSi7I)V+*Wx1+CfdT2z@$^V;nOE@JCdzFYCFooIDCG{ZV5jBgU=73*-Je=K2sCjmQt>?IJU@eOKKLIY|PJx>@vc2AC4{Y3Lw+F6ZHNz9HVExBMSEQk2 zP|sd*2x@qxJ?ZOlwYt*o`}#&+A>iTnK&ARnx$o<<(gyddczk86%_p(5X|!d+Lyo{z zY;N$A<|_Vy%i9bnS5HRZDt=$s#;e*`6rQO8u_fS$`6aPN4c3@pMZO0RM%PoZ2!lw6g zENi@J@kki9Y$dR1OO_?lYq-kEj=(kCts%{8cufQBw%717O@=LCoriRLdxW>gVclTGZsa}||8OPXn`Q4Efg4$eFyXzCI|grgMF+Fe8(Cp_pI-#J zbt7^rR7|#R;$CzUiwdoH6OWI)jo*@%vz1>Zs9Ht5#2I) zzqJpoxP^bCLL|4aBGe@WZeddg^K}akQW)58;ogafhP8cP_1*G1&%@bx-SRl5Hn;GE z5U+R}KL$;I+u%rqeS7>MhNs)O2k-R;ZsSP=%_z}xr^^to-xxZV1=lV29ofIBe;;5TOA zPL||)XW-6kyd3Vh^J6p!KCCfkJ5NNu_*u zyheNA-n}p)JJSRAW5fqSietOVT4!p8CYEU7pG_px!gkChKL`@Yv9ulsn3 z=05HXSg*N{FMk}D)!_=L#7nT*^ zem;)gct2Zp4AS?rYN7Yu&+mUgk8hzO_w#zq(0#|p2kvK;$<9CL29xt-*5RT)8_py8- z&wW@5;~#hXcqs%QP#kPo*m(PW{KH`1`B?g{iy?e)%^mM$-z2ovd-Oj^n-NfxDPp(S8o|jOg_-fyt(8}M-?t;1A ztDEZGAs&UA^Y2EA)I*weZa*J8s5Ni72kB9J z8HROf@-7_P=V)%(jYKVST*Nhf{(-G{%ma-=T{OwuzX$j3CiDG0jr=ph%ztPrEKj0Y z_As^&xy&sO<2Y$%^anNQwj<2#kD$P+$>!U8L(l~>A9{2>9w5v&9>xAc*=ELLIKRp? z7e9UoQ-i7IYd_iy!RMG|PXx)gd9gHiJ{hzg=-P)1HoS zp7IEFyVKnA^g*lm=rcIpIMKHsmo3gUv-hKr{;}r9{kx^wBg~8+FU8Y@nf()7wz=Be z$lJp>{?i(v&Pept;kM0*X6H|9P>SYz9(N}@eLTRPs5CPUG~%qVE?V!gDs))-w%}xq zG#@{(6$+DTw)||LP=jLOmS>Tkh9}iMkK>Jsx&8SX$U`?LzJTjPn)%ubJpwEYtWZF=29=Hg#%MP0 zY4M@=P|Q;IxOe{S5vJ$;-M9(#OS@-0r{O;-wa~ zx-j?gcBj*P=g2xL0@^|u6 z|5L)nh}Zw#P`o}zB{s$0QK#2dDQTrTRf4=&GKl)F@_BpH`K-CDx zFP>n~Q6N|^k9{u0K9kY%N5D}&7`H!ziV^MnRj1k8GMRk2(-Ch!fu?Z;bkb17eGX}} z$=*QDLQ1%TREZ$u&&B!wglt{F)p?iX2C79Q_`0cIjKR+o4uCLs{<{JApXl)b{PP^A z0`ODg0r(^TKM%k^rZ5)~10|e}!7u)oG5A+GhGOuKkNFod_@AYDI30u^9FR%5CaJ#= z@^6V&4E_v`!7reVLoxV8ge-^PpXK!kSC7Zxk0H5;e*f7x{EtM^x<88qFd{T}bdvIw zGXwFD>AvZ^=@Wsl?UvqfS0BP*mvcD&TUIze(3}Rt@yE)q4Ta;ogjy)l^8QHbn~27r zX+`5tC1pG*he$=Bzapv->pqhZ>lj3k?@&1YaYg)6&f)<25Ta=T_bZM&|4BH0Ufz81 z(HBDTzr#v){iz82S2+UzCQ=Heyj$Q*`Z~C5pP_|T2>xjG+Xw)Shv2VJaTa{%zyhOq z82%09+=zSt%?iW+!T%%-|EI~~TwbQ)Nc`&4k@#ui3z7KpbCLLSWoF^LF9zbTiU;C< z3xW9Wk$h$-5P!)~ApX}m5MQe5_vocF1M%M?jU(~jN*7y1IpXjqll#e`Fnsw>!|>;M zmG$((nPK=YaXsE79*O^5A#OV(68~zB#Q%jVf0pX)e<1M;jDu#foesrcz@hj%>H1Tl z_y_#j95QB;ni9^_tXTYK>5kK}_}{T&@sA3Z6^kE2EPif07QaDNebS$6Du~6`W#YXg zUsl}96D;&eRzHK*e7?>RFbKWfF}ue1w|%w?n&z&M=DAQsits`CwB$M=XVLY+u@on?2~jkfg%V8M!L<8E!Vfi!849o8kbsUy|C_(Ka zF_n(!UmBCYQXJ9htTc|##^nECC?@}>9FzYXV)D!5G5MQ>u~{f8z$*SKybFGXp#14# zffbbhCxm(lCZ67j!fih0o(j~(3Ye=hr(alxlIFCL@Hzw%m zwsYL|oLjRvK|+h(C-pKbF8^v>xl~s-IyAs;OeL3lpU&hvi-2iI>U=9S|8F|H#0I7#KvW9#eo~i_zC{1pU;^8iMjAaPXNPM1 zOnyVY2D}|vY20L+Yg{jLj2{YBES2sjgeXYT9+8a}M%k&k-0+uS2@FeMSOUWm7?!}7 zOMuf?`0t$f2A_=ozuW$N!Xf)^`>BJ&Uxpcs*mcajY5-6M;$5^i} zE^e)?Xsar(sw@jtgVp2E-oo4tE?&w$EqWrB7*d|%ImW| zpJfXlBT8~jWM>>Tia_2FUz?8g7F-l(mjFONLdV`XV@$`r~9j-NmeT1$l% zQ|c5C9i!mf){8(WJp?N89l56tCHHpp00lX>hQwFNmp7fTo*JES8T}WpEe)b+G{xE; zm*GiRt~0w^=sc4lCIXaNm?Y}>*kQ^t^ByFnjx^x0+JsAPq+`;eTOL|vWAKIuQ*U_0 z-|fuz%0Ld2r!E^lAL_?Wz`Un_ZC%U&z%F3u0G z$d$(3BA_*scv0Bz7V>pczlU@@lHDZs(j~lf2Uthg*&!}zYMD6IkjcocBH zWu>j4+nUZ*j(PqmO!yKDj{97BH04X+xZ}9tXCQKanD{wF z?ms5~2N1b`=#C?D-y;8gMDDjt2jc*>_5z}4y6GOR?U@T5THf)M*mTq5rB|9G;KG^F z4SfQRY#oJX19W~33HdoV?rXtN0w>RM{0KxZL^62PUyJD&=;{E795m4+Q}5{< zSk}?C#6r7o>sZDeaEY0iNF_M$p~G4N#KL?mQ-S$5ea*;h0=zt>a{2fxj&JZeL3nf7W2w8@nZ0{WG=Bh;=d<2z4>4 zp3~VtG8+WM^nnu><^#Vk)&)8nsKrFE7Uct|ZuR5{ZR~?*GtwT+Jx&kA(F0+Y^YXq% z;vr|Td49Jpt_xa})EAiJ)5#k=kHAK2qpY=S{|5X%6vpsRz}vyN#SbWiv$>I!mzcA? z7|vk;+7yudia6$ncCO|MkL3rSe*uI8uTv+mmv}#~5G>S@SZ)Yp8wi8wn@-;RI~>41 z`Z?cLh{3Zy9BI!DB0?k5-q9I_SK*fgjO7b3P6j811+YY>@#E){Z=Ic#XXt*ukE^!M zIa+wWEY#PV;wDpKKe zvxdL%he$atN+7vo;+W5(+I{W6Un9RW*DA14G&Aq9e`qh@SWxzrLI3AuErF7Rm)lY|kiNvW7v*Hy*5(uDKIO)Of z+GO2~^oGPkc=7&?2UlmgGu+)$TWo?l~ zV{MVF?_niEij!wOstSk=)(cPrdEVfF7i4s#dlotDP!ta`{(SlG<4pWzqY7#xkX~Zl z0r)3xkKKM;a_X6v6Jd~f=;d4yB;a^iKaoG<<)*At)4iLVcD#ib`8hrSe+0b1p_Ff^9udH{5ECC)4y4KWSXYoa=;JIgq|caQXSEr; z9$J*nS>MQ(O1I8&rWleC(^-1RC`#w_CL|MC`}@^EI`Zy(1rT$(9pXmL6`$}=gwZLB ztL`LN$8-WdOMJHmHY@!AvUiXnl)+`AtPFmMEA4>{&ig@QXKm!qe zg8aWswpqO8lrDT&`NEm|aT2MnnVbwb(VL!`mgJ|KjX)-&__$Pm=6)xuReQVz2RG2Z z%y@D%n^|>B{3Kdy6zAZL;yNPv(%M4Mqqt9PatB7SR;7vNQFyhixMhJZjpB+}TNjeI zW)KeGwKpsNQC4^LS0TOE`iAUN>(=V{9#TRBoTZ6e=)eg)br9~!YI>-2kShV<1NaHO zg#y_C8?nwIw-w(lL1c4g)vV;Cu?ZxyQ~5Pl`H;?J_c+btZ!b+%YbgC~4=vpME{LLP zwDkR8klKOo&PDEpyMex^x46t1fA*l0>gJ(8HzMtt7TVuO29-zmz3u@@(SBV27i35s zCe!}c5X9_Q`1)UwZnIRHS03IBHFuetkKp)vTDbHma-4QbbL%necP5xSj&Ei4HxC|P zkMT#CA30=9PcPO~{H_^p7BSSM%V1<7QPE=lKK& zt3E*qxTEa%7%;BH1^F^P8M#ZZH{!v`N^?T(gC+ecW)6~S>;%&ALQyTVovF^L?25IJWm8Sm1}K=QjFXUu9Y@DtYE16EDdTE^e5{CmszwZ`X`@rzUc1IzfDC%%mT zN9BLKjNhgI>t*~VYZ-s4^0`&~Un55YtN44>g(9rE#;9MmivPO$IZ{n{kfV{d>QJP- zswCW2QP!rKDJx!*m!WfT!c|APW-L?ZrRdAl^oh$R9)jQrJrmVOyX^Xtv)hvxI66A{IWzp)Y>f%@=5{k8z zR}^oNM{R{)#<+9QPjxfacU*bmG)ZCK{nEZn2T5Uq?TaLZTlJAkW@(>eD4eB%q0sj$ z^-PAs<0=>mQ~o54W9pTzQBv+EN0;5uv=PQF_Cbb1-STfV>g?a>*1a?KIFBZ@MM^>? zW#Q_oQc!zF%BxTNHxl9BNcz29Y}Z^`0{j~-j(^Hfxc_?iH!hS@Cz!T|6`FRlI@%5r zY4LY5-gHbz8M{(TH#f7Oa zw1$Q|DBF<@`1);Blj7V)=^0Z67g6a{rwVWi>i=<0!7^*M#CE?r6simrS5=lr%S%dH zKP6x6$T$C$*+&RM2*f+3@Sm2(S|cT2X7)=W6;-iFEL;+;j+Ta6&oukX{|9D&$oFa) z{)-)1MZF`aczSR6PW4D`-`uWg%pThZ4<(z&z9xh=Fh~5qcC`BFNZ!9ez#NNJmxapO z%F5vq4Mi)eEYm-dj(EzWWo3xMC~E`XP-SsN>E|rJme?9+U;eg!B=HpYa;!L95-V@3 zj#a|RT3S*KtDj^XF)Zrk49k`mS^V`yXM>%pecmjKWam{%Nz9{{&NTfI(f&mi=2fus z6HnRs6E!RTvu55DSDj(qM~lk?$)iEKJZ`jj;IwrgKTG&lY=o!ri*DFm@|9KnXE|I!T`x8I&q_WQWAwhv5N4N=om5o@b1$7H7xQ-(-!YY6uIW;HC%fmu;E z3~?l1qh4q+B=7yaF^@zl+hVPu>hjiDWe5|e>1xu*>8iRYxwxpO_b*9Cow_*%t5aEp zYfeb5&a&pwECq+ly;`QwkdkMRQK7EU|C?MD*6EBCkyrs@W4BAW*7ck;Tuf{nu0Ui! zS!HQiw6Zu7Dy?!UNh4g!f`0U#qQwp)LD`(5Cn)Jt6BHgVR(vRMsJz;MOV**KD4Zn~ zP}b;%a0RRjLU{rQwz=Mv*r51U%m~XPq2h39Wkp3aR31>00s-Z^Q$E;D314NV-P-1s zF?f=FjFLWnj8)KAJ_a?hQtnU45?YpGPaz`{&q2sdrgb_uOW?pZ*BcTWJg1~IT3KBR z@^ehUqHV3QOyz$^m%GP#`>By=Yof3}>cT+uYxfriqNA>nOPsFH4Ma{C1|s98gfj=C zJqZ|yu=Z~}knk;6u9QC{$FpwZ8BpbZj z2xF^fMarmrJ>AUb!Nz-Df+oK1@h(|oeAY4lpWvr$w0>{!SW;XOixd}Ewt}v{tU3gX zhKXrW2YB0inai!OXj&)yscgv#;cF)#4V~nb?4iHI*k>2u&~_j8`P|;YZQ9_4%q$ZB zQ^~-WPnEXzqp5NG`I#ty-dI~Fq7Mp&;-re2ymV5*?*gKOD6h ztfPN+s(K-n76#9)rOUco`@`&@-ffR|w=u8TcY$F5N*{|Y4`g{OSFS7!-$AW~-M!0- zI-jHu*7X(5YM53(r@6iWRd706W;8Shr-5)Vh;3uj+yxDF^>x9ybAq*Vg5zqNadcd8 zYHf2vbAE7PL(7c0^IL)oYnz&C=d?7`HwWi7;odoQ4J{3G=U{I-?mE|bPQx7Jg4W~e z`lew0qQ<8BX6wp^*^RRr>T#-J&a_$c>l)^q-Ao&1HGpBSwxwYeC7(Nv0?v!babjvq zL(8oC{NVJ4mN|UybUdau*jU@t(lBlQtlFkv7aUh)(L7cvmrQV4433xCe7VW=%usM5 z;tXcDDO-Y#z1^5?ggZyjrwK!(g}to|pAlb`{UhPb@qW0DoiXj*(;{bq1VDtX5@vwu`6p;>*g&bAPVWX6lIm5^AdB((Cb zyM&s#$mw~aHW%@NX4+k>QxnWQFfeY0!g9Q3JlrJ4;gigBS8tHEMCgSyje|R$pk|BQ zY=e+Lp&g(MjI|-uCu)up6HsnG>CXu{ipmjiaV<^bh{qS%v1)vmH2Zu?$=^?)zS9?w z@{~x*NgeHp5IXw+Fcg1GPt><(0?VwZ-s6kJ)LsajhGZ_p_)Fm$Ju>O;e?b=-4unC(sni=-`wc#|O=tnhHWV z$z?ZXKM@V!yev>vxsDU^GJFXAWXWMSMYq_c#R^^H4) zdJ07|G**M9Qt?7!5QO{7ng-qqYQd(Z{x{ z^Jhat>sHf<+!f;Mxg6P>mp5SpnAk{1>{HVfgL{(-B#G|x?Yl2g8%sal;mAg zOC$2P&~!B8_~(Qpom}@(@$zs_m1Y|wWQ)4Mii8S~;TMV?6IveWGw6Pf&_M-p-5oRq zI(r9AYDJ~6KT97oJ~&S`_EJzqCiD*|b=_ZNKh$6r*e(BH{}xoBuf1b=a7D7~gM>bW z8gUd>ez2MKo~_KnSomTbxl)uvxqc(WJUN{wSZ`|ORtQzu+_v0D?Y8aupIG-WAT-A5 zNq1`(L;EmR`W>t)bPiL-0(&O)e6y*3`mFkCElXzCx760vw$v_}-(0_Bc5UO5#<{c3 zo!&5OmU+Q5>N$)~Ahe_M@d~Ex53zO zy%CIjnOcS~$0$A5E#@x4YkY%jxYhUuX}Qg@c{Y5}%dNvxtWRA*`uaDam09Gxj*_S3 zNDUAsd1PEfq6K0)|NP%2m=|2IA>;BcgoHsE`r-M0FCk;w=dy{ZPH0-H%UqHZEDv9;&V8cB7NSQSy}UDGq3TmuI^=?`SwE`lx+pb z{E4+gG!jXO5AhK9nF(BM<)(<|Zr28`)G?97^Th;~BvN^@sApVcax<}Lt7^}g60iS< zZmw7D{BcHNe!4LnxX=H)?sWp4BsjW_Y@bvWpOF2MG6pwt3b2e0L%DY^h5x{FJEygRch5t*2?*opw3M?(i#QUsJOk{~h z2jo@tIIsR!5?1C;UJp{QZ~afL67M_A&07r>joqH0zGx;iS2FVrE(R;YJ(-zT8=@vb z6@8SkNkd*Tu$8ye)16xl%(!4^J-KyEbNRRt{pmsGQct;4h|D=aB2 zz0TD3rX~Pi{4Eu+ngf&nn4qUAVudHeUUJNYlrly#PmyOcs4lWWKNoSEnQ|omON(?F zD56k7@wHogCYM-OQ>b-F>I72l^G)_zXkjxQ56B0Fhblbz*e~klK?deff^mK9?z5nI z#a(XwW;UAm&?dKg0OJ{)?@9DX3}?I8(R?At7%23Us7VzI>esw^acZYRv(WzB`fmhr}3eRf@n$jj_h0T#d!ja zcXQ|9nCwKX!Hp2wab%Gv)rYvW7f4v)}H|yx7g+J7%o+K+^K>5 z5<_{&Gev&1cAYMkvv_foW%?F-v@e3@1x;DW#BW)O{&P$GhRxP;4RM5Jh^_7f@sux4 zj8Rg3om^Sx=Hn8r>p9P5R)Bf8DDKypzK)Bb_&8=27yDVNIPGHk4XWm1;vYJ*QiVuy zGd*Cs{BH5C%Mxo{1I1Lgs&=}xM%DYGW&W6h4#jA9f?YQuK2Yn;7y=z;>|eTx;ijd% zZMw6$S*E()H~EAN<)(B!*D#>g-LDvbF}2ruQutNV`itpaVk!sO2JlO{Mf)3L5=I&7 z=o|0;v+mZ+djW6g=K$(`=1t(P_^RlVW+&--#Mprtx&9i4s6H;`X2Tvd+El(UmFXo< z05=^SWD+$UFmacwUmA(^h|p7K-%Cv|n>%mz+(YpLp>1wr9_`nfaN9nmz|`iM?t7U? zGle*z#aXY%iB<96j>aA>eA-ukQ~gbNHa_#*y0Bm4BJjUI+k4HMHo$F(9(!}m=d1Yh}`!5?5|VS>3!S2A2E%FzqC@@G@r z$5KQtAE$6GwlKe*U}%31_rXSHM}MIJ^0;Z~Y_cR?R$M>QTyL0t#;zFjv0`VRQF`X| zyFN&tqU_JiM-0_3cuU5lfjQXqJIycNR8o~!bZmY$pEpFO%Oj3k%!9qEw&{P*GL|sy zVMRQTt<5jSi#?W4lv#1=C?=k^RPzG`a~~{D+z?1sX86T6YcRfS%CY~Hx5im7Y38rE zXO%U3cr$&J{B!e(d5fCn&4zGTblrg7nH{g2lj*zH?Q2xNpp^f{;ZIuEVG!5jNRGuf zS;{>urRkEQ)}@)rig?A!Q(jaMu~+plWp=u`)JmG$YL#JvJtf5bj9YO3bf&q)O3Q^! zuRGd9GfBh11e}qlr)WHx_gK~l1@XK~Kg0y$DxK*cf~d#jn%9m4K{KZmq|W>$6W>_h zZkq!8d1=ejId!z5{IcayTT;y5tKyS1Mf;T^eqs6{2YTv1H^l|3THMQeia+98uJ@xT zn~Tq_N^v*q>B{2bQ_Cyf$Cnr$Q_RDuC!E6!sM<$XaGerCR_il3T= zh&}UdtypV*`;Ij-L9B^W#4YA{5KE$dts!p3&n+y`)of^YSi$fIn%HM4%H0OA5e97} zf;PkkbFA2eI=P%^BOA8EJ*H~Shg;9^TSMd2g5F}fc+wg1ca|=;n0|9KSGJni!)(5+ zh=)z?>hdWAf?7AfNEWK=R8U;>dE8w-@z-FLS|Y@rpv!uni7GKAxqcaQPvF|83Lh!% zfB>39-*A7(?7no-ia3!ezCA?hX{KlakP`LzhS+Le1t2B578rQ%Re)0>!RcOe6yTId zaJt8Itm~NegvP%~Qs(I5)1;%p;ZaE4Zhi+T36U1_+i(AFGLLYJCZ)YtTr}hLQHEFo z2&M8w*LXuL#m^{AmS2I1xWNn)FgguCp8T0JoWO8X1Pq-7263C2LR;TIO%LNIS8842 zlZ>^Nx1aZoUZYUn{%fp>WPJOqxzSw+O5Mb5r+~C-kRY4Nr9Nw)8*TeDGcrtzcj`Q1!}`yBkY8yz?|55QLP{sp5 z)?lV=HSlFpvr`q1C+gxc#2)iyiQBp>?nAn=Dp7fwi`$KFzg=Q(aaj-PrlpFxAkAlW zf&GC3(^lMLOcR~R?=`L!>(MVSm<3*m&4DfpYKIZ_Ud@!RH1V);RD8(-;!(qoPpT_B z3{N66x2c|;#)8^r9KUNGmCpasPbq2fZ_J}0bf4B5v(kNshAMju(!p7B43>fs&K;GDG~E?3HTdbGI(~r@tn(>yH`#McwQWxJccSTkF)<`}ctb@NSuQ zgThB=go|=>SU9)nMctfWYHMn(k9(W*n3yw+DNmOuBbm`Q(G*v{p#xfZH0MbYioFd*ZqB zvP=N@=GR!r*!RXre{W!>;$73EguS-`{}m?AzYQ>}l~`6p$NqUIE)@13Dt z8YbQyif^GL|B`HT8T$;UGXGKgt-C!IS?&ktG7AdkH4fzEurc~E*D%%(XHMSX+J`gL z5f$0ZO+`#y$IVmZf$<$J*K3&e^$7mE5eAmEpJZG=r?{sKH~TQ(2XqWTEa*!y=MYiL z_#G1;kKo3aoFAEn7-3pi;TsjBnj5{D?*i8bnd1BiQ38{}KQ15L+T0w(L>wP#&St{Lz3zS--?L2` z_tKF5K=rSgJB~wLH(QwjA4o2H0_tXOsGIl;R#{h-Y1N#6Xbq$88j5I|(xVJ=U^CO} zbUjzc#IijpraNb*`qmWB%?189nBnJItD$^5-S|lQ!bWk35mjw$L9DdY;lG$B)~Vo^ zno`BY+c1=tFyZHZWf1ef%~Yt9>)gh9=KF@HmVU#{xOh>_nf@#nf8p5!;pe!_d8_Grln47fiW7mO#SU(06Bs`~N-Q+{DDz9jK8*1(781YU<-2H8oF@8c zioTVLKbt+wL5BE)<`HYa#r}lFi*c$Z)&!HpTb|+2?X(hQE8yOa6NaJc%;bhbx+sK4 z^Ztd(z+`(QKHHl;6dc^p8`vm<$sAqDSs%zwH9dp4R?a#WH7_UE@=R7gv7@;y`v&G| zX4=R8vE6XvYTBL8u~cB*y7KBVw%q~9>)UNcQgN7HV|h; zzh+FkMJt)U;F`*SI*IuQGXJe?4V2B-WuO`p4@by;Xi3d;TOFn>I}BzburZggjcn^6SS^3c#BV+Z|q+MZgRXD5rg zxVio25PyIhZ&_xsHoRkY@5;iZUn$MA7dDobmlkzzZ=PL17rT=h3+N1dLC+QA$%9mo zQEiN4dYY?+%<}BzcNz_3&M&{;5^t7-igIy!9Ts42(bpi1W%EAc>LVS#M#ghyOlpKz zCcLgXE8K6`lu5-@^`Ru+3}#fZ_*w4=qaT}CN`>bIKKNrP^VS%BSz~W1nTVB293Y*% zV&SaTmU0#-D`#95S#uW2qw?h}zE2siBeS?1k9LhUY;N4eb3y}`@pky$%F)UL?eG^U z>YfID3=_r7W$aJ@nn47btqFbMh~3(wD?_B4hpK^eo^ z$(Oi1)a?#mR;XXe^~z)=AzYSeu4!{kQA+w2mb`&5*hApGS}abm3>hz=VD>;jTJh037->46 zZ15j3@p6iC)odW}6J6h-@k(Y?6G?MG`?4lVSiHwJL>Y^B#~GqGGG8QfQ|2<}DcTZu zx4HB35?z-$U!}TVVm(3w|7hff`sFITkhyQ6>*tIiKvlTHFuzo^8`-Sp<*gm_X5XzS z(>+R44`qvznZId;NB4{*a;wD$<`3xJNs4wo(=YV4`ZFc#dS0qD>O6qP|~U?zCnsnj5E;+^au&UX9I9B+2)_P2r67`@~Xt1 zXI#CwZVot2UEvd+qPjU3m|x9i;*ZQ$3z+zvU1#i9M0|@SJp8xX9g2RF5-7zNp|LsP zFWiqKzC{hCm${AiK>RLMt`%aI4#$L|c4@)VgBh)n@E`ALX@g6POUlzl_m0*gKkPoP zmidj@%=0TveM8Uc)~y>ep5eZIY)DCIsQwL&ru|YT9&jZo`MO>K``M-R(2W^P>|$y| zI2_6gJ;wrpvQJ&gsrls)ONjou3ZkDSX(hSjma1mvL8w$r@w~#+bGACRK`S(&kCxQJ1%=9M0PX0a48pmGO)}8%Ufzo)s0ej%P|!-@?+u($Mwo2+u42XlCNXKY6L2 z;mkLUd7j|vP`*U^RSW0c#`G^qSBxL1-K>R}mHV1AR~0iE_uRw3^nn#!RaZY02fne)C>?O{rMJPcuzcRayOo>h*!QyL(Cnrr z_2R=%ks3aII+52atCg+AiG{Z@Gfh>`3hf+Ia=G>-!|83;h_cYg_E`nmU?z4eAv3N< ze;m?=aG;9rLF<#JkGtl)j2iqOxARw3JwI_M1#5v# za7PF(O6H#eYv>uRj^f=kgVeuudCf)IFuDZI9_49eN4d5#P5g%U){foo`**I-*Q~MW zRao`)sOrmQm3U=lpdOd`p=(%RVq2oX*9NU&T)A5pBX|;Dbo&x)n+XA?^Y0<%_R~`J zcTB0uD8+++GcsCT8SX#(wLJ`4R+9dlVq&#+C;}RDvqxdshiUwBYGXF7D^B=2AhL}V zhA1vc;rupAzPv9`cPJ$x zyp%PD3C(q%7@Exz#_iweKhM=~6~3Ao=W(!qv$=BR;-=Q-_C>uq^4E83XeeTrL_-6u z^bDQY2TOsNDILAqvF&3~0ivNSYHD2aZVR>@*h{wEwiwu0h!yv$YbLZW#V&>U9p=aG z_`>P_K*zBsOXn?YtA32X<1tz-^$AwH5WdfQw!0r?eD&&TM3!k_1F z`Xax27F5CZuhwg;a`>=KPPgq!G52w`Rxww$cAwXNr)GTP59H6u<=3y#kGj-UZa9AT zLkboNvKz0fy+gg);Qvsxio1;_<{qfJa$vP^ETrtDrS+Z6(|)&p4Kv$y?XN*SovGuP zve#V>3|`H&RF+WP!1OXEF01M43~p{vN<+&Um!fB-o;q4u8^U{9Q*eZw^H;D!pTXSq z-26|?%wnEzHF2IfKL>-G+jug zshjnm(3H{sWLUL~f0d2R6CTe!2)l)iB+avn@I6U|y+S)h3LD@yZeAXjg94=oZ06jI z1^-q+7rhYPgK2lCrnXDBgp$X!N1y^#KgIk-%y@~!k6Fr%4O;DVY*{$uDi2>1TA;h` z+rn>q*h+p7x3ScwY7lHc_le1@jBoLHcQD^6t_@MNhdF6Aen#j1i*)X=du6OF3cKZJ zfhxDDAf~!isowF-9BwJ~WFak`2xD#zW1>OD zrj_pT)-&orXs^386U&k2Zmo_YffXw*b0Qb{idV^Hu;|kiP+^vmB48ydI>+vD{}x4z z=1JhRO)W)$b+e~$wnam{ zPEj9LyfyN7561t*L~ps92I%AmE#b9@*0>EGW%m{!@x_BF$U9 zqZ|aa-+T<~u;jK2=QC5Q0Jr?+VY7Ujaz8UG4A;Pi0idbPuxpwh*&*heivJfoe7*1u zk*^R4Uo+ljBgtFxJJY>mo3f7$h7H&>@y>Ncx$_ob?_9^hQ5-8mk61c(Mv;r-I>vmv znHU6L>sn^{-{sbOi5xokG|L`1-cni>^*_yEC}jA-o1yiYCz#@|(2u*7Fz1crgwXxz zE-a`j{8(@QCT5JbI4s`dmiB@hT0hhcmDjp`tz3MJ#h=GVAp-qWW1&mrm_EMc@j7x% zZo*QV2he@yW-EO(zyvKZZgijuK7{_Eg_ZPmPbEoJCc3YtxNeBwCc>lXW97;~rXAsK zxDMbl>+qq({{j(*ay2s>wW5LoHx}j)C8v$4vpu4Sxw_4pldkbS30NrN>vi$P%|vwA z(IsBfVFoZ0POLX{7k-H}Zfd6LEXh{ksl^!jGI1n>@uM03Yq=}Wm{&L(o~b1RRFSIb z%4f`ciHqO+eXfIC6fmFm3>T}pt!#id7Ty@{64jbtWtP!RH@#*hR;zg&47{spCguM` z2daUE(OBPZGU61Qdt15oLLV&Br#4KcO6VNR7|5+kV)r~)RG=xK{Nl+fOd`As}%`k=IGaNrt6!?m- zR{4ME-RtJutX{?s#FoU>V@gu-bma;?+*mwTFXeE3|=U5>TvK$>MJ;QP3LnBxb2gwf-3AP~EjA z-T>WwuBpF%8XhdSn#IJ~RQKnTCXK9Zm^gCUQ1IN6a;(O`QdHI+s=n*FZiTZe)6%jL zIB`O9X=`goH%qxDEimcK{Z*j40;Yb=#9Y0*`dbV^_XZZc?7_;4R~$Cs=Y=&E=e-zE zYU;%ygKHZD(>lmhJvT$0!s6>cD(9!B4$gk&Mc=sBTN@@vLCNtMHm9WeGCg%5QH<8!!$06kwQd7{Zw zTyIj$4}E*d9@_8Qh+RL}1T}y)=7;7(kNf1Ha$T18>WjY*k>?7_?(~JSxyhxN0s6;W zyrd=ge+N`(>Iv?KiC5#beA&AA3uCIsaM!a|+Bw(MifwJm&3bQ0;Ja9TO$|8Ld{zZK z3^vSdBeexaZw&wQ5Wn2VkC1T_6I5Fj*A}a406uVUqFFRUeUZ6$>&j1cVZo8^x=KI4 z9~*rV@{>$)rqX~Dg?18-xC6=mnV@UsN9 zp5yCT_VjN|vD0VpVM*%3A=sxi44W+`K<8~;ICus2OJ&bmifC|4@<%6$$(*~^BqbLw zOB#@uH?JdWFb!!Udrijvf?m@xw{S@t_KW6(azn+-=gbMMiXUS(a;2KN=PAYwF3g(> z#4>!7iJ!y2csWjaCwKfLD6|#tmh+?}j7)&HmA|VHAQOfS36+(U zmWF=*BsSud_188L{->8C-q|W+6XiWI+A^l*EiX%~<45&Lbh`rnEBc>R!W`s`U-W2q z7Z--ZZCrmvEp44MXN)VWxWAY6sKQ30!Tm#dc`!;{s@_OC;;a>$Ee<;oADe3@-Z_|* z)NYJlr`DE1Endo|Q|Qz3IOg#m0{tliN?JpCho*${XhfV zDIUc%IBu8B0!|A%S`(|kRkBOUbMSLa>$2u0L*RzXb|BpDRLpNx=t%Adxluse@+%D> z!G0mwC84>^OW_xR18wro@v~N7hv;ipeWlHw+qhs!BW>Y>`(QRK54cVG%z%y2(Yoqo z<4l4658IRTvbe4f)+1)kFNB%(t8(|xnEGcIbR2gYQ;(|UxRK114_W(aikO#^{o;0M zrhD0!3iiUT#+FjV^y=!1lLtp({RX%J&4AfTI-5=bv&K0HB?T*#apx*{d1JrF;kP|L zojHC42MpGyvotltf|HP=MsNml1Ua)g{sl~Sw1;4>wvdt8f^GzPLLe{%QcI5S!-nG} z3F$155D(ue;)SNWFGs4&|t~vg1Z32e?hfF5{kiY07t$`od_Y`TQD1!aDAUt?9fqC^$|VK=@yB* z<#YpuYMSA6+oobasLSpa!5SXzhQMyXklihUnJ_RDy?H{7{tD)yT|*~HN+BgMe0ujc>6}UL8ohS zm@!r%=Yn>L+hIhUL+`UaQ>lC?K(!xWv{+zx1Rp0A`M_xT0OAn_#zxAUR69&N+7M<@ zlaEfpqn*TV0@Gy;)J?i3@|qg29d47aIjP9HO{jZT1-A;!i?p^@m2a6JslQpb!%xZj z7PArkUC7&YwA>3O&#q2xaw(}#Cv=pu611!M`bgIqNE(9D|^Fkn6L)++!{tAw6 zlT})hocvQs2)2eCK?;M{Vya%dkg0KSCm=eh8El4B!igB--)&&FZIU>G?O-PD5)#1< zl-?X68O*+dVuX66#4cze21e2P3Mg7%0fpn+=C%tWSVYXa0*Y0KNRI_4U4*FU9lHwH ziB>uhs~#MR&YW~m|b@W>HAp{pUo6SS(zQz=5%ZX$Wyx2*yYAxo{jv4m~KGi|Z<%Q;4vf_MjF%o=zza zo`wA)EI1hNSs=j@rI5o(PGPnuMlYARq!(Zt7`Lt@OsnxaMKmx(6fDA;0!YLuO2BI_ zxb32BNm(_vQ-p@JT?uwkmz+H#+)fd=9%8Y2#|cEDOwNahsPNeQnCA7SXct{h(OHlZ zU{y3j5K`js0Qzo?0;KE1VI74PRVjxGU}42(s3sl#E00Mr3g}J z`ymfY=f)9?lD&x(RT#3w<=swuf*t5i2r6njy|Eca>x^@Hw*Uziu9G8qSv^`Pz#GeG z+RXGgWwn?bnqilvt2AajQs#~Hx@;<%z`M$TPXH~s4+wq)-nGH!P0k=5Qg#Ze;bnZU z6|3`jbbD}e88AB}Li=T9JWw0q0{cC7SywW(4kli9(T=>wE~}El2(!HpF(X8Y?L%B( zv)3snnomx0%1_}MVJpjNR-j&a3s4QICvy-*c@@S$Ih9jRk_61GJR93_j%#-LxDMUVA~gh9NIu6 zum3@AQQ?1^FuWqEe-VdLtkowveW^209{SP*0SD|$-G}(7AZ~xmb}Ehm^&1cnIV1s8 z?{_M8N4R!nHU@~{RFW{Eya~?ltW>9x298Lem0L0Ji*ZgRy#Z3W@{rWHrW#JA22er# zRIbk;4Gd2Pq$XB5S8{kT{mL@*20BFLc1Z|OH7aQ$e-R(a!GbCexS7?$y=&bRTeXs6 z;LcU1QgHEMPcZd(lFe&X@5~f}b3alq&>@*);{D(nij}-Rn-PSRn#HM339RP zi^_N9vHSm=TU6=0M9QfudI2S1#1cu=RIJRY+C_5)BTAZr$Kr7`5U|imK zyXtH{Q77v@wF)4d06n7(%*d;HcV<9+8c&7SNRdLAuBrmzLaC}I#p1uq5m!~-2jG8D zFH&w%;de=-8B#)kpX!tOG?l$sI*7!s-Yta^$fcTQ;@miA0QilzGs7Ox5>I^wu?{3a zZcK9qBIqn}A`85cI8nCSd&DG8R70F-SDI537qFZfB5kN2H5!J&{7y|&9jT$24Yfk% zP03EpaS-z5#7NG%J2hKz4cl|nTSK8)@lkz*QsG%UH!U<>%&?{Nl`iiH5fgOB*p0_t4?^WL5r zxrS6246bIEX2&~&DZFllX%9Xo!5zI790u+G3r}!3B=J)wKx_|=3<1C%OxoP;qF6~& zPiOGaG??oUC7rGCT`3G7-5nhkDMI}_)RK~VAJnI`5TP^a}C#sc=lD)0!PGmFreZDk^7vPAic= zm`iIHpbzD%bu)$qVcy!A8M(dyi?RBI>a^BEx@Y%tT1R01bX7R57EXj0;{jCAjuqLh zZPEzo@;hw=$}yRC+lKx$C*qPFoc)#Dpska*0k_*Cu!0C{+l|*Px1BZ;Kp<^d6LVoP zR0Qp0rn8vD4Rpc9`$KZDi%H)>0>#j97Lypq%_Uw;_L;q$B?J*Dk}^N;ah4!9Kj|<_ zI?^QSmQb*B2$}YAn1!)KvgLNV1Ia4$nek3LF$0K|4x0KAlIYu(QV!S1(zR$4l(m#tRYF`OM_loxq=&*HlQ}4KDFOOYp0kuNaM-e!Mu3%H z<}6Lfx18%CXzbZg@aade36p)pK<#Xfb3I@joC`&MLq!l%*1K^4y>uB#AS4hR9%mWB zZB@Lp>>{oa41U=-i`hM(7cC(-ma&A-MVq zGUm{Q6$D_Y(knU)ixP;0WP3%Vzi4(Pjl4M1S(()h)!oiYM0&@$G-oAg9YFp{V!@P? z1`#ssl}ECOU_fm0&Vd4FC266Ud@CuC`zgy_8ELz|!d^MEg6aaEHxT@`2kjd=GO1*L zFJ~2%K}C?~Cm@^J|Dy_)n`=zyz9;G^(HLKEdclUmL%MWZqO)czW*tI{uO(`NS}Jq2EOWp^ z<_D4^IaGLDTh2{X8M?qtGodjckqEkJGk7BctlvZu0CWE)vgTvg#fp7X1U}HgZYFmR z5>)d$x6tI?;J0sy+y;U>2^5fmo#fOC`J7IA0mOeNDQ7@@CnLCe4eyBZv@cR(w{D|bKiwW@$%3d^7G+D@v1UrVN_U_hDdrH<|Wmc{k|?AhbP1f|&SwHiClp5P5?XWFa`}9^#Dv-<~eN@u9aa{(C?${fhtOOU~9WDX+VOO_d!%sxV5ECKmD&b~MYB{g7pm`eNhW0qse?IT5| z&9wK`b|dOd&Oi+?*3GuF?+dWR&Y-iOs24_{%rB?Q+@5mC6)8AUA@g7()?^U{!+D-+ zV}Q>WV@iYOo-e~(00^I7i-F=}1kb~m){5hBAC%LX={&y+ypbh3&z~)pbMbiuwX&~< zli>LXtpFP@Q1E{wQhj?dst3PF%Fu4F^I}t(w5ngEaaEYk0TPn{#{mkXe~>Bz$_I&> zF5#NtCQx=z-Xw{P4;CCGj}QufMu2Rw99Vo2YQY*J(MOb8@O=cj!Yj@Yn!ps!q@y*> zaL#;zA;IT!W)(oXTX)WEz*i(j1e`O6!94I~1ewE^cV=6NKn%#8A<{XnO+CXHtAmbq zEE8|>mX+F*0jV<`InqY@h~_zFhxK3fltC z$K(kBv3;k2BJ3fZi%=Nu4hPk>@_j*JI1{Ruq)P5+bgaIheeB>f37FOc>p z)Vk$$KFJy_A@K>#EC``bcH5}D+h%qh-Ysiw4?3T04}!J!a6TbT74!7ds5buTQOuU} zK(3ANhdAengfZ6hB!0ne&y&Uk7IdC8X{cJ~ch<-ed`7T1YJ}Z9;=76=_6KM_YDhGr znukXmoR*HCm!)m_RPL3ZCzUHdm#5-qy);KV67cg7w()|AY4~}Hc1~#<=&`eL_-PMG zpyw{h;*K4pBxNJ$zgX$3@4t+e^dbn?t08phb`tS6m!O#WeQ1E481tC3_$lDcE_q(Jrf@-IdiYrM= z!K*64cJ1L{Fp*Na)h~ior=Pr-ilKnU`$e$;IoXf2F3KZ_bPyv58a?K`yaAh8<~woN zCq@>!(_gYVMc7P2*vu%xW=0Vv zb5Pw(8df7=3r{r43z?wDaIC9NV-!)1G%8G-S%j-tf^V@P0M0DDUoOt=Z=m@}mt?8U zjv{R~wfA3>%^(}J))Ylp6V*W?$I(QCizHDzeXr!oz2+!hn(5Iw(K$6Iik3Ol2aHZ$ zV@}P9&Z#*xr!dg#q6k@!hyO=}+zy1;-Qg3tonA~=1ZkOXFr$U?4&egx=XT7W;4rwy zH`Egh;f^RC?ug<+=Ah;~q7&!N$i#8(q+vypXkYJ)VnP;fAT-1hIiwBr zz=lguO@IS=aaR-pchQ}@qO;~MIcp#zBc*if?kE!OmKRYZ+)bmpo8}9~dpF^Max!)( zkCn%As(eorA@@)-8>0x>7)8j&C_*+;&5e;6;>e3l(c$gEWB(&6_7d>nO5ICFV^%k3 zFR7%^%lE=Qwz2Z#>?JL#BAp7X@Lt{}g-}g)r2M4I*|!#>0FL$@hZ(VtTB8f<_4jiE z2Cny0V^AIThcKE*LLCK7?WY{Rsr`g0(D3twidZ6_eV(5AE_oq}hZm^$zb4yZl)gw6 zAP--p3P>QaQ=Av6x6q1Tq+yPU3%?j;C%bZ-7so(hU8`Ox!V<&*azeuWe}FU{scS+< zIY_>L%IC_Sh7a=nCB*W-(C{;=)0R31F969gr4zOP9ZmcTM4Z=UAu7C2po8`IJ}FR? z$F9i-PuC!^D|w3*exF~KD;FbrI`5P9g^`{jjSWqmg3sAGh3D-Q*b}E}FbFD*}@c|(smdF|(Q1wVc7Ez1kd>F;WhjizA3F&LFOFpC= zO?5>v(nZyfK%q@`x(FkfTwOE^4!E5z`0~ky?;@oe=;(^V6kR$KMaLO>{v(WwBoBK^H3BmB{KGDE7#=k>6rbV`5fzf=*gASJ9T5f!n?U8E}~Gffm6 zCQ)w}L21;LsS!V|f}br?1E}|3DQ)5Sxz$gUksV*CE0?lh-lCQ4cxvS-i8~C>P$DD~ zGOqlDR%ifHc1kk8Que*um_|l~t%VVgNKQxGHI;}?m=ITFD#bla$0R(WuFRn`n93D( z5T1X_i6vAiY(;yqHu=g=ygXJ4(7PfSE^<-Zk<@V!MP|o`UCMzp8YbFtDUroGAlpq( z9Gw<+N1KKd!QF)}t*?pXR(T|EO1@I1Hr{a)S3l{xQuMu_$BM3$*2c$v+G7AixAIgO zIzZ0;QCO@vRfIXELtm21px!<*vnIqI2~K;8B~L@WT?Gvs_L+wW9ka(nv*!|baBWe- zGze-BnHcG2*b^NEh#dhkK%gE6yJqB=y-NLH8a^yL>`{_#D}49SihTSL)}n7FW}}ZD zg0lq|(q!=wDOdQzzG%A@X6&b3ibWCV>X?LfB!@*RueZA#KS2<{g_e#lGEyZFiy%y+ zZ7~;IPf!;azR<|v$q+46jfkZsBl0E2nr;y#9W|t~4i8OSw9NoDhyDh3V|E3oO_){z zQYk{=a3I>x%jT7zP;sx6V#nMei0V_~N)ae8Ks*;SJ06^f3{RX=mAp5eIt2AFo?IoX zhJ@pzZG&6JQ(t1*ITTqt4o)VU)-;eX+ks+llM#;5+9W7oq}kD@(Q})mKcJUDod-q} zh(Ph7NSOn(2~p2UB8{|bSU55EsMkp(uRI=2Bs{^?Oe8$fHAz}@D2bW`zLKJkY%RR< zGk>I$MA8IzgVDQZeOG?MG{L4q3Cm>SQ~-Q38Q2(XG7%h@wn$&Pg^cFOX6!L#SKTIJ+xA~nE+K2-3iB&mYbmb?cMk=Xh;F77tGE)f=5Pqoy z7q~C4V}{4nA@Ico z9EV)gXA>NUU;5%8gr3F*A2f%1|gSys(#s^(p=Aeikr0{L@ zIX$qgj|jKNMo^Mhb9#{b2PD}e`c6#X9v85iacmb$9t+3V+JRWI^{yJCjhJ$!4#3ir zn#cQl&UIN%PjZc6F7_k^7aD0#niQDUJ;|X(m8i2IhDc@k1nCy^guEbHqH3g2K$Ly2 z8a?>K68Qiny{K{Yq!$ft@ol0ndn3>jE<&AHc{k1 zC$erfy&yYEk=dX~yA;EO!X2P8RT6F0T<$_gr+{GYRP51hRWlx23k@JVU0xMyp-Ao^_Ol(+ocjf zic?A}zewa%E2U9gMBzmsu>g&h5~IQ#lsCY*N;hI#K{CfKCsZ7f?DQT1U$4Bll;rfj zl!OafgvZqCeHjE3OXS2aBT&NiQAWH8ATJ{nfOnOVkc9c&hjfTt2~HnU|FHqE4|Y%y zsrDfWiF)N!4-BxJtRW;)Y?PB^!Mn@pwHSRljRXQtx{l!U?n}%9cK15HZzlH3IZq*sz5BHc{rMkTd`fmRZJfVoPV z#^iA#jADVflK9<)WT%om+qCV6mMH(FBp*O-iRYMje#$Q7Z<9g5q&?gcMnK^^0@}d0jV5KVn8A>Z=M;ozsM_Q9mAckOB zEIdRxHUl?fi)NQ*$h(lhwZ{QkFo;^|48@)VxqAb96bL1>cY&lIbc@=!0`xoGsg;6G zIJLB<)aDP@Mkg)kqV_O)2Ra%`y#_9ZRzU9@N=y(d&OL6O7S&@wJ$B6-hn0skm6C&(GFlld2g&L|Qn8xkY=?yH?qME23# zo&dO@z;Z?tI5F7KG*~23DH%;_7?jd6vD){O+x=(oxz&DOCkL90nL`l#|#t|#UbQu={va!@Rj_~)-2|+SEPT9OVI+EhM zwL_US5*ik^v>tm*4r_BaREo%pwQgq|O-1m#@uVz(^^7O9Ge2Ehvd~V4W;cF4XmC6M zd%bWb5ck9G$_Z2zQcLD=I!qv>fxAs4UIX4Vk!&C&l3`7xhd_`Mu~&h%olYbr3G1g5 zX{{W4v?pG`J~AYco1~SozjS@3L z=BPf6bV9l&c!AMR>%@cxkf+U!5Y#jx>+Fy-johmsJ$a4&)63v`=(@Ek^ zr`OU&ESH7RL~{MRdyOMG{gQsAeoD3xcjmU_^4uxt3skm~z+}u>`kGr-9}$WPSq{ot>EkAt+b0 zhCpxuXN$PEWnE|P@qBC_Cv3|_dStKX%;#pmosgZTH^+bWJ12D#O1@Kp>F{vTx}oWf%wT z3y>v1V&rjR^_ZDW(V5vqWQ?|PjWq}=?C?2FBvD~|G|}9|&1RZrlt<^L%#ZhRnpcG+ z+02Q~%{fGPNTlL5hZHXd%wSFzcB97<@S|?d9P&s&DqI)!MPC;JVPpT2RFUVR5!q$L zXpJ(=dBia1A*3)d%*cU1P_MiT#cn=niy-3pB+XWZB002_`6RlLK*Ys6^GQ~CJ>mIL zCKVcr=Z0ES=PQhjg0-Wq#5RDy=*V8jBPCbrL7dDds9?4(h|bmpG+P%Cj=%;MP`l6@ z7LeXR*Yc)J4g;bK2)|I6zgH|_99hGxk{O|Csu3A%qy-4$;m!h5p@69tdSJQNX(7o^ zIZ;Kd9Q9l1Wk@jfZKnmx_@tQ1hoHVJq~SvXEF`*GL=eV$=_2Ke?on<&(*pq-19K~Z zxm95!3Cz*+lw)>9x{5a1XqsUiqK$0ow(jA!C@3+7+GwmuB>QP20)RMe+mMLDD5qFV z$}AT87Smb;5~=Gg#{98UAz&Bh_k@XNg%?Mf3}PReH~&|(^0JuLPZnF~Jyj+iwS@G{ zSOPK)V9y`OiSo4pE4)O>hj&yehIH*LAvOYyqn+3fblLW7uvJ{hM7p!v$zFjT*-nfH z&2$j81K%>oZl4Y^1B+mKcaZgi9xNqt$Mj!Hb4G6QgPpMyVLd99>FYjTSpnpjEuS|CDKk_t^Z+1s#vR}w_P<5m(0 z00TD=&|?YsOkd}Q6HsE&_Zz4Ne-ji6o@5!3l&5+19Er3c=NJO<1Lx zB(Uh3=pB1VS5Y6(;Z>_NE4)fMEZ3^xxmiV=c@-JqFqBrMqvIn~+&@-HBr~(hSrvy3 zWcBGN%9oCFxRzEO7Su#!Spdv&6`i!$DNuAot`uNr+^R8yFml^jO(O;>SJUb%^H2kw6qng%i_nF#!^A-)y64`i(&KtbxRB@|Fj z=x_`E5~!fpor zkeYTgIV-VXe+wO={z8wP7;hD#ZCetT@z?8 zsC13mgmuWNPTKwiPeUi|G2Yw_4`cV&xEiOE+?gE-k({MFo$1}t$t0(f^yGZU>7>&Y zloR)y8w__U=?(}XIPow~u8$mZ!!h2#)QD85-H20a7w;xjXB}Y!2wq2a$vPS(Xlq>* z%QD9(*U>1U*{(Ytk4khC7{0X&7>*?p!?zNKp}XEnZDORi5*%(N#q7$3ETQB!!YYby zlNUg#od&^oTNI~P?h=at&elh9x}I=~4K?ct{J`CM!W~*!Pp!!0_9!-Qk7Dz7x^p|B z5{ayPdz6&#AXMVnJE$$>chVp!rzbX$fB_M0pci6D8=}7B4fN2VpmWzDutJ>JxT^^= z<8G>aGU(hL@=1-WDOsyXjESOqNaMPP_M=A?@93@{xbZfU(-n+vBT@7hDb7Z6f8-}) zksXb0By)Kc3TY$g2EVg$J^VNu2@X)tHc_{*ZGBTQoJN~SoS=`JqB|uvk@5(_+C-aY zkx1O!OAIKMNMUg=2@A}Rd!-{P!@2hqNDVgTy%+HIdx=YdzK~ntdzFpSl}y)V@aUXE zN=f3DbQmksYkU2Z_&LvYZErKrxNv zHJm9A5?GK(2k(PK89>8>$!H8A&wp) zl?V*#k+nbwd_#{)npd1h$vS$Jx>ezK9;L0~IDPae9qof?ew6l5qR~g8h1;d@RXutE z#Efw~M&OJkQpbLb1P(}LJGF}uZ{Ln~kx1sWonRT~cDBc%J@{g_(}Y1McTgw6ymrui zVDU%vF#O0rqH=WhN5nqxI(bd^NyK1Q|A?pxIC-3=69)M>K?dNIIjG=q0xJf&liCAL zchcVBog|l_9_^%_qR}U4(3p!)P$M9+AJgmw!hcMjRNQ}(?js_?lhg?1G#KcOPm;=r z`%e)JkVwQmO*etSr-^mq%|EHYO(b%bKSR5qn*z==!Ntf{bqw^mD80z7=`iY^Ba0PKe~!2Xrq^@CO2BuY zqv-*x>?XQ|*JC$>-L{+bGPwmEqmcX30m9uxKaie#Xad8(zDK$?Gb6jtPbE2fyf|fs z?iK%;Eap8J5nWZ#REjbXx)>)r8ohHo;%LO{_tNX(bKOfPisA5<`-mVe_7YKok?tif z0=;)H%{72{AJqpP>?6Fwq}kU5Zm|!hnuWtp_cgeoQnHnn4?(RT^WRw|}hOgSy8QBKnV(BF^lp$&YG1NZ3~ z{`+W~5!YJuqD-E*ie8+GINi_;HpgR+(sv0lJ1VAC0m|3nEtJ#S(K>Qek6o-!lCKK= z4Y$4rca zftsYW7 zkrQ^GBh>9arzP}u4qWUJYh$e>n|D|9dv0`iroU~yn-zCtXvD#3Y$6jZD|y|NuoVd}~Jun4~z zHLamDzY6oid6jgVSEbgBlC@wnke#p2z+n-P+hLl|;LnGN!@NeF#N>Vr;)^;tR{_h8 zb@J!L*nXazccq6jN6A}w_;r$C=WXY8I(mSB3Npt$c%7I!c+cx=1K9iucf;$%Yw^Gl zdfR_ZNDlz#I6}@4^z0YWp8bOA{xaILUqUI2_UuFi&|rkWqMrTg!unXx?D{Ct<4s4U z+J>CiFAV3SWPm|r93|ZVT|64K0*;ahLH#%AZLvfOjWn(6XbQRwkxZ;XBMjbsyONUV;H@PJU@#wGV(O=U%iY2neNHN`e z`@baAtGAA=4zmeVx_3z)vgg;ILh4pwGAeJPpLK?-W zDF)IdXvp;m6MEw;t8_Mp?sepu?%bJ z1Ub&&k2yiosV&_(F}Js*ofDuPyEpoDf)1NPM9Uod{=4KkiX`MdgrfQ`Z9$=&^fu@c z@6yl^!{fag9B6ruq!?_z$VD+0nsJ=^z3BSuds#M(HxT>@;$|}_E7Vy60HkSx97^r)YTCN)I* z3gz+)==budTs%oH`j-jm>;LLS5l3otMB5^B4lg)KCJf~eg?8F`-8osGO9kPR%JL*D zGOFLx%l>6TyHx+x%OWcz(U)yZkl@2heqRf>n9PB0%A=$CeOE;4|2w_tze{8zKY-nL z7rz4ny0ZF~5iF&bL^7IItx5K_%nMj6t`Y>h(_~mJa0m4i@ zO?w$|gpYDSCpoXuh-V-r1Oe(B@h`vxJ54NZbGCDO?MOKv+em->9+k`-5`kx>bDDft zSi?L`!WbutPt%z`?-1uSIk1v{>zv*U;lSPrpGI&~;F8{Wbqb4T^^Zax1ezmnT=l4P zdgc(+dn@)1ys-15*abj){10?t&p<rClEpRb>BR>S;L5+amsvrRaY&ToD4tC9R5t zD*}J{fcQ%+0gDyR2NZS+3pyVVVSf>FKA?apk(wwkbUvVsNm^g$gBjhx*{%zJ5c4l{ z=fh;cVTm=94=ErG*i9E{*oX3+t_@ID zfQ~Mbyl@rC>qBu)7cCA#UUm^ZVhcnU89R^%UBui@6gXYv8pTRt7X_b4sKaxZBbFWR zigpg>;u&I*b2FVYbih7#4gc{Ovae#-kl$zMXfh0tk4V|a?(dIQp+4l5+$Ih4^dsU} zu)jVc5xk+h^ATCmc>ZH*A4j)8COaMNd<^r}&VWpoJEmcOoF)6?WN+u}Nw83uLFb68 zV+`kL3=qfXNF3wX*|}(+kA`t_5Vs&Z&%wYT0dNkson4xY0*d(qT0TeG_qJp_Q!l-o z+Xvw^;$0}8I|#@c@0{ys1Sy12hZjl^#0l0WL-I(< zg{VJI0^&TW-x1kiBPNEtheL;-k*^#=;WL_6m+EN=^+G1-pDk>_{Sh1p_jY=(5 z)KpPXQ3GO)70CDfp52XF?el%U&-44^_lNMx%+8#dIWwR6+~;zz;wfY7@O+;wFrRn; zWA=Sk1}r}yo&aw?AX9{e^8r;EBi;9bEN73T;o|*(?tNHrAN1fk@aY2@??@kG8kXEK zE|Nsj_DCjHz>d+lfJJBqDW@qL&jH9Pae=!Ai@ zeMokK{(i{*qWur~KCH~giZrGBK1}vt4k2nkq&pLH`4OoGi;f?W#{xhfwE{rE@sEh( z=*CCv1{@6^!O=kZ`7zq|;#Mj7g9SgPY{Sao$28KRJM>b(!fD(~ixG%+obwFN!trc~ z=Hu)cmVJ%~G6k38j`J3%W^Wz~^Z-2& zND!SQh|ttYHWdlj?SY)=<4-v@WDdjx4AZRkPreC>f6~7Kmh%}k9B5{r9YuH1{XQD? zptU}NAN=lfb|0>d&$&MNIcXGg7DI94+N+9N<2QroJc@G4dg^0pC+J? zIS><2Otabs3>@&&M zzwPH&3gFmJtZc3}@YC)Z_=&ZjSOHL>5s|UMH&L4fGoQdd zCTL+P>7o}3V>e~Al+R5;4(r?<^;P0a=3k~UAMWUKm(0iOJbWDjC=3qM6YUPJO7XBB zEEx~?r|IznkHFp&$=)%fMB1+Mz%(Wx3F3nA#C2s67Yb#CmwokW2jwDn6rROV-z6GI zCQQ2QzGQB^gzq?+W()QOCP%x0?k3A6o%n$))JkEkjuB=`v=pRh3RhCV##6X10%nYl z_sWJ-y5QAKp+*6;Pa#o2n@XW-0!u6f?tH46d7neoj3~DgBC2M0(m>;-(qiVoplud7 z2xTUqZEiCp$f3Fn>Lbpjn}ebqie-VF4kGu!Yz*RTbQ=Rjfc>dNW(eU_0velnQn}9< zEI*a<3dEO2;=|a|c>iP?9Yt7oOp{9wIP<|>zG>8l;0qm0cQclG2D9W4Vh+{^hJc~7 zr!5vpPuWw^&sFJ0@sFJ=m7-!C75wleU@m%;8vt>m7Fk%vb^Ig3NJfV}i3`m{E( z5d%uaFbZ%8>|w3Yp%KWg4C9I{+-}3D*+PyEqa1~r>Ej)su|Up>uLti%Am__RtrJsa zP`kwW41?RKWdZ;*C?<-K$%lPeK7(2=oDG>|h1)0kG64qfyd8F5CLO=~r~5Lwe>ZKk z&jj$j%OS)}G@n|BDfb^&lSHeZ_DsHv(y6#g+ST$l?~hI# z8M*rO8st>xeFp@ z2V_eY?Eq{F$}+GXIf4@h1!n}@Y@9g5irJ4%+(=HrNPGh6OU49n%BMh~QPksrDx;`O zB9KbrC~jGU9yf|p0!wBTH|wHsHVbz+%Cj{gmZm6i=$tD8gQZ_OMskRpec0g7)d3t* z%b}$LM?wxYOf3K8PzwWh$l=St?d9nJES2TZasiFXV*r>lKNsuC{YvyPDj^zcax%hWrOR4aaZ+032})c`(-Y$DoRD%zh}eP_gqm zKpr0LqCAXg#m6dUB=R2KKNUmpd=3d+%4e6pHK6=P-{muTqbW)kuyi2@fOVllB%(7S zBRt22rP#(F%a6Vd`Dd}-R|59>YuQEguSJ3uDA2h3u83#HFtQ>F4_;hKdjfX$*}NX6 z4g2$n_t;8*HrF$-;rVQA0pc*z&Lzp54Ska-aHg-Vx0J`TtI;RzQk3Cp*u)WUN@o(b zDxTc~UmLbFovkIyi%X$0pH1TzjQ*T1s5So{(1yi4Fk1rQOYg>iUJ5ved+`6gL2?@3 zI1)8uA{4~YI69qsaUOsQA`nXM?gy8V*GNp@JRmUv$`wac?Eq#(C&V`qGm$q@t6CIg zVBV6*QWIM*<}4L+exvN`OYh($JTfO~0qI1FF}FdoQ5X}GDVcy1lgYmrd$4ax_F%hjN&uW0f#l3nNSI*wQ%E~t-&1;l zDpM%^F^vIoLhJ_&cwm|$Ap;OMo{-H!PYAFiNH9QG9qg|FHTc{jGZ2+N`mESb@7Y-A zo5}_=rue3EF&hiEQz^W$`EF`20FUO*d0b6H06f%jCnH+GLjE)g zBruX`bPnMl!8D3y+R_d4-)jV`pSdPT0UxV)J@FC+K{w>iVy+zP9V-Q&4^>DIdH2ODXw}n7+~@ zrsN1R9|E|P5)I~~+`B)MY7YD`*mI8^`qVygQe`GZD{L+q!>XG}`vieJrZtlmIl4U) zw~teP&FloNBEEpI0O!VTe7o-g%73u)NP^IS_?9Jbn&v`+79}qvuRogYlbi4l`XVuK zS?0qKllj>9av=<3?ti%u3n;|#-D!HbjH8W`uKqo11Vj)%iN$OI2r!oj0I@WeVhMrNf9F!&!NdotqTykX59bj9u=+a>6U1@iCdw}t zg0R`%o;P3HIU`2AJu@P>Ve>8E>|>kT0+J;HDWeu}7a34&!AU?8lqh42wv3u?ERfn% zSyY=UDwZ!a2WgdFm~VfjP!^Yh%POm=2EhBKyfLdhz&kV z*#nTrQmU!3eDKz#YM|YBe&8#991It}i0Z>5ztm1C}Rn);?udLdQV-u@L zQ|M(i;RK*olL1w?B7r%sCX>aYV>P!FLU?j_y04mS9M>vUa~%+$6Q~wg3xeuaEl(6E zz8Yc?#83^FtYiYtz8ZD_elQtBzpEjyM~gLVv4)rmf~p}wAwVM6SF>-p?0OCP+|~@= zYBpPTM?<(Z^0OFl*AVn; z0QyRRzAcB@-pVCIVvp0ZOL8Tz=>v_*@S-HOmczL zXfB2&(JVKoAf{yoGFeNqhy@a_)>4(kZqKzep>W)KZS?11L+4{$K43)xDJU`gLP8HPQ?YUs9sv+TeoRy ztom209l74u0`&1N1fsVP6QM0JPQ3(M?L9?ApY=qa^^oHdJkgt0Fh`dYN}!<2ThWor ziG$eUcRBYNgS;*$sbjd8^B@wY>2jXI10r8e90s5^ke`4RY@le92^bz5`p`%$1~1$| zpDj*sZ=h;`i-|W-w}pDNkw$=Evu3|{Ww28^x%Sjw*eW`6HE-4^jHc)>$s zczGqU=t>UjN_HC+ucTza4&f`?Gv(x7$!)AK0KU&L>ewz#i2}_<#yIhU7gy##fP(V%ywRbR}S$#?{z4!3#sKwqsTL2a*XU`hEaO zMGk29Mm-?hWwL2E*(bI$_W~Ta0C`geEI(YKyonk!&~-CA2ad6s9Ah&_0@urCx?TX_ z%>*z4VaFXRnTasQ_gw&E+_md!dg^04j=$V{{N*nxihoF12374Es%o)7PSQ0rBXAqg zH5upy@bel<2CTSU(=kCR3fCN)COfc&QgT^-{nAU4oLa9+0)-Hrv4FI*?rC~Us#*ez&p*HL>z$?I7%7Dz6AJ;4ozd_5U5aO8SI z7A3c`WGs+x-%22%5t?oP!ZYMj2(A3ka5HRa04|+0QUwe z5Fqs%1V9P-a6|iir2RgFiRlF#wU zjho9-u%3o>)0?A^!P@Q3q&B#m<@RsJ)fneV&p;7aB{%QHWHM&QK()6Jn9w(GAsEyzIj`WE&Y&VpO${s6>ydy|o8C4zA8yThUl@s_)iha8D55k4b#7K!W1OBxsnQKc?`2Pv^(clPI^bWGs+v z+}4*Rx8~f&V;-1^+en6Z$2PtL$91-GO&^}OpAr#pY*NN}E@QBYpAsbKgWTN>#M@4h z&NO!rL%WvwKuj5f(`{#YDA?OMB|wVpU<>#>m}|!z@M45C!?u%Q;T_wt-vIY}r4>JI zu>se&Q)|IJ7C+}LF4zhbCPM$P6s7;>r!6_Svv5#1A>UQatFu7m<~69 z><;E*ZS)Q<=-olH0SI&laRG3Y4}o%b@Pi+i={rd05N&txWgvz-de8|r(uMNy82qva zGyk%BSq=X!z-k~+!=L@?c|2no$MPH z$aeDB2>N&@XLS%dcPE>^lWM`8lGu>L?xF{GQeLqH)6nc>n)$K@gWnOfUkfB?e-{NU zo=8*a_k>g|kWK%dwSO-mioVFyT`Uv}WTCrQ=q|z%FO`WuM0@rJKDnE)f#z^GM+SVj zn=I&VYH*+!8N)EUn@9kRyqmHZ4CZdQlYsnbqp!6kiS6j9s0~Y2BwKI=dhEnhW^*dxx%3$d7(UTsgq0`7Vy1CGts3r=Dks73#vas zssz=aAdf^KXYz#P(r(`g;yvo0Ai!9N00iC0Ee$~BPsrM10p=Rp6Ud~1r6>7B26EE@ zo_xwBTFly~RiIL2%0OzdpVCA@K%wpXv^UbgKUpFcV1)6$f3l}&`ZGR}K_7p`0!f2? zM3o)LjGiZyX)Jm4@i0dpT_vFRF&%x*H zJy^vVMM*37Hvm2UMQayA9q**WcN{70x{f2r3>qQ_i;ZceD?Q|mq7`; zpS~%WC-+mqV;os%^WD#F>8QVpWQdpSV*8-#T_k&SY!@A|2;`*i;&1`mU8Fo{Xb({R zjRo>G4-mg_4(I{echKD)5YS)|$l?#Ocr1`;DDOT6OMMWo&z4Y_!Kf>xi%J(%s4ij%%>Aw& zl!H3cm5g$HPPf>}VTi#Ix~i)%6>+|<(#Xe;+DvSGrKKDl;fhX7jxJI6!eh$?zk~#1Mocf6_bmfWd zcx&t#Y7g~2K@p9esZWqg0pXt@V}Wk6PwKlC-#!YoNI($+#N9{!vyZq4Y)2vze_4!b zSEK^VEQxH#&yo?~=nhySIjqcgZprfPD~GH8Nsa(B^CUCj-F=d7EPzm^;m&%JZ^8=O zliZaS&G+U*6MvFUOz_!1_W&N4>OULcK?s2UalSuuVH6O1Dhj!$2$KDT95VOI1gkO8 ziuNO!QVWvl?j)Svz*J&R_H+1HSJ+SbMSu2_)$I>r_c9ZV0llY*j+m&Y>G^w_4g^T{ zrwK}^hhIy7tq}NQq=u{(3#5-`m-IvuaNT+YaFLplsXk2(D^Gqve|koMn89F>j%K3d zGaUE9MBg(9fp*Z)o=JwpLLgcCvydp>bd32~x=3*9_}Pu{T0q@?mdkeVCOykj$S&RY ztP9WK7k`%b#9*`bvs53kp;4A&KCJ-ozyowNMFP&^Q414NRvh5$;{AwGf)C+YIzZM3 z|H*-<3M6BwL^7W-?~6D%;Tp z1CY@&#=QK6>;?IMq3Q=tDUZ9L)7=DMvcuO+S%dQ3EC)H*P48~(Ib`+=l-aRBx=df- z`t%DNJM4uQ2t^cok(ve8sb6dXEI?5&QgZ=UlW8awG7X;aB6-$}oDV?rMFJ9odl5HO zFp%=Y>lDChS5ou)Bko>F^-g^_qgCO8z#*(; z243e3!~!{Muk(Hw%>V10;x0U-dIh!W4NfHE3e0K`frLblOpv?>66DYrc~2Lp1A+8% z^l;$;26N95^bhEQa|w7zbOEdGsm+SSr%;H^@ERS)#CL3N?a|uKP(M3m^Y!3R1wPi9 zHs@>+cS?_fj_WkHgb2!x}ddxP|NyeAm{iWL~jHj1c&b*Kq@Q9CD+CZ(aD|3E*>XR0<9p@PP^ z=aR1$na3h4rHYz5=dd!UPHro+A5voZ3S22vEg zMau#L{Vm#I@DRThH9BA=zeUpvADn-SED3#jD>|~bO5w*~I{6}6gK6jgTG$S_P;=Ln zd?9v5yw$f5FXY4lU~h3bAMp|5{5JzKF7rtAt>9rts98X%JW>HE0pWIpBm|xA2ssd& z;awAqOM{Vk)_NOG#T;sMw%c9O7WXzWA7;bbQHQFG!CBg|^rII?p5q&} z?^0kJn|$w*InBD%_ii#`wD&H(Ri|nq=~%q&cHg^{iD|1NaYh*R93piURv^;cddt%& z4&(+q#t9vHA_oCg73O?3hUj>Y%6Kdv!uCD-TVx?X>AmPQ!fo~*JA!?=@6q1Jdincl zfcrNC$-UpFz{lY6SWdl6!#D6gH6n2L_sKoe6yFDIBNj+@_W|!s#oIpM+u)G-fZj8R zp$}-tAdtcUhkE28p6E#)tcV`^hI!1bcH~AP>>#)QB!)Vb? zoagC;R`U@VKiI)XGQmwxOdN!U$e5ZUT%I2hXR*rtu{=XY3Vix_!Bjb|UnE}|iDzAk^BQcR;8NcyyoIXptV<)RFwo^R zhuW+8PE)@CX`UuTv7B<6vCA|^L%GY&%*(Zs1M`}B^6}y8D5^imoRoitBnM1SrS13&Tgf>`dUFLU8pisj-1Q?Z|4$wj+Lw6RS% zkP-a}&ZTn5c&bLTzVZ|2s$;od`H3%&#B#s=CwdqwAb+;FLDt?$_@-JkJ9RRM?ZDgA z5wvPms_h!_FqTdpW@^#i!1tmN@X&{3jKd^2d2J`35GnY1P%gV+DNWNOUvR_M6f}L8 zTXpny#iZ%lmvC_cbQ zs#V~na>^`GcZ-GYmSU@Ei57+7Y9T=bRjjN6HfE(1w-L@A!%SPW98@S9H8+^2HlQmx zl8qw;YC-U#JQL;d1LeU6ZIJukv1r&vw1IgfG~0Zxws z`$B{OR=;d|ll-I`KH(PoiHqA~KX+?+HodwEtO8kv{8nshBC>kZz>!$0ip|KMcgbb| zEIT>c|1{vr1$f>6Lv`SZC(o|;)&j(cHw}YaG3|O}197#d+^!3;Y_Nzsq`LNR0yy!k z`a1R+kaZBU-wdQK=%DPyL01Q@xZXt55uKFPlRb@O>Hik(qxBqs z9KPL^I7=RlfQJ?@*dsq$2!^|wu{ePS_mhU%t@*$-K95@X3GCK4 z11ZW9xQP{tMFO{|!u6ZLnZd1W3G{UtrZ0hN8QMx<9~tvGWAuq@7l)NtO2*`Vs1gm_ z#F}pgm;-zThv9=NfjGkW0?`_dmI(rlrzyUP91d9iL>dmb&S)adPrPIz zooKkEaUy3GY<42g;Dh2PlHJB))GKDaox{!IC?L^fF`I-MQmjX=JjBveG0ltM&`6AF zC_Vs%7e;+C9Z8*;kr&1~ zOyFdCXPKt5f__Y!6cu;)gW|W3OfKwok9wP9l?fZx=-Oz8ceOshe(>jZE8%@6#?(e6daR-L`htj zAa`KEKAoah=Tk~!A_ANUY+MP@Pym@tB|brVPo>I@*`LZzfr6&eLIVh=okJOpqKV1v;LsNazK?kXGv8ddYrMLga zH+>r%DnOGNL=%YM8Qi!X3FxDPpZk0|*1#3En=|<)pd3C{HISyl*?63u86;Axf%7w=wt-K~qR5N{q-^Fe z2FH*w6s=j*c5t3y78M1?L|9nxv)R9`Wis{#K!?moE#-9W#dCAE-X}l32n>)#XWihN z4OyDH1TUXBPuRkD_-1Fh;7!1p(HRky2P(qsCD|gi7Ck@sW77B>G7?x5a{}=1B9MqV z#|6O6fq%`L2lh87BSWO-;}~fEXFNGdEo=^T#f%K!9CAq5)pM|0I&~`cWc7}eNiqWhxq&AGjj9}EW6l66JPp}J9g#Z}gMj^LIE!-y( z3m=q34~h+PogQxw66sikCNS)mdAxX52J>m(gB<5WRl;R5!Z)Am^7H8_!~`tpL(}+* z^#X%uaM&4O>H;DSEOVL0K92>Z@Hs6YWkSJSKz}}(DI=zVBFiF6u!B6Kd2$oBxRl*6 z$rsYT!;2TvGKCyk$X9`+`TYx${6fA33&9JylnSxAkWvJflrE%Hz=GgHE)c+0TgWX) zAZhF;kK`X3fuZ6^4>zj+_X7Do6#X&=OOaIC2>M-wetU<4*cZY5 zk~$2y?!%b{ST5z%93laS1T-zDl*IO-a_%z)nv|1E;cB~b&JLK1jKS^7frA_ho}&dU zDS6MqK+2({rA`1YpL9^Dm$#0D)Z~$)ERlL%nMf>&%r<80Vqz!+xGLs zDc~QAx!{0Z(u=vq3jA73tm1QeGP}-?e9i;-x0qt9U~c3K9q{$bFLmJ4cQ}v)LVm}0 z3Go_Kx`aw>Bp_*nwJtdX=72!*%q2a*QEaaV(c^O*u^GT4G zODUT`yfTKUTT0FWF1nO-jE%-isTpI`G9Q~lmXbT;Dx0NE*o+EnSVoS6WvOLtAcP9a zOK^k=a#66}3hqWiPb#Doarr9wsQ?60xXLd(!l9ft9(|Udcf{*)?q4pIrE!KJzSHRB z!n*C?9>5WFKbX4}0sO&y10*m`|4Rlezs882d_xE)VA2pm2Yg@%SpX(!22|fXMhf;{afjE@%l`+Qa4ZuVg z8YM9Btf6~ysp+Q$AQhsgr^-^?VWH?*emej1UF_45JPMMmvmb1^6_KoAE$v!$^xv(O~M6tydA_d{ki=Q*0QV0x&Iuh7$t$#E?&9 zKypIaujI&V?rZ)sFSC`ntN1brW(2ZICJSZ~El@v_AdCkR@-YI*e!sjL4>w3e?^$F? z+;Tcl!z4hFX|iS{ASjtbP=5Uhf%x^DFKhkVuZm(Ik((_7?iZP66wIhSJPN7dtdSLk zR2CtHK(?PHpU5BzsjuY7Y(ffog5;TX*JL0+K1`|O+(#BE0YYm8ISts}2=YJ#@WIP3 zQzAh$A4pItK^MX|EAb>2NZ>^_!T>|vEzun?kxJ0lN17v|!vRK)BmkkxkEBWtEGXA0{J9IJ|T5O_{duwz-n{&(G*Z|P7xgXIiv#I#er`swQRy*|EkQMKnXP+Ubk7UqC5nJTowz;%3jb&V2?pk9o=HG} zx4C_ziD)P>n!5@a%aZg}K>r<0(SSfw?P#JRB!2EpT zZobs%2H|U!n3w`GOb7s6RS~_S0$Och1>75j)boMJg%lZZ4~)$oEWB`n`Nne0_;U90 zEdg{3aaSO6*4698t5-k|11Ho(igxP*eN&z%Pt-r;tL&xL49b1FT{P6=m+xgl_d%$ycS1d@fi*9(3Kg( z<&3SQ97iCT^GcE&&}$V{rmqF)29CV47-K-y3u-iLBGi>?fq1asTc@g6p$H*X!-I*> zoO=~Gl2%8HXegq=C0C`zvMBmi6L`Rf)s&A|np{mx0{~V70I6c9NE+f67C4%EL`wP~ zp{nA%ZEu|FcM9BHnZCs%ZaMVZ)BPIWs8)#dYD1)#dqjFE{>I}k8-Ho|vwMWU@AVFm zeiR94`|11fx7#BYEkR{lasDFD&eQ$Y9&OQ1#Be5<_B)|8CC8i9cNRdAvE3qmce>xe zORh1LMd3f3?zbOESQNPXbib!1Zc*<&r~93?hS}Fy0muon{9a6U&tNnAKGZ#yxxC>1 z)BVY!Xwh=QCHMdy=32a+Xuo=>>3PrqKeQ|gKX|%d#Z4019z+{qVRk%(`~y}m`l+{T zX758C(8b(l*X{tI?=bg297ftrJBFGCk9G-fQ-NXzAHy|&mttVyKc4PS@}M)1 zhZVibvZ(j*)BTog&8+=X1<*XsYE z-S6rU=DugqcAGE{96@YjOBYW$VsuM~gd@t2LiH2m2;Vszgjp~T_$A^h#f-){Wv z#NRgjZNXm){;Dx^!PidryLV)JkF=_Khi2}2BdmERb*bjb9*iQ_YZkpJEZ)lu;V(N< zpqWeFZq@Wn9`oee0nF1rv*=x+=||(u_IC}5NC%I4gm+4XFq7XmG##~$yx*;vt`E=_ z;-U{)QA#rpd;nMmgqeE`rAsS>f9tWZ<{yt6i@!Pqf8Wc2|0N9m`rm@Ve}>^fS$|RZ z{nPz%L5JD?L654p+0CkB7&XSRzju@LubGniaxK9J#P9}q{q9yK>mS|{ynGA<0A<49^Jq3bXfIoJ5Zr~m05Ddoo3lErl*?iKBSFd=1ImK8D@ro{N7}< z#3+CQZg_VX!qVeRGAiJY$nm?(PKeR04(RH_Je7qa-Q&#Sk*I?7#!=wjQ+tHD2Xv?h zhM5^TvY@vl^1L<&<=aPk4;Zre$((M*I}Wn@lpoKxjx_b$PMAG@??EJc6?4ZJ=rgT8 ze{o)cFkSg*s!f>>&^CwZEVHdUfiV-2%9G3d6#Bxoq~oseE#+TI=d%O0i7AT z+f-x*0ja40`RYyQ31!i~X=nNq!n(hBx={SC8IX^A&c{1(me8M3+J>1cMT*IH?F(e*%&M|3+1c8Kct;S(dlBL`%`91jW{u(ItnyAY z2W5(i$brRZ#iJE&zvN8MaJ@@k6kKwqe^9S5cP=fEI#|oHF!Z}Zv$diPo416SR_TFj zKbw|$y%|J~7;IEn0HSB%F)Tk{ovsZUY$oH+TP|Uk74S@4$X8W3MG?#8} zuM1#qEoN;!+5$+5!#x0Gj(ITL#y*%umlg1}rrv-U8rXIe>qK@Vs=+#GZ|s#QxTi6Q z*kW#NLNOFS)>MJ?aC1{L(iK*-Y%OEeyUT;OL3Lec;BAVx3CT9h$GSGsviB5{9m33N z!Bfr*3r7ldDdzT;Fq@WzkX*998+Kf_d2&5S21t8&11fcoFq<|8v8vOlng=(AHND&B zPrlLsPe7peDE?jFMw-Z0>w_4B>fMMuFt@|k z2hcm1JX?{55OnC(bO|;Q@?bMgF=%B1p+^(6w%R(r?2udE~bpgY*FUxU7Oyr0*B&i}5BNNX1V9)kkRU3Vewb$SmY>H=r_Ll5^`qo;Qx zquXKbxu*>cSe|XQ=t?dcU3yk)&aaHteSfc z6bSE9bR^@s0+?q`|FP!)ndIjSI7hPO0Pu^(KjPZIAUmtVf8Z|_P*J*3a9=la5NEyM zVGNG|5*aTd(W{udUTo7X0ZY|MmxBPM z;@yMVVUL;dH$y^iBa)!O!+!%y^+2gOgml1RZv1<|;+@`!nR%sKSPImn!{}o;&fk8x zLwNU~D)?^3YXykMm>XXU0*IKb*L%St(ZM%bZQjyW@V%? zz10?xjRDZ|5j4_jHQSG%jBuK{Z+png{QKSp)Q-I!Kn2yD^^Qk)Cw5{!-$6zf`=kJF$Q9nZkSu^Ua~aW0%|^R5bS4C zJGVmbZ#~Q0f@uXh7q(gY1B3Jei@(=`{-#+A036+K*b0Qd6@j@E0VdqvY3~t>S{?oU zo>oy<5ZB*2NcW5`4953+yriuC2|aRJE8KVqIHAG95_G$kMr zJU9r=R0y`}9os6*)>PE%(EVv?VPOW++T=SrkcVgc(=fLIuqyiyq&(>r%=PX>%SZ+? zWFh~d3?#(RR@v7IJS(tyyBH~cV;DM8ir<)s@US5Agtr^DDm1fiSWxqh=*ByI$Q94 z5@Yscp-GP@3}^L+lS#2zBT%4Mn1@E7V`K3nJQ85Y@d(pCs!finV3dG`2`rfh zP<78oP9FljLNP^IHwI$$Z!1G)7Xs4M{)H%3aS?L1T;#z4G}|Ik-rt|L>DOl4;x<@} zHh=deVEBiY03tiT=fTJT-KAmK{f?z=5`D%m!{~YxvtpT{!o2ZzA=#x%3Nt*Wrvh*4 zQYD2!9qO(?<)CU-S0dX3Os(t$4A86PZRpiJZ{yVYY=( z8BOKKX`ut9lF0w(G92Bx(k!P2x?2uuAt&?c>s?(9zY)raLfk{!bY;_PTdSX z$ZSl}gB9qh)hvC;0}w^z6&QNUZgit{sCj62SPn=$jJdFMfj%A%DtaqqC0aW<{obQL zIn}QSA?(Xf+tK--1X5bD?;!9U1ipj7cM$jv0^dR4I|zISf&X7aAYNtnJfbKxcKq^{Lp=E38tD0*=jroDfaD8oUeg2BtnowO+esfbzZB0`R9!zxqF~5HK>d=a& z#=O;y5E!k*gf>BwwK4*e~pGHliG5;@aZ?VmK+`7@IYhJTF)R4>PlZ_2d!)ORyoP6BI zf|-*h;c;!PF><8Qv_2fFUpYg}pM=a&Pm2@oQ4^h4IPvNhbODhFBi@YoZ2T$spXzZ5 zY1x+Gz@9Jq+u`9Ysi|q$NR4PPPWu_rCmAS}?Gl%;sbO$9>=N!O!TUzNIM1_yjs$!{ zS;r=2r$_K+;#7Q_(S9uQh6I#yMV@*+k-~|QWNI{-5=o|GYmAbmEaOWuQ9sp0M}kV~ z2sAJ}QpE4U7lN^^J9RYj3L+QX6e#HeDFxlCR&XDSx#?7ksuzj$CTsz1Io;o{HmT`l zhFH{w-_~QwqUp6#f{(;gj53(8HUuh&l2+tV8Ga`5M z33tsJIi(wnIrY<9!nHLkYMRP03DX-I>KlwJLMeYW^YZdTOf{Mlu}X5>y{0m}pgA0B zm>+7auU#8zD6Ookstq+X<{Ef1yTNf>Usu@>njLDYtg39PEUTZ|&``O4n82>@r88tU1&Ggf=D_mwazxzObZ=!ZpoJA3EGag?eLS z^YX?O4K?9RVNF~4hHy_4>O6_{b&A_3)VVcv;bt63`hI1@s^&GJx=dkHK2DgsvT{YJ zQds*%Wph(?eM8OVp(;6o&8QIqMh_NheskUD!jiJ)3&nk|P?g^)H=6GeuAd&RR?8zb@x50r93a(+*qA0+(2UQ>_4jRrPyVELUmV&#MA|<27FF) zoU6I3MWXU^6~}?ySxTbvxuO>e_X?4eIQKfuy+kA?*87FBKyzO#5~t6^=%3W>or>#_ zV*OBaFT#C)QyW$_-YpUxBXkzoJhQGT)Bt!qXmRfnaoQN+b}NI1Ol{EJPlzPvS;GAn zC28(-zywVzuj%eoC2`rpx|;gB`NCDXqQ0)N$w;*%Em)CgPBI+AR-!D(tE*fSvg?*= zt5PJizYFy~E9mZ=yu3V@o|rpcMzuq#AnL+H|UB_z}~;m*|+%Px!i z9pO@nY_>No?#W7`e!Zrwv=9z)w^;y&L}iIk{JOgmzf4_gP^^`TcDCZ^uxNkR=LP}q z1!|I-Vs+mq5-mMe+hoO^jk(7M_kJp(zYuwp zy~25=qWn&?-DA~WS1rF6?z4o&dY#ohR-`yqTHR-h6z3$X`y8OwQAMAmTQW5Td&big zJzW%m;&v`N}U$trZLc3X? zQX8s#+|}PdTg8{42kXL`WpkukY^mZik+-tGVS43?>g=k}N@LRGfaOmlv6_`eb|!Lm zYmO4~M|FxrHQ-gAwB4;Hh^z8e*3<$)vJ=Eu)Hyut6Oq>hS_(B8WaOyl7Fr=coU4oz z)()Y#MZz!HjN%hh^BU@F6B4vqJ*h6!J%4^Z#ML!ItH%z!ts?Ga-c6;>6KbkmKP2!f zgi3;#injodw8aA8P>Y53o)|T9jE(!55MGN>`xW<8=I!}1f&vRAl&uBli&(H{}YlXmyDip#xOao8RLJu9GX z#j8F*lCZoWtTl@LKK^Fu7ew6kimgMqOB9R#14Z48-dYlh?Y2=C`&NMowcM_|CtFlC z-Qq}z*PpeceaBFt+@}@QRb{7$5{?Ao$D+A=gtY`Sl~*Vn3!Nj3Ni&5bO*nnZRAz41 zlN)~_;qOubBlmG#wcacWA+!HxvA(XmKhYDFhlP8O#cr(->A6cq+ymMSR(w=nRdOqeyCo>Zd{64DAxaAhQNm#>MCo^Y%!mBJ*CO%=+oU7SPUn+xLT-}O)#=^0FV1S~o^IX+Xzs{%&tuxLWT9{q2@W9ZqMpOOJg0Xl}#fY0IU=7f#5l&PJl_I0Q z;lo^Il(?0wwaOTkwZWn&1#wfZ7*)}t2=!`S;ABlx6{jW1n62nH4pnDa)suF$*{Kaz z)U&Ob5Xi!^EZ(}s=H3YPs@Y+wAq%vC-cwvQ7Hy+|^y`ruW zTD$<8jZ^0u6|1G_6MiGron7Yfg7scBk&ZtM-p7akQK9*-05JP~Kz?$n@BM~W&Imv%OlOm_jE z^xD;$SRJc90hbU)x@a4Ag+hc=>a5xxpAt|VPw47Qi=Lx_V#qk{7h3h}EXqqh$7;&8)$fs8lUQP?@n>3XDn)wMVqXs@xr-Jl-EKgG{%jDm@u}* zmF7W2Tx3%x^O`y{KmXX6C!kCkFj{I>t~b{F#(uU@zp}xjZXKzO7_C1g5{=DCj=@g# zq49&WZxUH~;a6>74vPA&a1;uCpQbk|%09dlMo$TE4isH6vR>w#Yw@tB@3FlEQ z?uTjWOf4zbn^rmp*f~X2yVbZiM(NL}aj8O6T~n!G`jqKp#_=L4ZE1^A9HmnHMmWFC!)x&@up^VKo14H0^$!}_?tZRgVu_n|o zW_4peTtoSx#)wa8O!YX?0GE-OL$`o-p*S%p51Lj@T}axB_2C({m8-HN9-~H-$@lx6 zhTjPOKq+a28|Z!ar}0pi!QTyZp{8ma2@(hUGQrDVP`S_@+E#<{~QcHybM|>+0&8jODXMVP!*O zgQgAFr=Y2Fp`K9Si!#n{s0>%nn++n&d*ZkT^!By4N z+)(!$aXcRVqhG7i2-jBD)ERT7-^^H7(^PF#4!3_2CsmtVqp_xL1qwEyEQd@OY!`1f zH-;LF6>!Ss8Ph5oo{2l5)m9nHLq=2Or6G*4-auF9B`A=>=ca076|F&7E)_a#@IapX za;U6mDnCI>GaoRm%|Eij`Xt>g- zg>%IalTiN+#g!#?7*iLN;bm2!#=i^qHOjNzsl|#~q*<>~oN3JP-&Pg%VT7(w#-iF% z%@S6$?+?ygQ+YUUMiYj9u6VIA&zKu-f`wmMTf4q)aGz4SVnrz2MCf2%QA_AB`1HpW z?Ox3?N2vP-S8^^wEhY>IUHMe;=3c5zZ8Vze9C{WUE5dD4Z*yO%B_@}&E4Ym`Zm{@V zbpmmSq024}t)C6=(&~>a_rV{vx{(gd#(Y?yd29Y^QO*+Iuc>Pc!|wt;OUo3Fv&F~Z zhMKyjU}aOa^gk5~n=@NDrs49iODqXfMYVKk<$vGem?W0cIA}aa=vSpAqDjYCp^?(8@WSo!s@dsj%_u zb^WTwoQU^pMPg=?(XFhDy17!}Q{ssK?AG)U^g3c zFBS8Efop31n0_zR@TxpxdP`_U^CQYHE0@EUjEqq^LlnGHEfWi*XX`a#HQ?{b6=Tr} zLs*^{E9gWh$Z56MRx0XhWgekf^@bu1xGNTl#w$SRO)IJ|5PGWWzD76_uYiAVuESO( z)CYxesc+BQ>Z)o-4c?NJg6cXzjD_4e^ z*5^$Zj&!AbK~sY<>19h|-XATg+0{xM++{G{o_gVV>(X zLsgI2mB(E3I2JQYXg?9iAL+2HbKQrI!ltYw#~o!+&Jo#p73W#hJ&NryMT3Fyq1&3N zsu`O8bL|J2)s>BN*VP3J+==8YZR+=<>kU6uomz@w&C)c7s{PtN zZT9NMyf|TbO|=#iPGBVYS@kPtyA!LPRT31{tZeLv*B(i59#dTJD%QU$T90sl3j4~U z%_m2nG)uMqUa`I})T4?rLg;gBQ?L}#0H0xl&|g>Gb;=O;YGv$=b@g>)NL{Pp*}ZLq z`np>gXUBs$_Y(XG&7uy0liQ*U(`Kpg?iYR$S)`n%}7W)Tr>S~K6Nht4%897&&6<4b6OD*Zz=i=(o#;A$LC}Z@ywuZbl zAj`^CK}D;u4a)sE-VK<+ccza@Rgc(gs)DcVs9{a3w5v}m>K)49#&UanrF#J#fw@0O z(4Vp?iE47=dA9o{N2UPDs=VKw)R?BI=WC8yVOwE8?lyp=GiH|0o<6~-ZfXiQPRP$+ z1^L*#Ja0w)n*7o6S(o89<>P|dL``EOKj7fEiFxu zcN^mLYlZULxC;TH><*D>OnMO%m@P`d5Hru#owy|+LugmW4V^Mnq)+IHdkWHzyc4p* zm~?wWQr^yls_hI6``bMAhZp2!e;X>TW_;(`akTw zcXV9U)jqt>Ik(K*DMzDfHS20DTYV&ry5y#63m4gvY-1ZEk2E8DY*`~~Mz)1}w4&`Sa@B$PCY?a-2dzvqle-tYU??_1x$zqNkvVqwkPxpU{< zQ})^W+0TBCsg2P^yZq>5^jwyiTHGrHSl1ZUx9BeDdpBUjUdq_&baArFxy-d+4I(7s zFf7k<0a#d`M7nZK-(XqFYibxS!rB&Cx?=I-l}zt8*&32{q+htQt*@u8eR0<(3|J`t zBvW^|wLK)ibusOArv`lDBrVNikI(af(_dV%fVqGrbO}eJ zDKBxSh_l#?3j2M^sQ8JOFJtBp*$Ju#PA2O@eMVJPe2?~$Gy>EeAntQik5QdZW|P5|67-g|_Z{q0CjP)1&=lRou43B5Y4Uf_iW;59 z8kxR|f*8GLxmc>s4Ut_s%jMdWayhWd3bl5Rr*Wc1FT4rqvJ!7QLDPS{7{AqM7Lk06{ zb>A==8w!nL(ZzD865@&Y+S+w0hA*_s7&V8ij@bCr#NFm$t)!#WUJ@Oih{a>OHNVXur#EYNQZ2CD56^^rf9 z{_e#+*i*4dM3GY}BvyW>l{D1IF-Bajv}lfRUo@m5Yy{qYncB%z8?aZm5wa~RG_^xN zafFX!2tPy^4_7Jah`_YAC7x3jc&X=TsS?mk?-Yf0DAfq-T8MM4V7 zrb1QwI}S&yRic7f1qYO*p$}`mi&vF5_-`hNjpWaGEFK!orX!wz`-aGz4{uJy#sc3t ziP2cq#2T7Wxdk9k6#(uHlmP1hY>%lCWE*XJACP9(S#!Q43cV>_L1gI1(uL69Z_mp_ zq&tfi$0MU7Ma0rc_ahxDTv!7kw%1~Je?>L^iO3gO`_*`A^_P~Ew%$wH59la6j#D9= znuBq-InpJ8mNNk6Nq_DM>Ys?k5`jL(Z=^>i$KWRd<_h~up#*vn%d9zpdR3Hi3K@>M z@I+>j`BM_ZEWMX8f zdubUJ_cA1bdbdwR6Gh}uO)9{KJ z_PkrkIg?hk*#7zR8_0Dgoe@R$HiXdtKXf;xC`!xs$W*<&6Dcrq?I5j@rFP8p>WxhN zil+@{kp=3-wTxRq5+{rdK_OZnXyOn7yypFWbY1XV+X~eE2>l*g`g`xPyWaRM*7rllk zU`3&^IoZo$lfu#O8GsRMWq`y z(fRJPwRyYjmJg}WyNf)l$y%TEBh8QN}&bkzPcu zMsA*F+>QZ=22pU{Lb4vDc>o+Aq&Y+OJay<7#>^J`QO$J@Ij&+LJfvuSgqfy)#LX5X zfpM`o77Bmnz7%*$d}DNry{*grxhsk8qKPW({zyWx0mJsHNN6*TET(!ia2;n)@NNWI zkwK##KbJ{$y(1;LPSX${srJWOuq-w@g_WSj*o@%_pef?S(0Rii~Chp0jhIZsn6N@U6zuOsq!>GKXVeS}1*q7kqGG{D-m zZ@K*I*6q$a3mB=5&Q1im{J@oWU`A{r938`OsJzRSUb&KLK9WVaM(ROEIF ztC5h1Ve^m(g6X?L3AEnOWFivpCgUX_m5N%2S&0Q@cZ&Eiwczvtx^e99@Qs?6(!E@!j2C1nFcQ)k?qiO*pmp& z@d>6r7MOFX25v!k+L`L1yZRd{F899(=V1y@6;UQM`XgGdV!i$^D6i!#5+lUMGkwGR zi;AMdTiwRxnz)xlC25zD!zOtm2nZ}mQ2UNmIF6<33Ef;y&Ycv)+65v}09#?y3Rwtb zwA;;);gv!>NaiKvzKgW8S#XZscauyD{GQKlLKHZO=o6C)%i~SBi%e*q*W|5GAh!I1?c~Z&vo~t>r53$7xu(g45p@+ z+{YK=gHklx^*(=L&!2@kMKelEpPu%HBB!Y4P9{-KSBws1F8D)${e5yS&2+p$&6t(X z5!kZ}6-)v8#C?<_fsq@F3AC&?TzV7i-i2%c<9r}?oz{#W8fRv}5V%y_D+bN<2sSF3 zV)6)+)=Em zhUQO$lRJ;@AVw%x6rG zgH}Z(alVrww1+o?$6RIAZ;niXk8=hsQYJ~athosD8Jkb+#dO(DsT?Vt_z@CkyY!DV ztIiTzExnfE7VMr8d;RrvgyAylfdJW|(TPYXJY^STW`sdd-N)GnUQh_y@BPEEGW6s4WOR6&8J8|i^(qDr?C0^DaTyy)ZuqHNq&J1_s;gt#Db_9 zSL@~T7z!&xpLbPC~iYF)y;!6CnLWTy3A>GO5&%AC)A5{XwVV7Qx)649axA)a@)=`AGTFG(XZ=FA zUNJ63+rrsK3l5vRVO8Vk?#M!88xn$8J+`eQ3631^Gt$~}P5!9Kudlut{g6ng_$CYv z6=+N10V87o-r!}am#Rx|-xwX zA>Xk@+KCRH&-LfUi~eDx3SwJYlKITmv^M1YVuR@g@#lO!$R`!(@1|&PXmX{`t9`)P zi9UIrVPcw>Ivub^?Lm;n5l1DbQcS-)he?T^q{d5_O3ZFxA;@utaJ$-K_cUp3D{Bh6F1 zxiYVOp6BqNDWbFa6GQwZ!}!E--sv)LaJWWEbD7>-9L6SCUnIgDB>w4>yB)S@A-T%| zS^Q5^in!*L2}ipD2G>G|wV1K26vt(nc|CItIEEKQRD$tI^JV~FQ6znEcWZ*v6W5q4 zkqAk|R|$4b4f|j^JI%2Hx4$hK{>o%g2fvuI!$2T6=a^qHd8MPAU(DG-iP^zV%Qcrc zGB+-8)L{-Slk!T8nN3`-$uS&#DSU#g6EI!){DI^@(J zB_s&=d#!d1i_paOXgpG3uU|GjXZ@)pf9*JS?J5MqlcV33^akL4z2b0*bElba3b}0> z*M7m}b*2|qf0ll=DW7%Bk(bge`E$n!xQ$tQ36oDcn&n=av;2d1z^BjJRj0}tn88(;5eK@C#sgY5_3~Phw7$SLz;dOj0 zMIs1_>^TJs-=;jd#q^rxjE|e(x0zRP88?~p5)XeSQ=5?~pY;l7I7{B-abYh`c}CW3 z9`nk-c~37G=)=_f1!rG-&&Mh=5<^TiVa}KwD@~EV_8xmwd78iWj-q8U^mapzn@iC$ z8O{y^KerT(lc5@ClX(IfCqp&P1~bbsNSIFSdzt)XUB)tR&06qX`-IH@Zl7d3behMG zePh01$%nmRo>e7(Wv1$WL!N+k$zd7JQbR7m%kNrZ*?(F>_M17X4Nf(@_~z9G3)IuE zKK}G4si&8NX7)Txg9Ukhykz`e4!OpAy5rm?H!D5?$Kx-Mr2J!dm>aFmMR>ct-pl~I zH=S!Q>vAN$KyC$X`zl>NV=UKBG#y9Cd9JRZR-rT9V8_zrXhw-NfJy(*Sb}t$SDtU= zIAP8)?O*ZSDu0cU5JT^@BkN>1Qpr3?$np$bZr7RCHA6n`=h&{4BS&!_n99bnV-w~U zr(;4l9k>Hyo=lJ?HyCT=nfSZOI9Z;HTX8eF1;2GVX--f%$Bi5}XxM+zWZbwFX5A;Z z8D3Wx@hQWVL1sd@PBk`nMv#t(+?LB8Xy)rSd2cAI0YsD5VLX}Z`BMjnQM%46r^NI#-pH(rk*O@Ro-*Ys&#^oBhfMpzDZA3c7_!rJw;@mSEX9zW<}5Vi zWqA1m9K|4QLI3Z=(K03%nOUwOGH=!8HM#qfZu3*bo?9|(!(Q}GoWDfuX{m>6e?_g< z&)Efe{;IN4@|RUztea(~cBs?wNYISZ%+k`^S6bssQ3#Y(SP2$h0ug)~_~c#uiE3o? zb*+Maj;jRXCWfXE9+NKpe)v2AX&9vwIWpRfhH8SS<16d&A-%4f?b5#@D zabhu8A1U%W^1=1g)`J*JuC*j2vwlZ%Z>?}_(AnNv2d2>~(zdSA9;%l!J3X%ItOtP8 zl&DxBYR|cE&KK_ZzjN`Gc1+?zbpqo9{ZGfD9@?56h$E|%`j(U=JFGx4~x$!u;AM0b6 z^gGL$@c}ct8+j2oW-?O5C`*l2+1K|IF*QBmUo1Af})q;|%ZM|7>fx58dlae2S{QzpU3 z&Fvi%Znwd2;M!Z7Ja&S~Lx%pauAfVr zGU}MNK{HP_X4rEai?un#0!Hq#4sydGZzK6HssZdEzb3aei?L&rx$M8%TG71^k@YVU z5yOm;aV|5;=w|qdweS=1-*AiL$)HxsuEhMUu+`08G)MkwU}ham`{gJ(()B-Sm_uo< z#|-1`btU$kXUNP;0a2U`FViv%KDb&x#I5U1t(S|3qDGW*7JRfyE)h)ozJ^q+vCJty z!D3xQ-aASBp0Veg#O?31Xdu=eLm@?ItmHCUs1}|f?s$5+=L(ipdj)e07JCnHc_|CjVWi$d`eO2I7PxO$ zj{R4s+$=gZr*LH#decx1#N{QTN8%O!y5$jrJjYm0-7$FL!lggJBI5r#nhQXTa=oIy?yu9?+hSq8LHt$}kFQKZngZHKAZRnpx6;y-K z`?;CDc~GTC*)3iWdfj_Hczqf^2!z7nHqsOXD%fC>Cj&}z#;$zByCDUuVQL7g^hJze zu1XrlPlfE+dlT*&RuHOTZeszh9jsY97&^$bbs!cnS;sCG?>VzK-^+~%6Q!Q4#(Ol0 z8LMB(aE7hADGeVWBUZe7<$>j>?shmIC0L|rYN0K>IvZK#9 zSq0oX${laj*x*8_SXrU$?^8IARdjgcime4ZGE9mLhd_w&ceQ5uzZo`RV(;NAs?`@R z&G14G?$Xr^n;8wYO4&=U{-F9GBIOdqDFvs>#VBZ~Rfqb4QY|8DaB9m?Y;+OGUv-O! zC675{$4hl_Ftz>~)~kZoMfmnZi|_@P@ik=n<{f2mz-0}%(BH;UXDGzNb@Cl%$u6=$ z%0WZ5sfJpX-U#q0i#MQ=mYgJKhyrcFIigtT*KqWlo-p-t;dmtE2?9*vd^XchKpC3w z{EB?RNEurqfNQ6_Hf;pO(Vnw|v%4Iwf6z>O z-YaI6-BLy5`hj}4#q2;o`G1MEOlYUmP-I6e5gm35Uhn3w74bANz2cPZuJ>F$YT$L! zw893%{W90K5#TRJD?pq$Do6)GHH(fNa54V9Jh2Z57|GI+>AaCFlq>y!2{@@cviNky zUK3gtLw(7tIdj%BYl68RCj(CTX_{Fo;hm@Ut|d98P1jsoYx&2)bv)@8A|zM|fMBx?vc3h(_r@eWK+mD?yOrK-W2mg(G6$&G5_y;37H=_#C2X{7@nOb&Jjh0g{U~bjCt;(j+&r7uufA`ev;%nRyrQ^kft{w zW(351^j|jEW&V_Y$4}y5Do#aMtn;#GBHdT7 z{-sx0@{IcD$g-yEXOcXco31@UU2(V$v&nOatT4GABj-t}+A>-afD5r;hWLoMCuJfK zj*Ug^d1usPv?0nlipw+{CF@{*dd1uW^Dxw(VcERT5;ySfVfX`{91nx#QuT5yYvdb< zQE%Q`;D23X!BTrf6IwYlU*OImEvxyiR573x**#D1;rHwO<9t1XviryONY2x>XHrE} zn^74>v3=!NLcX}i;N&8% zscb_dzu^*JZ*O+Gf09Ce)vLW%8d@5qFT3|5{jw&ug^Xvp7~W_8c>C6HED|3pPW*o*(kxy5^~kVcQY4DwAX1D~#uIQmLK7!#LLxtHV&0is(FI$O$UYYBiz`8g z=eC-UTd9FhJ-$TjrXYkN-o1w1=`y54+)SNY06+$>vwjGl{ggS7Qy8Rq$O!Eshxyj& zz)=5)sdbzvXGZ{kW=-|OskK9Y*ps#X5z1JmU#}(;16tBOuKCpJ}d#rHXy3t+S>!`WYK}}soyxnR*_pK%^htlVu z#1MSJ-wU@`%*;_9w6}*=;Lh%~dR1zxmd$dk0u_|8JCO*_C##d0Ki5noWPhW{H%LAS zTedN@4Gn`b+uA$DC0F<=f07R^is8tcP;OSs_*KNVF?lh$wF@ad6u+)xLo62lk>MAx zYb8g)1T1u55WsC@#~md&z-N+pp)`NIp93_FmrAtZxtC2 zsbl60W~|XV*MbeO$yw!J*TOvJQh;k$=|Z^xuAecvolFhItiv8TMXT793k$n1i3h!l zVrmc#$Qxx^yAE#to+NC7gmEkRW_wUj%*E>gcfJb&th3zBC*iZP)DlU{lMw|nx??6* zGLb>9w{)Ci+(ZNAc8xt35yhX&OxW6 zt4o1$;dF6A9tRw8Be_e;a4m5}vrf@K<6wJ8oATsW{8jB!+NW$+%k3WML>Mwxpo}yX zN9BI_FV~SV;gCDv#$HPe2$m0d)F0_d4_0H_2yrb_YIB&W2QLuI&%?&1cEGJx?IGb z5;~Kq++^u2wdH10?h~dw%!A@WGQUC{Jj>hlmul^>7yPkE0-npqXBP}U!I)S}o_q7G z_1v+H;wu%$rDX7W2U3s@l={1VOwMdg`=Dfx`cfB?U}Es$iHSia0~0y@2Cw(l8$7wZVAq2Va(;ara(TcxeRJD-e9!q7wJWCX z1>&r#GSn$WCK5{*vD=;APmv1Mg;C?`RgmHNl?yDL?IK{rspUr&T|66w zY^Ow8?bcSM++qAvOs$RDz#P||0qAbA8lxQSm?xM8U;>ES5j8Ko#}s-2`jTm|KxO6O zWG_@I{6vI2D6n^KRYnRudLR?IBle;$2hJc2eG8@4mXU_m7oPvp& z@N8P)KPe#=)I+ zmyrqPl+Bt~tZ?gjI-oyYgjo|Z*DF)gY7V>m)f}&Ir|{1qI#OcEuMLuyqoLXfAej&O z20t6KTF|_cyFvSmp~(j?DEV zjU8~#zVaXMq^f@@zo}5U3r-ChQ zyc&`Z#5Yl|>nOqCN*uBVj=uZCn%Jhm;m^`b&U@fGr zCUH0E7!;ee{FX-U2{Cq5b1mf{M0!xa@(^*r)oaJN>z66k ztqwiP4?DU+3h0BU7~9f51&U9}(Buf9jf%^Cax+6_W|1%Yjn{nK*Ir&8EuBM8Ajg1) zT7m+n0GOM1K|H0*4%XM(r#_y}#A9kuTXBZ)Rcl%h83P!5J4(Cq-298;z7_BQn_jH7 zcHbfYh;VK;bqr5TjbAp?yt7*maFBo6m07%;*oEFz@e<5dpt3hXc8L)($@8|vJI0Vg zhfN!&Qn8h}|H0(FNVq$=1q|~{ZpoFP7DDMmFp2P0e#GFx>+DVdnSu@~=OwA0GRMbt zWK_2@x)<)JA}lGN`8xiMfT`>2?y&1>fRY_?Ce z8|rcxtE7ykO8TTp9j$4u!Qq-e6<6;ub&?`?q^yL`^Wkjh9r-STlwLunupTa3cNiH=YlOXdyS zLfNIYfmx?>Q6SPwW+2!E)S6Fe_HBloN! zT;e8iBbi^5>)9NnV)pR75%1R|S2`T>8<1bV5!w!}XE@msyl1nep6l#WFwolDJ>p+Z zJgoO6<|yN`Qf7FMGJe?WSnH8ru$|%tVuzU{i^)Ipa+Z*e&q=<=bp7$xdlaJ_^ZA9+MAf>E2^Z%+$n7%(7ui(;Y`3 zDT6R0go;a4XU2i4eSYKep(&6!&E-e5;feNyILH)F`ah znuNRkQMsWJiHf030R(G5YO(<3-~piG1-|g-)PN7B5npG7cd3$_(w$Ex<9at;fJ>ikaB@PW3As@(y{4I{(hp-5dQ((E^|b|gQk9v%*d>#8HQHR1Z2 zrr}2Qr0P4>em7n$c)~pdW)I%1Fb;bVOo3L}>QAW;4%LL3YKDiKM`}XB>gt%^`D^bN zu90YD!k>>K^#3mTK3**me}yt&Q-7fl;2x|&qp{(b%?f7Oj5k3zA)g)56L?ZY;S-6N zUmI0Q35MVJg#WOoY$x}N$XGasjx8J6$#-HS5tOe(aWFB3D_PO_zxkNmehpO75WcQz z*8N6LQoV5}^Si(@QEH6cz+?vfW;_Y(<0(XE*GhCS?gg4x>do^sw;=s_GJHAD(>+Es zuIRVjJ4MS;O53)dAIS(eL_#&;x?p{6Fw|JzSnoHJO}r!FHfe@xg`UM&qEB?qd=L_gg|m0A=X$>|bIEt&`CJZ& z`d8ifQPjQ+#p3AVb;1d7s#>c99nQTWd0xdkCpc6;G*sURYgrSi9cco?{+LJ)RP_$2!XGtLliHQY4rSOQEH@=H zc~?R-<;u4SNLZeo$#RPjhOWl_Ogl<$r%<<3bd*e|_(D$yj5|8D6m`Je5oEtW`;HEC zBY);2gfN21L%6f)hmv=e8#qKVTMW2OhCjHm=DM2dx~8T`Q(bkMAcX% zu{}1i8C{x~jA!Atn!+r1ZdUSF!(n(;j&zx0cuPD>e+NlVkvBb+Wf#Gr>*saGt57R* z;PyNqkR+T)JTGBi+vCGKB?8Gx;9!Xk}TXho|l)x#9oWdBH4?ddXWl(f5lHN z#6P{f*YAmh&+D=%P*=Rxd#1v@|Wbk z#8P)#@+FyWAs!YhIuyioKjr7$50Z^g_j)Hfb>Plqr{?9|N&7rKV@o1iz_C3aiBkIS z`>iWjbMNu9?0adOsVa6>hBEd1X-J{?Q7Mhfgl{>1Li#PBRxe}unKu!`>U{to^&L3= zQOW`O+?n+qsaK_Qd&0_m_9m-|G@f5_zY>VkxS^wqSioM(04mWzb^r?oU=$0&3EGx_KP;QznqsK?PZ^ga$^ znp!xP@9B3RW-_Syy{2wxXru}2PQ!>=T5E#*+zj+PR*TJV=E#dO7G$3O+bnm0D{FE> z6f_xr9x_PoY7Wmq*6@(~GloCY|3S?o;b3EAq@l5)8k4iO!lT#lUR8EgWi2f@qlTNf z0?xcxeY@uW_3f|ONL}^tNON<;aQ#R;tb%2kmjt#$oCdP|0PuR0debxP# zr>e#Ajn$_{Z&aK9E!9L|psMR?L)A^;+UC$N9meM~^e2ksHFjs_tx@LQsHq3os5L#{ zipEjL2K9`w;k!j%UIxo5!o^qey37L~llx>%U4A7W^Fy#`bL3u(!+VqS=6?M8P4_2% z-II}$Y3<9?4|(%*?;%j6)KH#zHCyO$4>5e*nV2~U1KVOe2>W@AYC=pLdS1h8;IT@w?O|Hf$X| zMEU850FG@Py#b%Tb;I#b-8WE3xgwFov*|_;&(8z>?Yn;Z{dfKJhEdgGZPSzev`xoA ztsWT}8VX|xX=;YU*&HoAA_J;e1(H<%YyGJY%TBA@m=vozt57&DuPF03)l@X_kh9KOw=y*hVb}zG{lfAD6*p(IThpP*BvhJ$SJqb8Xno>o8%cLo2 zZE4aY=Rcmm6Vy6+Qt9Qfq<1&Crt}K^PIx0gwqYK9_vGt;GUVI&yY&Z2KJU3yefGR{ zoBj+eUD~zk;P=Z8C(l=|TevstVo+tHpNM7YRLkBEf z!rAvd`btxt28qyvlyQ4xDC0x?2B~#c{t+|obo-1K3yE!u(7Gc zQ*>Gr`?W{@V0KmJ!yl#O*5&76xcU0N??a+gPA@)JN08o}di*wv&(v?gljJ4eZ7aD| zf12bcfy)i7JU^&2H<+%M>*W)5quSkcWL8U^-xY_zR~O7E~bj;$#C|8cOqjtG_XATNLck*Nd|Ia`F(*pkow?N># zXLtXn4K&Kf>u>e=!K23iBSu%qN1|$YlSOHPcRhy-ROLS`DZPTd1QdLL>O*@z{BTvy zkJ4|PY;OZksyd)l;_NPRwbB!KrQRe30`{6mvr2|b?e5TUWGEKfjB@v};XtzN6V)1a zXarb66p(5>&VAs->#|y4^``$wci<)b-RfQ^TPoc#?Hg_(jtqPzU48>=;kBB+Ik+x1ErY$K3 zU;~>~nN2Sh1Dvq{B@Xm<_O{$aGo$g9(mxdG&iFfnA|L=wWaN`kdn8;c4)Z&xrsHbgU0A>5o6Hpgig`~C(8mOws0T^2EZdawAr_(*^(JRy$ z%SI!Xe#psYXNhJytO0>4PWEVJII=APK5)G9663vaQpHi_-2pgM&F8!Ok7EVJA5jpk zoC3KvRm7H{{?G2Ix&cTx z*$78feeP(5op=Z3Y2QgD9w!x|N5|+WDIN~^2Kci@={PjABkr!Yj)B3h#Yvfh!GYDw z6!>1f10$@lbq!;M6kXQaH_*1&ray$#-Vkcfig*BSP{b6ilsSa;r~f40xdfx;M9Lh_ zr#Wy=4tkW_$-L+4;$S2t*P;p#oq z);}2^|5)%xs3cr7pPuVq(Z5W|L<}zO>ED23O~ur+q-#m_8H?CP6EG%YlXF6dsdw6hH=3^%fpaQ#eL-QUr>tP2Vce_&Vj zE^Ax9qHD0Ha|V?}s@tJ^*xA*-V!_}*Ut0&X8wQtPC{cE#mHnW%ySu-mud8cmFHH;f z(j$wz7PNJ&9$eVd*;!0!wHIh%)kCq7S}~v?;^GOdqZm2vY(VK~?Mt*;47A^hRX|nH zzEs<4*^nUqEBD2(7wtG$@}lquB4>(O#ig}meZxIL8d6Oi8bzgjsvu7_rHupxis_xD z!c&J08WxB(3gL@1lG!0V^^`U~D0mQisl#Iys=BxZMOgLZimKChd&GgKtpN1ntlN$!1FFG9gI~U(0_ZrPJ7iW%)pzb*m z8T%f|F^zj#>E6-EhS2cT;6^C)%|n^$bB@D~C2gzQ(X#_xeQg81eS`h0m$dgTw&x&s zen3n4kDS3Vt+%^v#fgiF>Wb&jFTua9)}OV0Wi5K<(eCcC5{RJ;MN%jT|NRTC1(qv| zp8mhfJswb+l>JHLb-pvTxQp7<7CR43zflor(an%qUalK0G9JGv#TSb@ z^%qkPAS@YI3XGA7a+f}0rFIljMyIXh+B~lPSTykaFxB%f&aMT|T2e?2QhTSz+ONom zpgD{scI8oBm1U2UujL*#&)U^`E%}ZZL+YYnFJasqm$y(Pnac~0I+3D*{-He@gDnKU zJ~@tDj#>_W<4v{a>Bsc2!rql?AWUu&$AhK(2r1}xb-@l$mj6V{liIegdFHj))%Q?( z5JdwE*($Z942&?AO*Jr9nkyZdxlWXA#_pl5I0HX6^|HjiE`@QsX+~ja;&l>tvE?8l z4MldQ-KF+9QDx+j@Qa8mdbf|=$L8tzyuVWoAwNF=gQZj??VY>66ykQescQ#r0(jK$ z=0f6efy%;)c%+DiN&pfMZ~imyQp-;Rca`97=Ai7Df62F^3)Imm?zxJl2S%tKpPWgK z2?Fs&ZX@3ls;}{Xs||zvKDDdWrq9W5=KG^#YK=k-{?H%%+A;nc3=oiUCL$Big+Ulw zi_vxx<0p}ZZEJ#Lv2r@EEgZ%coJl7yj*u-P3UI;&U)3M`>{cl`ilh`G`Zs9 z+lc>z#3pRF!q~aoF|PYp#Q(vT!&@mS{WW!AB5%GV`w2)4VRb}W1|i1=#!HCpb{M}F z@t$};Q0%@MKF|g|o3U#()YF{OVvmHN@N$iagVzR@ch9wY8WP;ldK4?T@v@%UQo=mb zD7|767dd23*HQXqW|JH28gQLqn9^uog=PN^J4k?t$gy18c;w|wb8_}<%GVT1YPBYl zA8L7@@GZ9!+oQuJslgRXIx!$3@fLjJHeY(neLe=N{5;JyoB09_%rl^2XAy%7zOM>- zLt6>8-ArwY26svBVMXEu#}3j6c6(?DswKx`r~uY#wOsd%DV3v6NE2YLjM>m-+Khdc zz?g+#Bj9&CGz@)>q@Kj(ly0AD9ya5pNk;>hKQ6a08X3W98x8KGE76h(RGSHAZzEp^O@=^V8k(!Ok61G9?J%9o9A6cpIO4&eE#C}8gK&c5NDa0jZ)Hm0zvFFv( z5e=jh5ZS9C8LxzZaas)$V7}QlNS@>`FW-jgVcUJ=TU$X36+vZ^SSDq!i;E*hQU-Vx zZU^mJQmpQ)xWayxz?@>g@-{$x{;xC$npAA!Z{(R4+(GhVa%BZSq1@o7P-ys!(t?L6 zHFyL7>QPW@=93q+h~VesWWPm?I_bujgaSl%NtUaW@#mdlR{9yp|BWF~-H@IB#As|o zbhzTUn$@2(p4^VCfXWMED8=>)KIUX+IzCT9oz^Nec+w1XMz#f%Ow}eh$BMZ;IvQAq z1<+x!m$4OwNaH@vn6Fn^hYN(^Ni~a0NvUWcC*2TDJcY`eSzG`swyIA&-VQHXxB+J?}F-gJ9-2!lTfpKXubVFf5 zBU|33!d<05H1CIQb!236w8idQI>($bI@OR5A2c?04;wnJV|t}w?WP+8lVji$jwDKo z8$^GL5+AJCi|Ir zG##UK2tF)SM0&cK|Cf@YBW2TkRo_c}<==9mHMI>j@SzUtkvM>uMCEsoStWSEiOTT` zR!ixXN3`y$u~_AStTQUnMXIxoQCjy1I}iYK{J6x?!!#UFld0rx?px~j6c>YHX>LLS)5=`{!uP6=Pda&J3gXXSX0%hV>_Q*r|ry(pYS~WPEZ6 z;ZqN0igJ7_atz?6NG`qZ<-2sYLq7vOm0Uq~d#&aq1C-C?4e;3(xl@;3Wn>M`q7&iH z*(E+~xuh1|(a=-{m7aR)I28t{IeM2ECqp;xF(YpipD3uxvKJg50j@cdn>Gjsv~^GDzbL9r(ikxLRV2_ zXb26g0@t=>J<3VgEeC9Pe3OY>Rt91OqI)a@A-l783EB?I|Dmt*_+JUzvrMi&F32~{ z(XJ-Nos7jPh!u3ahCQAV1RMD;m6t+1EtJ$?za>94vY7PO*o@-%U-&)X3D`-S7ztl3 z3fIS|{0yG49%>6H^r;};4IcSk z>R5%ds=%`aLkW50&S*HB9BE9R0i}#wwlA3hhGR4FM-NA-%?mtz-U)_p*M}mcB3`@W zYZBko>USW>#n7F++7Ri?=p?>nCOCJz1TOa&JhVN~*QEwng{!#Opz$B_PBmJt06p1c zr7WbnBQo|^!7k(6$1+Y} z2nhe^x)Q7XTKu(0=Gb|;V*IddtQ(=v4!N@*f^;_Dbiu9Jr^U1cR2f0W1s1fNOF(I zi(R`1$Kg`qhMvY=anblWOnXcKt`J|BZdJwv8R)M)aWzL1kqs$^XmuXpAVo!!WD|y4dQFH|Z_xO6as?%OB{08a&wB zASZGs^qW};`6}RX-=r5nYDPTG^$XHNkuBqisor9Ze`@iOG@eT51V#`do)RgUNwZ2@ zN3FhgRlGUPwe@)ZB0gfNiiM!gFKsA9-!t=T7jMll|D3A-(+ris42;K*c={4({fdQ@ z7U?ZyKXoyGG8%ADdMm_&j}+9x(pgaXmDxSpsSou5aeI@gC{82sijY-@>5}XAg*pPh zNNxph(b+A{b@2E%&~|kOzMI0>Mq<~=J<#KW!+uI6(>;*XIXZ+O5=MO*?ZGe{#X28p zn`P~q=Ck%oKH^}fOcQStuXoe~OX#H7^m$nfO2y0$&tXmsiC zX0nv@U?NiSFQL!U&cI0naLyxrP5^2BaO=wjU+eN!oaJU;IfHPZ3j~rmb+C`u zX?&ZeeVO7LYM#zNn}%J|_>W0k%(ZnU-=}4sdcf&`=vc1FvSM!&L^jnuV4t`v(&j>d zy^g%S=E(3Qidx62EMp(Z6{eT}Q+IyuHYTNYv8*bqdQcN-@#&_sIN$L#suWEABlm!c z^9pY%bd(aRVut=1uX@m~ubG5xWTX?!2-)A8ixfX@F2y|CEC1%m(7$s66!`*PL5t(o$OPp7+E zjI@B^P3!MvgAkOBLc!ilFMf);6)0P5uuhmg;wa?*k%cV;_(zs}Jw?h_Q;OKtx_mLE z-dv~2-=z52MIf2G*txp=Wy(zXT#C&=RZi99ZUG%7#=mlLm&X^F65^{=?;Z#z{9jzX zcYIV;8aIBPbI!eYT5>ZbJtTJ~WhNn+G)f3WNTatTG^HeyWC8?LH0(qoabpGp)!2a$7krP`PZy16(@(atzT^^$+xvyd51N|HDgihJ5|fubZgrJ-+`@TXyc#l z&Ff+0RXJ@B9+C>4ncR@s`yX6RR&Q3>rf5r+e|7ZwCTjL{s&X{>P6@W>DWC*->wt_8 zIq6uAycEmdXUyBwEsaZkrOSh9EEueOBWtIcdt*IMJfhWtbHAo^XKHbW>tCDAoxDsJ ze^2{HV8KBhg&1E|L#W0fIA}!FX1zFmc6N#mIh?rHcAP6iGzHG12wIm62Uk`)@@#qL zOjvLRGuTcvXTeU`tOasujZup!z%@{Cvocxgcup(`#%!PrWN4WNti?^|h)x87t#pcilhJI^asM2ah zuxQ>gO95? zN$twAF-ApsU^M<9^YovS%UwF%P@t8PHretI#Q&5YjK$Ao^*F~H3i(V!3kf>NM-@9B z;7~51=+In-*ZL1n-$tSW!I^8BXL&Z-w5#DmfDScZ?l3Z~E%fWQ(e>*$s|m#0F3M#3 zMO0=r)i6DaX%FbVtwV7vhLsK4=bUeG$Xn9TsINh-fg20w1Z(;TfB{v=zK~v@Y+d|Y zphQ4nmpqYvl{+;ttJRp6*+wI)>pNAu@b;Ooi11*N;6Acn7p9qWfq8+;SbW zn6OP9<66vU(0so+grxVVP-@o?-%j?Yi(3FJbuV`og*GrzR5^*$R6N7A zOauKxz4`)^AIKk2Ktv?IGfRGBKd6d))Bwp?Mw7TYi~ruG?=QUYBg{IY4 z(~Ca&DDpYRLhR1}L$aS?iL7RIV2pg_8aX*<3Bu3m@}fYn^R0B6BRWUX`wkmp`Repy zD^>t!+%c#Dz2%)n^rPbv?0#yrGq`zY5&6Wiu$m&NA_dcv`f_Rsc*2`}@*mn5$M4l8 zDUXt33Y>*{9m>_2-0mhPdc@_Jym`%28ELbq_oQ9LtptnU6@BWdmNvMdUIFpI7aVGE z2hXvI@ht7u@vaFN>!hX&JUc z*sk3{PN1)0_GGzQq{6s)lB4VU$(~^L-%W5NnfRmEo7h_qPpmXq&C0{w+i^d9F+t4X zc7XqnPtbRQKp~uuY3>oY+?9i^dJ;#)%7r!zYiob!hZDq8oc_-F8>F2v!CcA6ks;Aj z$gsipJB(ROUpK*=&3vBj8<_sO!jZFfBAgyf~drcHA?-*Iw(-G}fk zSJSMvZUBZ0yLQ>G0}h968ZB&Pr!8wBjh)ur4Y6kiG|bcB;_P*7tP|h0s=Qalz`ibR zO&9R`cx3@=#ElGHY@jsK+>6_=tJ>d*-y|nbGZEA-#NTsl$Bjp^K0+rL>&O3uem9N} z5r6n(uE$u?4u&F_1>j)kHDb^tOSt&d)VfHSpa#=w+oH*r(~5@@L%5s}CcZk_e$vQi zCaVK(0)^mRxk4v>lxZH`tT5eQN+nF(5Rm*KLlSj#pna?nNH?J`tjGI?vMSE-gHLG? zGpU-8OOi>ao&3qp=bA}8NPWh=3p~F zJf6=w`e4J;e|BCZHFT*&WO#pRU^sFP1X{^ojpm5(7lCS{cm?qT&9 z+OHfThm+;OYe~ML8I@Wc2HjV<({3l{R-vsR)W;ex066ca1Vck4-5!WVkxtL~DPDfL zSd_9S_iMAUW0zkh_!>49=XVdUI{78fxm|;7M>@-3w+vHan_~~3iW9Pj|B`+35v3=8 zOgs5gPE?gKvj!5zFFG(Ql;ADV=FyR%)MluH#U>y?_W`H)jMHA-b^ygyS=m2*p4Pqs z8lB(`znd`*zi425sm%;C2Y2M(= z=RY0YsTy~aP2?_*G9y^6xrLTwi>yFtGT>T9VavEKK)9Mm%ne*I@CCaRVla*q!4LkE7xpx-+j9bc7Bj->bSf zmI|0i4pq*m#-8^~)&w*xr(5lc)O~**t*Z7}>rC;&X`3ReBWf6N*Yw??lLUzHJ=@3SQqQACj;|gKh>w_Pn=L`ilQsT|ZC99lUxDUjG~00cSOacHfCDd+=Zx_g z%eJY?qmUh_*k)lViza*+fvKbctJ$gmMvl`A6+%TY!r#nK_5(Ko#&|=ed(#yqi5^vu z_gG)&>se)DMxZuo^$aji&qLKTPI|%*XNrF#qL3H(+cJVP z$gV|wI6-?9<&A>RVBKJi-sL|*%C9$N0D%GJ2-2c|lJuYhdS9=F%`d|)pZ0hgV{Y4r zbHQ-F4o}fC8XFv`is@wu)d2uHI$qj~i5M=zISsz(^~~+qmeGu{bfd12MrC;3XsuiA zpzBOu;^e^6bEj@~Ui!ykG#4 z3Qb&8F%kFXQqh?L3T~~SKe6!`MQ_c83=)kj{aW|L!v=jWeEq-9eNriTpl(4A*@r$) zt7xHRhCIkHQ&_)V88tsX|AYh)2%mXa@wxzEZj1p}InYEfhOE#6;cmz$x3>1GS?r>r zyNV9s50x`ee02>M)qH0X&K^mKpFTH^YYNa-Cx3V}p};mcJ#30%^@uRud5ZkJnI2g5 z0@7bmy~e9j3i)nVzzV%AYw_S05d4`D<|AoxCX>ypmZ=cK&Cjw8cm|akR;u@^4zj#* zE4ib%`Oaxc-QTm=!PQ_F0r88CG>kRJr)iD?a#xn8^E+C!M;xxQG&-Ka|H#WM>pkYg z^d5HB|E=XqR0&6CrK7i^TbOuYGUe&@Kt?hpm1)h8Ls=h^-db%w!`!$xg10)LE16*b zl8Ix8n8UsO2phL()6n@MkhFH|?*5Hk!A(Pd)al>cn>>LQtao}RcTI%JTJ`sZW)jHt zX*$*DA7ZQ!RUZdL5J0k~A*Tei9&A5T{cBx&- zsYdgae`2?T5K{u34RdYJ6fMj)H5h4CaBvi}@D{ht=@9=Ba#~$SD&-X!s9);~5bk0j zd!wU&s4rQ4vHfsWWH=UHGqQfL815ElGG1b6XLvZOuR-)9E2%F32D#VheJcVd4A+-7N)aAMJX zh_p;5stfonEMWP;#=D7OyE0$RWD>xSFnD&2*qcrZnQf=H$oeQfPo{JEt&{q=n3Uz3 zo~iGJ;FQ|b*m1L~4!7VOCQzangsf73xO=vQqvqY2erxKEiV~|4y?d#;SK)`QH#4BP zfP&H}$izp~ydE1sT-SHlS}?J+-mt@;>kdxY0yYZ#G(pQsWDPH|Vw;s@dZmY-8j&Z&ts5dYeHt|i2 z;1>HZr*BC+H(MXe#0L!Ep?xt!0}dS$D{(kR=x^#k;EGTTk3@8+h~8qx`7OM&NDKrB z?1W&qUXO;ngp3;Iy2XDuxHz7gbp@@vT_T6Hoy_(+SZP`2?%YiMT}Iy%?_~C8ne1d{ zM|P&(2@_SgZ7^}vu-)kta}6_=u7Lq#{=-N72ibrGYuBtpFo^;P9`Enm+Ndi35GE)0 z82y#1xS128q&mp>wt&G1eWuHpfIGq`C$lnG#bQUuHVw2#r|VAKF9F?wqw#f`9aq$* z+^oqK>Az-Kldoy%S55dG6hM5qFHOqa5xIe@SvDp!>SA zMQgU|Ef_o{Z_4EFki>p%HGhOI0!0{fk^L5cjRLknVI00XR*TQ~megLg`xYGSr=xKE zv#$Yt4yhht_BB(Z1n^>$2=EMT-B#I;PYk1#@gU<)Ent73D!nOM*iZV|Edc3pH8`ec}HJn zIxNe6$81kA!U=hX(b!!6TxMBs)K7n?#0v~6>I+I>x|5)xKC!^tN(hjs5N1C%p&iHDgsZ89=jUNrO()G&@^9PsEUw39X4%h(1%3i}ZAj~`M2IXqD zYwZ5&ift1UOW?c(HT1=lJ_%>>$?OGVzXvHmHO`1AtzwkeGN-Ec?Y9g#g%hy7#_rFky* zv$^Uo)5pQiA{1J8sgwI~$#+IqM^$!j_4201mDQ_tFCW7WCgy_ZjsZ|pobIr!U{eqb zn5LTG-C6!%qsanw!Ns|Jn~qr0K!2CC+)d{(@qCUaRKO_7N-C{O()?Cv(|V46>SY3~ zDNsl*4*(H1O=>sA540#)g8lJ(#uLnV#(6kJGq)C@9=kqId$*3iUy6!aGHD6- zBo9*?_QVl?!6G%NjZAgY8F`3lSNLwUu!w|9mRilVjOH+RUntnohYd0UO9nKsfUFH} zn<(KZcyJqvK{$q4v#?W7W8PT%8-0>D+xsv6sEPI@>$FgSQ>!3Gd=U^%eaSrFJ1+1t1%Wnx$E z{5lP9UDa?WNlLvC(60lvU3m>)Ncw#s(B3s^ipOz_O*|~+LUKJKWe&3)lfuVDafQ0e z|H|k^whO~(@Lysh_jCP{dfdwH(8rlZ3!_d!t3742)=y%GFwsW83nRYzA~g(dAbK!2 zqOco`(H-Ja5Co|XwjKLKZK!_27Oo$l4WMexLOJoXu2uUymD`1{@-g9FxO0iS^0DkC zT|?6&iGxl2-PD486NzIUY7FqK9Qp*RJ}tP%R&Z9ta2)AH_O|TANS&?-R`ht3~#4y^J+{ff| zOq*fo7cw{@r7t$*bLQC4u@`YwVlh*v9aNpUSQI8^TOYz#bTz;ia59^j=F47!d&X+26CfWg zQBwiyYFqwTyT)H(Xl!fBtwtP-@2OdB&qss`gSWBl5WKDCH_`q8hig7eHP2?n!Qc$W zXQ4Kr!Z|m}sg?zU62`BEF`OY$-~BwUq&g_mknG!t|2jYXSoL;gE>iz)#DSLd-AY7A3CJCyx+xi$5C z=F^(o!fyD3$xOTG&-X@l2q(;`;5R+nNZZX`1l(U81d%it1oYpWLU?C!<33J5>0K#H z^=FCBCu~FFT`pD`xwQj2d4wExdgBFCU}gI#C@o4%)T#)6JiiVfDV-r&pjic&TqT&czkY2=gXr%L)W8;>KCEvV5$GYx(}vptwE7DUX4a5=o7 z`IpDaT*{yPAx7^_!^S$Zauj~RHaK7-YuJ9d^lpYJG3fdxB+dddQQAWd+6;&L=)P0LV~o?nW{STkMt$HR^vvn;P@ zk@HDp3&%rFzFT*~0s9foqb|4gsZI21=BprAuTyW%@kSnhsED5ur~@{3IK&US=@y;; zQNxBE(m-@YvHTaCv4eH0>EQC4!E;~8+E!vgKv>wKj0^G6lh#)3-2nt@s~_GG2g7S& zgBrrnyHf8AZo{>?g=wo<5fIJbg5d&U+PU|1f21n12zb_iT?sk+nwAL@*;9 z7(!|VlRsD2O|96L%YX&PcNMp(`y;JBFM38;?!~O8LQUXD%D27e*{OIh>Uq-`-x)HZ z3~=i_)}@A=tv2Q#7&_pR&oC%)#6j|GUB|uKW^K~fM#nv*&U^|*&xbHxhNmE9&TP^g3bN*g-NW)w5a&oSsXF71HL?fBN= zoMX@~1`~6Bh0}SBvrSD!{w~E97&XEmxknRs0eJ~|Dgl(-C*9jVsO|G+h)#P%$6m2IyWwL(xaE!82 zyH@-hJO3l4L3=Za_bPI%6{-g((Ta~9n{c?>$SW>kwa}Vus&`#XIq_wZ|JQZ|Rg_}O zjILgDrZCSVmwAAu)&pxQmcq46Un7;8svYMCC$8@b4rhZQ{SdQ7GBYdkn5VS_QA|?& z39cRBJaDa4!sSc6C-^6fej^}SXjgxh1~i;;g1@#j96^prB|kORk)qNx$M`^qC*9_B z&R0TCX>HrVj5oz4(+3q^kFpM{!DNkEo#qkUO-oFEY}W*grXFGY^3(hpu&W{U(`Sl2?loGBQydE796Eh}XQH#D^s` zEx>=NLz2b7NzUE?^TnzrXM|xk?*sTY$z{7GhwrHouS#!-7q?)%I{J$F74?nc^nv9J$wIWhB{uRwI@Q?C zLdK}frR@h+K-G|LF+qRMr3-}Z+iaOfW-rsd{&_i4R8|iS03RyyS7pe{K#Em5ics)J zHonnnk5TEG=w~ZOQOBZ)>OVa!t}0v-QOuxK7-Czm4$8w6=x;1r1m8EJ-`FK4p_jPm zY*(u)>)x|#y9!-5HrRUS@QVwJy1|Vo!k)1=lhQ!3vI=_tVogV4MXv_+2 zW=JhBanDxNX>b^FSVME?qH5Fvvms1HEG1s)6Lut(AE@TCu|E>+%b;a&pNbAgwiouI zjUMbz&Su{3F2bzA*LbKDX2tv}vil)70X?M^AA0f8tbZ#ccAcfPZ|IXS=oR#n2ILB| z#FD|ypqPA1{D~><*q_#F%ccC3MZ#9sXy2Mw=|gaZv3U&QY$#DA6o7|q2Q8}`3kr7N zn5z!*nip7cb+xN!Lj;g%Uo7#x2EMNtYk3kV?8ERwo`YiQoD9~I;ss?XEUEvX-dc#=kjbt;lM%4(41NHxN`IqjfT6^ql4wK z+M4n{`NB!29T8(rc`%DiU0&lc{OvTyFw5GtT9D-b*4DBfssmx4u4)P7WPiwfr+n=# z#ZxlYZb%szdyDE`W*G%_ zuQ1zc#9J}@OK>j}KGzXKFNjbM51JJOgh(Txpwt_g5n(Q1wbuzeahADKYG$z^9Jj)L zNODCGg5gh@d;w9|a*;8__`jU^E(agQyoPMXLkrErc$aIr(aI3>29sXhsAi6b$ozp| zAq2nB2~0j!;O#0hvU_@1TMwZ63%pu|PQ$iC7*t17b|kMCv;{!Q&uSjPc}2rGd7F0# z#o$94AIkHzra{Nu!1ryR5e`&ZyO>;7h%@BihWRez+GUCW%5O`>iAkP?KR0F7LwG?jixZ(|DY8gON@7oDidD|> zD9$&n1LUv9yf-H?WZ=t~cq6J`2j)FFix_;H@j)>UvQ)5pG_0O3baPfB1QNn1oaG$2 zfDvtMh+U+YGkzx%AG+P`?JFDbdW+#+F@_o6+4XOAz7|{~OuU)xFVk#mnGtr(QJ<;X zExu=u!5<=G^=}3Y5bHa7sXtVHUWl8rD7e&3i&w-~#7})}fRCR69nByhy%bBX(OMC= zu6EyvrKv?h7*HOsV8(yoBEH4jK4w9$*U)b|7Cy~(WnA^FF zc3^I0{ce)BOo)%T4oX=8GZ2e)7V2b-vMwcG)8!fbW5T7uZ(upwjC{&)>EDrgrO?d% zSVBH#>5$Um=xOB=wz~}DK>LS`dzrkC*-DxAAp>kK15AK)ej!nv%Y2$?Q0B|8;c9H4 zES24uJ!`gCeEc7oU@(#W+)SFyOZrBzb44WoNoszRzcb<=O>Xh{lHHyOpnzQ95w0TM zN}^cnXv76rIgtydxf?%+m%1BK$y+urS|0{_AX$bC%+tPE3F(t~p84RPA+lMAx_%p9 zSZO@2@fh67iOl0qW$+i7@wlXKoB88J zm2?2*CkUU>z3Gh9{ET;HS(kf>Am3;%wjMA8YP~!N@Z1X15CCa#M8RPfB zNmlR%GDp%`3x+#w7i1HF_z^{-qer+u6y!PX@Fc$HByoM#$do$qj@KQ1KaHxVh3h8b=Nd+jn@~{y!PbS@ z(oo{(+47V;zU`nyskJ4`9~-%*%;R{8xy~SZCS(^xuhY_bO4#1SwZe|qP7-=Bs=@$! z^Rj9?=;+u_aO!=SfNu8ioM1I&1q13=`b+avcY;C4ul)Ftuaw5mrgjrISMo{PV&&ZD z^DW%V%%!|egU!Jrz7x!0-odpWnK>UptLGp^jE89*+GW_z>!Mf6`#D{WL~o2e|Hp*{ zg>R~te+BipR*&T)i^(<9>M@vjE87DixCF)m~R~9 zCx0$D44JvrqiEwj`y}Kx`ojDPxOJDZj*$B0-9w)8FN3sE5^_jOS%*3icJisXlfcr+XLh-s1VP{3~d*q^)}6{ z;J+f<`4k8bo;!P~LYrzXA|spGk9*AfP_$NNN*jL^Z?>;5It)U^>5*G&{F{be$$bg@ zA}rsHs4_9bNt+%R2tQf?0=hhxU8H4B8+s#%qE9o7xgI2N(zNP;!||F;+*NB{ zWyhT4|MEjgS+Oj(@gJDC@gnZrYu~7L4$z-!JZ8EfjO}b9(8on?q?Fhk27Q;ucc4nK z+w)fUWW)YmJSXi}0(LZi~&UaeC;CK^3y@#i6&<3r+tNAndmwbFaYcmT||{( z=vEG>w!2U)E!?9jS*6K(Zb~2--tFd(Wb8$&J{$!fe@lTVnB0sB*7|>@%M+d7@ph#r zvSwn(#ioS^gpmUN$3TZ#G(u~-i><9MPZAf`x<}6CEehXR)})Ozn)?xqxROLZ$!HDj zo7^!U6N1KnG!_pHG+x+@;pEWi4*Gt6B$Rx5taZ47fz`Rsc9%fHf(!@KwYv4m;w6Lu5;{ml655&s!ypo$t` zTaM!#A^VEa?*RWYGi;<~ zrAq)}*hn;t6-(j%@ot!dag%si+#BU@z zvM#$b$mC39s{McqAOohUl`J7&;RdYT=cXh3#2P}+Q z8%?6Eq_x>>moBC-ncwMO^08g!H+oun8QduKO6@T&&h}m3_WxUzJY~_dZp1(1{|pW0OK#%uLlSiN}`>!BC#oF zt5&moMZ9ha+l>n?HBfmYtHbI}K|LOKWl2f6J)XBOj@}{ba1t z@bHTGzpFGg|5{fa8>C%T>f=@QMP7Xb(zw|0tYXA@ZTioST1dGQt~yXkrEdooG!%8~ z|5Rb{LIVb16Cl>f(kU`so= zwoS_2T-%@-m#{JA^C~(q&`(4!V|4R)QND(TG+e}(T8^EA?sXxsnWv&O9we?3en+|H zZQO+;mZB$Ir!5FWi}MSbp$9Yo5o6E{&(*X6dm|A(#`|3Sw-^?ftZinbUn)GjWgVkn|2z2Uzx&9-k%$%u9SnN&Q{wm!ZyfrFZ? z8X8D|=&~_g+Da(uxZ~vH6$`Z$`3KyoSF6z{umCia%4=c=iF-JIt<;m8<={V(=-|Ha zf{^(Q?!60giz92-+qY=+Hye(yh&>w|%FeR9e8imJ&;*A1oU5)Y`SB9cH z78UlP1s+|UeA<-GNyEGp=L$uZl{Wnr>q{ zG^$T>c^~O7K{X<@799LXskIVF!XuEZK+bwE11*j|=8!L&RF+9mo_;pdj;^)MG4-F^ zHdKH&&NjbhA=#pAFg)Q;xx{$no-*@pmP>ypt==x`()4d+VfZIzek$a2$bGiGk){Z| zf4IOKy1j^i{eDKKQ}deV;ogM1L$L@7t4>P+vw^;-pDrXiH6-%AbBU7hxY2D)GU!g$>P(fWk5Y${)RHnrGto zsL@^fn6EW9)7xiO!eoR z0*{We4A-w&N6N?NXC4S`{HmV6y{;3x(e(Hwg8yPOEuLutQ^kPON!3N7*z28n-$k`R zrpCICDgPq4vq!@)n*h}Gh+iB%Tx<1@-j3ikbPZLr$__&N8I39_)cA$T&8npziZ?j5 zN1XB==dP3l6EiY%0&QS^7$7*g*L}TuFe>NR;O4(qxi{T!U}M9wagDbf*YN6P>^e2k zJn7AI=lBn!@O1&}Oc}p`PF(70Qx+t7Onk&r3UEb-9_kP0mWpStZ|;Xi@mIZ~r8EIk zkBxJORxc>sr@os7C0#n3t{|OsM&BWqoh_dMIC|J*SF~a>0Wv|fAIMjGydNW$^H@Fp z^xLxx4;&i0yMJZ(v~9oP$$tC}1%T3xO#UTJ)Ua0kBKboaU&33}e6#>C6I1(Z&1Sw% zAtKck@7&v!4u$QPgeot8_HO&pfO5kse{>XWH51f&e2|g-iL{!%34i~N0?1fYYcDpqdfh5)-*V@+Q;UpH=4=lO@b#q zLQ702yR`?&EMlUhJ)X-jf%BDrO!_xiQZmi2c^=L6Wm;$eT4c%CvAvphNCXnm6)f#S zA@3%d#QarN+%#_%3lYFG$?OBaXFm6IuPbg=+^ph)oaA1vjS=EDVy?;1BRdK1-@icvHHm{)(E6|6=;nNQYV9s z2y-bb2(`yMm~g`JsKD`(&UXp(9pO)JFmk3$Fz9zw9tu8#$O{WvgFzr4Y8<>Jni#q{ z9h^C;S=oR!ZrIa-F;gIA+=PJ2Fd3YM;yeh5qNp1Q&z^oW+u1 zsF$=|wg&7~ldxPxVbB)qji#vIv*NA(z?~@ru271u{%)VA^0&Q?dmO2Bl|_tBwV6ji zVl5s+x7+Dkd-0NapOw{PL7&6|qe;)QLu&K|5Fj4i7jg~k;~$jMcRVxnG+0#oL~5wB z{_(QrChPRD_x7D()TZl0<>74h4GUGTh=;6-5K!duspZw+v|VWH!aKB@rm{d;nVtEU z*ET#*5)8KJqRsMHn;fF50%(@@*r~PF&}io6wQwML9VqAM@RC~5_BdV6_`(q|ImG!H z{n*)n9CWhGvB8{LxEURDKv=29vzreTq94-6WrL{K)rz+st={)-iY>Kp2qeAU!Oj2U zi@&~Bb2DW2CZ>+Zs4|x|H(K)|r_M)IHsdEsUC90n<-3h*9bz@-^GL881EdWZJluo&U=q;kR4L;dfhvwo6qHzw10J zu4u8;_j|Wsu4#cl{$S>!^|94!M$VikC*(S}r;|^|#ypZG&dhQr|IRQyDMZBE0cK2S z)o!!%$L*TM>v4KMXS8i<38*EUu9y6%q?N6XmpNUjj|Y?R6)tY!?%tnP(1|G^g^xoM z`5Mz&q4Z1ul1SqN({XgIrc6_Otx!eU$B=Bz?*?7gMfAAee9x&px;dmCbkfi$yT~29 zgc%oP!r6iN=@RUJ|cb>fo=~>2ZZT1*@wC zFOH0qWT-*mw3!{LAkmxv-F~^2OL82U*`)J*3e}WP3;rO9eZ}$4=m26L+qy9a$qZjh za=sKF6P=qOekS`@Q^hBOF6T5W=Nm^K?r!Cj03yiXXg^d)=zK9iNML2gu;y%8iaE`8 zo*xGCQPLNgvx+`p+SLlUNV}EM+ccxnTE6mo1Y#S)XI&~=u(OZ!^r#J^w&1L7G8e(agJd5e)Fxt**;eY)r zjXx2fdvx8kOLfKPir>IJ6^2=A>%L23&^|PHhS-G-y=z@;csS(qM4yF26)WBpt(qgx ze3Y+Yw2ZZ=54xL;!zgPmQ}nHE41p48Ll**K`)qG*=V!P zXA_q9t-P9O7P*(!U3?4_A2mc%tNDoGH)cA-)LHJN&m|`kM*NwJZkbP~OIcQ+Tw2b* zvA>hOns|05Uo?+T;KnX~ zOqJUwb!kJ1+xaA%-s_oo)$hmDS_p`$V<={l2HVgkW^B&>9SyStz2q?O9=4Bhjy#_wo!HPaU)3 z){=%jd&N;!i(Tqr5)d$sX?)aL41XLpm5_4L4tMBoCzD$ssm<5WrJ-wqc4$2DtnQyc81mGWVXYc zLQe0H+o^MwmHd$dXRpP@<-kXt3ob*T{%1Un3&EqzR ze;Lg%MB6FIS=IDRQ8F}&G%4kQxO&YP7oL_LaVD)PRt;YA5Fzn28-MY&z^%8WK_PW& z7##pM9C+Rw2S^Vi_kZj^tbCH^LX(`dZuf(v@B)X;9v1D`$Sz(Qi^3=ZG)M)eb(aIt zZ>rC5{1yZK8}pB|KG;dCy9G~Zff?jtS;6BDJUVmhScxx&>BN#X#U?9wLC~%~t+tXI zwWd2+YkDjHz_j!2NG{`7sDEii37@hEBFr_XiCU0ZXROQ&KdD|>KpTtnoypHLM-MC7 zcBP>Kr$Y{&@xmIO#&qCt*k?YrQ*zih7)aNjGsWqZbco5-hzU*4NMC5m9n8_2!%?RG z7EzQA6R^5mz{V`B%J4eYlXvUmz#2wx1=~7;-o7RpQj|J>TPW4WHkkoEJ zmR;6_^%O1oKs;~kV>qJ&@vth-tj0}ldde=*k^dlXJQU; zDgytw7Z8Kp0c)oWPVbT1aoA03bw?@7nf!CE_?zyFp1#sN0m;%kr<+SMx#&^4aC5v@ zCj|Li#i%MvULsIP`C6xBWQMjge!CFPJpPtREkW^)M?Ycmvpw{8Hs0?KwWYPIB^!wY z;BY>|F;p_Y_R8bpe^L`r+7xc50K*TccUBz5L8vqa47XJ$7!1ZeI*wdk`b1(lU=AUN)r+fZ)bUGGF#N)q9RP!FtP+JL7P zE(=9h!RAtQ8&s8{+3UqW>)ef9GVN~+O|#HHx>o+8fx;@5)~3Z@M+;osp$rp(K{Br< zBYM)~t68^w0V#YP20Zo~nd|I{@_J~fken)Hr$Xz(H9nvV_8z9?*J9YT0hhe$m_?d) zPJ-Nv#E+Z?;2fBo@45>-&QYLN&=+oQY@@t$LAlNYHjm1*Vj_-5t6@_M^Cw3v^H8TpheRvl5VNSbJG9{+-i& z<_wl=oXL2X&GsP1wi|s5*8sCO`no{POID7r_5;E`XF9OI$}^>V{!L@V&kVK}4$7m_ z^bOdZhSo(k_nD-Z$i+U&f5IDEV~V3o$D#76lkV{9tVl1|?4bn@YI@i<@;{%M>GR}L zP20ZykUFF4h33z9Q&^){7{3*x>WuO=kuRAIT+6?$L@(WuV)48PL@VX)Qj_u#UWhry zO2)UxfDh5#8o$a>hh6pyeIM@5&Dc&VPu(Q8ZW6N%7zD#sAvTzF@hlD18<-bS>)-BO zBUXQ`A2&akr++r(ZRRALqT^Zwr@eV#s!p z$oH%tmup;{t|#-1Qk{{q6=ypf{EWl?#$%(*?bxsHV%a_a zZpLA%!>Qbw){be#ta9GGBsMe{7M|eSDcg?*F;nrivKbx1UVu@kknh3UfcSTnP8h2{ zAoZ8!i4rvq!+@u&y|uG_QFq&d?)eKAbuVo0>grxJb5>V39L-N%u(*5athsZ$VRJrx zR%d(LItN}^TWFMF<(1ml1yn1GqR-?BxSJE=mey$|j7%^bLgUqho zZr9GmNDuByjhAuFQ%t)lqCQP2PWf!Br!;vBSNaGLg@QWBT@S!2g7afsRM`?e>V5WD z+H>xn`9#FwGJL2S zc$!_>W^s7|=LLp1Uy9qgJgnnTm~Y#h#_tS%kzFg*ZFSsL%I&S(8!pkN;?lj(&YTPR zqqq+iD0u>e+Of45@g`U6d(k`q1?-E0O7eP67buqf$?tNT6-50_hwYne>S8Sl$j1V4 zvz9*H;a*5gKULq`(}5x_e%@TK92UvhUnZiIG& zPa(b9Cyu7sz6ZbV6?3-2tiEIXVHd|}aaS(P8R?8%?VeIz2xB7FtdbyBI=xMy3||;* zE|&9T^{Q~i@)avqRIjYAd|>jS)TV(NcmAEj+Ek|d;2>_K+bMIie~Bk@)k3V}9qR6G zJYd(Cu{wMQl2ry3*G`9iVYa*!c>@fq5;TGC!D}4Yl&OSjaZUbYi33sxw%A1CH3q(} z&DN$Id`?Z*-|~oN#@`}QcTO!Jww?KOt>zByUj7F#!?8T2R72y=TMXP}D1O;esx_!_ znzyfb$Zrk3a6KPy@UKVhr*8CztqBhM)z`JIgM#DE0o!F;@90I!Ay!dE(*Egw@mP|- zEGXB!aArg)RzbyoL5MjS_FK7tX-j1m{ekaR2QLJ$PA$mCu0=o5)Ehqp-yRX^C7$kHTS& z@nbA6@T0hB1Z&+OTDn2Rx^J4YTjAVOz?$Eo(#(6oe>o)_m?~TlXexNLmJ6>n%(c&o zsXDzh56wWiVcmyH8(bgw(3>)K-GQ#;5$QK83FJqw%vM$I7+8{6@}hy8%(8NDEN6 z?>~o%r^U4D+tkZX!%>c`zacIIBp&eaV$+z{F%!=mK7|!mY7`THeQW&&r81?E!|WWQ@GU!5>}6?=fw^IujCo zxwfnpE%uWTshC~32x22SRmQnnE=J2A0SC0Y`azxo_a;4~RMTI(+(R%N$J<-PD}%|- zBOHbeC&j=x$*|OUa=*v%t)%sW;D+@59^+lzctMBd#Ir2j!;1Y)p3B4?L=fhNw~|~# zeOM4@#5Nvd63Uo+nD+i!xMjS_0?~fyAw)xje{|tYqs#0?sXZB7j3Z~BoT$~51YFe$zkXT=@Te(r-y71^N%K2{9 zqx>2hkK450Y8y@(VfUAo5X56oo4Wu!qk)bLUaAE~)+96OYF*JAFV)Ora4m{%gVP4! zv##GT+QI<

gR-TPN_ensiv#+7_t)zeLOOwzljYLY6vyI;aV;5iV|wo?7DkeSvee zmj3bC?dpHtFf~UuKe)45Sp|HH2BKmStOCZ4y;>M)5+a&1xF5z=e#}9}a-2Kg9SV`Q zj&ZDJ7a6u4I+Zc|ztDf$_*FKP=En2w&VFY93(S+V#51B%%||)c=gJM7gCDRWtsbxV zzOH}H4A6Hz()FwLw96SNR^lc*t#cR+ds-AN_PedkO3k!^$#udwQbhOh1xnuZml9(y zE|qo#c&}of9HLE1(5V6e#Od1 zn(-p5E=9{$m(RIVvL%pxc$OXgc>8i-ccIVLlC` z9M%J|k;kMrSumfT%GIvS;IGJwFz`hSfJ@^g(!Bo$yykaU&!w3&91in)yQUqC`uXC$2JM3O3|z{K9VvubpO;z@*hwg7v9pEJ_F zpv>?>$oSpbIyX78wO%lTVFs>~i4=C*drmZNv|eCN*y4{)c8~njB>u}*sE><8Z&BQ!9W5|_)Ix@{ zqlx&RS2S~<%hVuffp?n4J+oSiXfE;J74#}4$6#!%-QCj(QhNn?d)5~?vY37=(Py5H z9{g?3l^$OYw&9*`wny>zR8>$*CMthzni_}Lk5?98BA`a)Pt;gaI!TZ{rnf6zs+CMT?5|_x{Y;rFh$Ze|fz!bNr24<;jfXkbw2RF@RE|2~mCR#-=re|R90_Ry&8Az6Kb`yKrz$gg^{#d&CdaI$_N zV`qBcmsx?U2d7Lv%WVh*+kKAGwF{E!=$}N4_aJH({!46v>`P@e1lv483mhu=@) zH>*RZ1hX&52!vB#%x0(1-1s@M0VSt-fmhN3k2rxZ3R6s&-#tMS7&WOO7P=@f7L>a_ zd?G9RlHAa;VC`jvXV01YGK)3`#c?p?rsn7OJL3~4_ofkAQ;~LRD8#QHZ4S6232vkW zkER3%g=NQm9S>}d{kt{c3rCJDatAG1I6NHqOU5ZBiF|FM3+kA20yyTKWB-LUTX zGQ1ZM~Tyd*KSWa%=DFwzkVQ+u>U{~i5U_81x&3alL( zyebQeij^&Uo$T-4mY!StJG-^lm;%%rJ*Ecu>%9{l*jZz7@3ZYlci(iDE#so*?xRlG7O0oEl1Zciym zac@cqU7F>t3I>0l=luc9grC*wSA`{beDUGnPy;R0o>of3G2pa3ElcE5O0f6@=U>tcby7cROY zb;$LX{j6l@l}kHz2Aqr8FPsgMQU*+hnSMW(G8&c_o%TaSOUd~de-~v2u1*bJ=LGxo z{t+^zp^;yoX_>$d7ncMEUAMGnb?Rca9lGwnoXd!(FIrd{bJEy8<+_(sZ&A|SW!IJs z+cwUcpA!P9>HT`8WaN!0$#-8u8eEZ@IWj+Z*h_sYKV`IY9{LPR_1#{t2h&;GljElD zSmfpg-HV)zo{Z3>VBnre$V~};%nsk|1$!VX<*S^)%wXE7V?$@MjZ(%BUitjffL-MD z_wBvU9PYZcdr~UnDe+M7Y&TTsWWR$7u-8f17d{idy>O%xc`1}}IzgV&;Ezg}8CLhX zXF7pxv5=b^_;D(Z-T(&t>rPIP-zus+Eqf%1OP^;2FG$HP%oFywwU}6Nxa%gS1kO)Q#Uvja2!1$nXkp{< zI(Fj9Om#1C(w^^?{YNL|T&1}Eo+OdcV;cT#QJ=KXRcXQdreU_H{5&Pd46&cs%aP25 zp~y4AzNht$R1lrpnVRuU(A^r!jz+?#5G46Bz#59Po$U0q6n^2e%Pn-Nn=&#MjZ#c>eRXg{Fm+eg7(_ zccz8%`vzu>(VO`JkzWMn73tU8JSXFez@Wm@)}(~{1z`pxMzNkN6vkD**a_u^I0+Jo z4^Dol`6di3aug>l{YhRaze6TNWkR|`T=o(DZkSzbJR!{q#~gk&#BTS+-O=0%<>j({ zVPLpZ%Ma*fWPHl*1y1l*$L+<|QUjcn!`_h72`8l*fAjBXVtrO>u`~G6OZSzno562l zo`3G-nRDJKJL5ZZ&gv)&!i^TC^m^;O)HzQ0=Yd{73>6oRE_MR<1wsW^r2J26D94Eq z3LY9vq0DizYKWBvQika`Qsayz4PdY{j?y@(CI2=K7!X<-n%CGlmqvayKR7 zq#GwP<&xk`C(_4BKg9_jzm!$v>`KSa76u0Q4cz1u%nAk0vpI&(4hpRQ9nP9`w)xo_ zK!~P29hl6w=G=8G(4W0soz!to=&UQ6+%K!Y$-+tRSphG8> zH8hUL%9;6ToP~@Q;bf!v8*B}w-`nF5#~vppeZ1pDQwp5^kwV99bWCKA<9Pg9Aa_3fs@-O&mpuI?O)*Z8G>IIO|9F>%>{sTmd)1Y<76@vu}*X_)dTO9lF^k-*Zy<%yFKW8>D|> z`)V(z(aEl4ZX2CQS0LOFIKMaVD)HO;x4hE7H!0;O`keFo(B%AYHM!tKlipF=54YC2 zAWE}2wkwHmU3j8ZLClWiyckVR_q&+**yIy!`t&_VJ@(Qn9n-ff7*^r9`$Jye+JN9Y zfIQG;PBac+4I7RvbUf16ffj=`{WdY7{p>urEw0zEK_m7G);M0jO8f92o*LL!PnkeV zh#5SP!VKoIcd&relj8NSV7-Xrmbj*Wi5phoxO*J0|6$Fodn^zufZg%VUfsO+fNjfn z3pRm2eJY&@lDZ*a3K{}VbYLaxBi)qPfFJ1r^=<&YQ(-4@Kuv&?WD&^$!f9q;YcT8$ zoTy&APMSBc)PA5MUpf2Qud9Bf)jX&rkA!Ck&!p2m9Dmq!q z*II*-cH6R09iVVX3NnRi0$2;X1sQKBSX{V3hjcYI$c~aH%^_`LE|nk=p;0B2pg+SBK0H-KKEdrVMY$%oKfmt80dAW%9~{X2`;j-WMC{e;*1O zss|_>x1E!>_?HKs}@Dtx3 zt|urQZwMS}cq5M%rI_KXAc>J+9$RTJBO^|LY=oLq*sqPy^!SBf%X>>VBARoOZMK}IdN9X#xsQ5_NPrI=AUApfXUfOA=@8P!U& zZpV~s%m)Idd^v-w$@c5QR8xM8S0AKa4}Rnay>i#0Gjly!;5e9RMz@nQH`O(x^`>x& z8LgIkxW5OI8(nU(oaSTHd|$pdW<_uH>~NkLZOomHyi+WKYD5)kpDZjASG3dWpA};@_?ba7b`A9k z*Nj~OQS1+yu?>N+H@4ZL{IKOI-dM{k-R6K9r_n$*@;r?S77#P@f()6OMA937a4S zgfmajs3$D5aBm8k(}er~vY4nhEl)8M#RC0e4efR0P4t;G2zt6&6=a#yckn$5dghwb ztLQ5{?erbAJ^grsj?5&r?R3qgPQZ9lA#|FwJte`@ z4zl%>>K51WssQga3EF9Ne#$jg#hMNmIn$z9bT(Y%9G{Cc^UDub#S(T;Z)N}#^dn@Z z_wY$D&(>|+gqyk*MW%WofbHyMs<%V$>msJQvzH~F>bZ;zc2ix-^~y9;EkFS48MN~< zc>4^I#F1Px;|P<`nqy|zF{YUr;$qvmeiT%iA!db!F+-DbG-&JSgl?x_#W}%1XAz+4 zKOPhXbP;m}=h1(VN<`gPn&OMNA=7^JnGIIo!xv8;Q zU$Qq2cbhFosB~f%_#$h2%*+)!qVY@J-80-)iL;s!_6)gskuNuy(u*{u4C5jRhmI6; zQ9YkzMlb4uvU@mR&g3D0=jlEuba5vTOuR1^IQi|z{4?g_620?ynz=;i)f)6J*)&uG z0h2E&Vc|%7Aa?2KggEvttx1mHGJgbcuZ8+n;v1`iCx4^C{|4sBvXpSOF^lvic=sX+ ztR3lQk@yjM*dl$oF3&6yvC{j+dL#03@fOY_#opp}J4c26btfEK;&%rgw1iXd%2F#B znW^t;DiS?8@XtnzhP>2QEtv1630N-G*P1fS(xXs(d)O>p#*D1ZG)vb)&-A8I_mNH4 zAzkd~{uLmX>4m&_nZ%G^h#CLe)+B@dH%?>MpXmMd;-C~(7rtJ2a3thi@ADJ1MXy~P6k(&OU_cz%d~ITN7KFKB^E01-y4MbAnFZOKyzV+xnZ+E zt{bGJ!3Ay*7wFD1H%JRW?A#QiTgiexWtf|);TPb+4@R;q*E0VfNJcg_!DqntCJAlE zZR@(erfDu8Xz68|w&yzD_*Tbj>gX?wI-X^k_UAg$GoWN=w0p4JYbvtJ(!R{(5$O0s z2~=3g4<&b1OF!22a?Yt&iK12O>xhI^9Sm!G$XnGG_)&> zpJOXvcB{aJu6L_67z$Wjp1HM}-;V+hZv_v%F(Bxz2ePGyn$?oP$-)xa>P-Nte27`S zo}c*Klx0@8vmZfD$gIwR$DY>hc&lqIh0yWakOOX0u6J9Z73ioUx9!Ptyj)P~Hoc`f z!`!yD%&)`!PyhyS9nMX6F?ZvW(aheht{mv&*O)hVA7|5k47j_S@-_E> z{+n9F`A)Rt=q(lR#6LmVS($!>QLwI)BWY1 zxvz(t^iBjNQSp-bP1~fgp^e(}iK%AW;XEt0x496}I?rqqqeYNyTgUvknclXx zUX0x`!>qS~649A!oIW$ImZvW|3$^KNzja|e@s;R#(9O9RE?WnhZDNU4gS>6) z>}TfJI&AYb1@t!{>Ngw?_FQ}}H@~)14bP&zGk=(SJvZ z6ikn<;cENj=p9rQlcRT2)sB`i{DSm##`%I(j`Pe5VhiDjc|pqAvi{};Stl)h%?sjF zNWT{r!q8zKFYIG7owV2vvg?`VV_|Pcp=C)p41O(zd`FJ?^=8_j;QhKCm_X*gj-Y_= z&oIBPKppvYBu)5=gxc8-Zu8jAeIV0Lp~Q(3eFUuExi%jIFwN`~e(<85dU1zmc1mPd z^)oxgKc?oHo#7J8Tz4Ko+8|+f)}fds+aDQfc23l!(oWAe^f5b|C6!`kC*E~w)H_%7 zb-bwuQ@x!>EQ&Ud@OB<6RW~uVc7})PsH4Q}6dER88=V6p)tu*~B|p<~jc~g^sN&MzvRB{SyXTIsAktW!l zYTm5NbL8pEt{G2LPNcQI*#Z{S_4VFt^L>c{vmf0~it+v?Y9_#*}xOns;UUCvSqf?`k3$hwA9* zAVI@;cg=9`-I%oi%cJI9Su2H^u|N7sMPa7*$K?s7BK9X=L8vP6 zG^OCzd$J8tLf@0EL?H{ryf1LVWZ(C7SeX6$4j@>QX5KFWr_@5A*^_177f9Vq^ZrC; z5q;+UxyS)#|DXsmSs;9}y@SWqcejDd;!cgd%|Sd6^7&flHo9rS}gbn>7KI5gjb zqQGVSy@NibH4gU_F$xa$V0@@{=>%fygLcN0EToj159BXK zE%`tSZ}ObU`vCu;`JklCV(bT^E^P7-B(ng`hk^=x@I&>RvD9~5-s3JJ!G{YcST=wr~%&89G-s&B+hwyYCIfpQ|(C} z(NF&S7f|O@52PlV)*pAT-t>vyguMMkaus-g;)+MP<`Zen=$fC%B-w7vCzXT6nPdOG z$O`{h*!%B&mfxcX9r2N?V6geW>R-ZQsQs49rqMsce)!C{AKJs_Gx0~j`kA-`-~LSB z25mp{^@Qyi=Ckd-s{J`WDY*cS`}RZP3;)X7@U`B{WPCjpT>!=A>oD9DO8Q!4R>XM? zy@a?q51X$m(Q;~go3G_jVG_R4Bw;jtBhy{Aub_J0v{^c1R{kaq3j6;X45f^pF)s#w zab;Ht9TQ#4|CYC>+&_Z>=BR72Ks+bFrav@4ro&FF7A^2N+?=DUMT0nOwAS*DfgEnn zw69L%aFsQ&nsPZTv~4$Ma_Adgjv6c*sJ5-?WxQ;dcXne6*QQ!F&>D>A27EtbmB*n^ z104|#k6Nx+5h%+IY<1m=Y%WD?NTfWS!*;3KlAd`MHbH*DcCIzt!N`2c8W6q^%h&Qo zpS338(B+SuX9sEIoo;+kV7UcUVJ3%uY^XWFp)b^Hvp77cfq7#J(>PvW4aTl?4jmsL zI;^r+s|ImcKZwTBa~hpkHELFOp*YsoVs~pH_nM1!?;--v9cQ6%aK(oNk}0l$(?2QV z@qllu(B;A6lC&MHwnH>fPRcp413mh!DbBHyL=9{VYK0pg&59Jkt+@|}Q|%NJG#xEY zn5?mD?0H=;npo?>o46{-@p?Pq_Oc%|>6*>eN&z5RjeT(zL#@kZsJXL!(_z7kveALI zY*ZJ0Y_z^hSH`I0Cl&fOTyTtE$HxQ?SOb!lr!Z769mV|=N%YQM{VN(X!&}bxDq3t$ znCNjDKg2Xn!VTqSoT%VvdVE~K=fkUVIIOfR`6w|cOjM*uq^3yf!8oiEDJJ9fOoE?6jqXW)@@jg>48z0!8;Z_VV;{|@cbeg&gTR&ZOg1!pA<(xR|+8K%UF;!x% zu#_tCV^lX=LvK|HY(MOBxc>Ws4~krs*T-|i@!Ai4jU~>qR32^V{@`pEcnZ0!H|v6VMgivu#-|7BZOoTBoQ}%u$%3#E7&QCp7}2e>g-gwS%-Lf2hx6iR z2mFXNGC-HSz5wrRS)~hO+&f}XFf!4cJyWVjKQ8%10sof=nCU$`;Ja49v2%n0C>B?2 zO7rP-O`07+0&zC^XMDiA+(DH^8qc>1i*1XfeqjkLl68-SUvxmtBn_+jl`RTX7PwpU zsGUmuyzxbW8cRvF1swW(xhKM5ZA_SkQo6W~(Ex_UQxW-y)y1;0lh=u*EtcR!?_4a1 zz#bMCqH#2hG>b7cyfHw1u?%}fSSpHmKE61x&^iy9@x>wwH{UFts7G?k76-a3-943N zF*(jEFR=@gM*#MMO#?Cp#iV2H-y+ngOnMVO~YYEygwFiNbugC zb4-KOspQ)V^G$=o3sYU1xN=mxbz_ZQBTT$TQW<;q8fMdcS7^h@O@uG)oGwc}d1}}C zXWdT8%7A{(!0KKrX>0sKUb7l|VwLZe@}k2JRtAxHZTh<7MSle~gH!5Y@cZc(j) zf^K&v1nHe(85BS`$K0vLu-`jn++iWzshk0fygMTd6gs(6163^*uB5MR?@dC7v=8nm zHFq|m&jQA~1V;GGT?HU@bGErl5n*hDyGj@U^7gLf_{357?vis8-}zl)P-JzOyQBv; z58wjJc`5?&y8>(NoFANI?h;RJP3Mx&rjQ(K>-h}gaxD;5I?q~W+v^L!)*fL%`9sWF zAua^1+RIUBz{w&spkXnvjsx5Py+n>YEGX(sJnH)}>pu^UI=I*tGBUCTT zWchKo6Z;NkS^niB=E`Z&%TWO4`HsaaU=6j?WWe1c#A6EYIY!qo^zU(i1m1vq+PRL= zxlUb&wALxx=19ogs~&THZxwyQnetQFpPc`63)*puCX17ngw$^l;ZN*uT7(CDq(!cf zBQet=0}H;?5;$lzLt^l@2}E_j`U9`HUpS1X{eFpcU0*fCGKl;2eL_w5ui+Iy?tZxp z+sByu37C5|=n@a`&1gL~`oPhFw9*;o0eOAEnFo+P(eI($&7ADER+|TKcnn9UHwH|9OgsY5`D4d{TTX>}tP>1p zsy50igtfCV5&5#`3}$09l6Rws5q*1OV4+1k1poJBMoYO*M zp}(7ISRMni)eoe%8bm@rsTp8L1Oh%G{UljPnKDo80ZxdjCo~46;1i0)^XXsc)5*fd zBYuIUD^vLw(uyeT(0?IY6pZYCNufQ%eNwEl zsGoUKp%w`LNeB8a=xv^?L7wB3vF8W#?YTDz$LNz&%OL4&ZU9g0o+kq}Wuii0|CCS| z5_+l-hD~8f;3@H1G?u3%vH{Ffn>ojc^ORUvO`zykLMMhRW0`n?VgvDZ8LEPC7C_1ej<&wYbxmfb~#rGGHsVvnSO7V?1X9jO2VZ) z$NWm*+@WsaW7(mI0U~aPI1Gc^p)aGy?U+f3i9FdIQXF?`#30U2;kIgVdz7=CB0vbZ zUF?X+X1m`0@czy))bgs<EavFxel8+&|uwHLj<0Dh0m5m3^$g8FR(JY0KNpd%;w z9+_HT;hu%0&O-)!r1dlu#rFhu$WXSoItDq>bB_}x80&Ujz#ZQxhF|VE)+fyQz6;dy zSfAvrX#E-@Nk!4?;KA1rN<4VlrApR+87;}!;uYZ@4wqMSg~HO&D~K$mu)QLNhWYV| z!gLVPKFNK*&}^bj?h|`ZEeR0IHv1&8V6*$=N(2)7Dwr*}_N(mx&=#**JRnXWJQo*5Z%z!EQT^9+26c+d2&`sv&4Y4}a3Os<`_8i)NLvP-n zYu*rVrN?h9gKGelHzZI|c;1k)24THXAH^*%-xDh9n|fJOg?Y2KH?+MaCH`h$zl}`s zfwu+Dw>55^2p+2S71i=QswOHdYb!(HB!`oM(09|P}_g{89h zg-0-{gWa&blL|Snx%_8cP8OC2{8{qs?*$&;u-v}MLU%vX=|2|mqh97Cv0otgvD%ze zSQQ{>4(swi7V@>2!$JuL@rl};RA>hNTi23>Wr+W+31l6)||Iy2dVA&e$$kynb|C3L9UGK(hv&B)%*3-;U$u@M06X(Lb6}|lP6?x{U&Y9%T zG|9M0tdAIu{+SeQF!!^3I5nEw=aPlc&*#dHf&YCjnSvVixnhrC^yi{@?10Y|N&KsY z0ky~-9qX@BeGx!^)kAdiuR?b|_E+its%sIvszsc~0_KZjz{xL!I*{iVmT&^*OLdbL zU#c6bk8uvJep!LQAf4z-MM*%pFGb#<)K}^W?Y`0*Pb#D{py7N~g>|C3bqKF9<}2BM zM6JJ?Nua2(+k1abKsj8JtLLZ){ycy z2`ToC0CsG=`DPtmfV+LOXS7&j+zHki5$Mq%hbycbvnPea92+-Tkyqvfk56Mp;(_2{ zd$&5o;fgFhQArSN(>kHJj)q1z>)rr>n0uw?Ko5=z; zn8BjY{nn)BCa4nre-@erHf{0^Hy%jU1IfZpO=>H!WF43gJRS~K+R=jREUvP$AuPZY zq;YGV_2=#go;YM8)1|^D3+5(0o*wM7lGYwBw^@Aor6yhTv@pb7KZJqfKRq!F$Sp(U zmMnyt@rKF%5jfu5xPNj*zG5{GIlm3dSWoyuxANRC)84H-c0Pvp_R=D<6ayf78 zCuZ3?B;GH0-1ZeX_6z#CtMKD~1WHVQMUVeiQK0do?G#9dg)j?5m`I}nsgF#+0Nsc4 zv5roZWd?|)h_5@SO-9H=jEDKP`3o?_nG_ZZer_gNUQoG4cR?Wh~Siz$XOAq4lV4bCAIzL1rleEhr zQoIncLuA~m7QdX@%M6jM1_OqOs8C3X#V?uPVvK#IgcM6%0*0*90vH*l*oq4laY?4b zm5RlGads9r(SN3>Sau6u#$vgKF>Z>bbgoK|7ZZ&Vo-l|K@m8X(C6YHHI28LP>p*;q{?uFSFGdGuhcy=e=* z2vzN*EB0~|59q-Y4aaHHjuJ=Gq@f<$^-BbmSji;tV496n+i?mKFsJ^Bz4EV$O7)#L zRVF5ZbJj8?W~NeefJ3J;F$b0U2py`_98ixJELH36mK095`Hgucmn#1yRw$ttPYJS`e6y?sJ9%N-Ac?!6h`}al_gJD#Q zVeCkcv!S>RoWncLR;S=CXE%{KHdEXVi+-l^xtZpfVjwh{DRw(kaIYF=W-5aWSvgC? z;^r(NC@!;Eg0Zf5!MW3$Bisb-=E#S9;-+n(qE?cV%eD4IP&jcSf`z7P^#T~9-$J87LA^jAfty?) zWTv<5A`vzh$lQbFTp$M(udx>|)O>Psp<0|c(d2URA`MoxZmQ6qzMJk2bsD1x)+nnlXwKA372feG&M;qgVmiPrXo=`XR2DBmoRaAJ~|h)9W_ zE|HCUxX>(76q0D<68v*sKPGR91`Us05=LFeA-_biXPxUoe2Gg$eFRFDC~yg>JooOXW*+X%&~6`Z{?|!KF-S?vHJfLiF}Zr_Zf^ax>Y; zxp(+i?;#iZF8}H}uCBFLg@W}O3W`p>G)}xA_3|k|C-w3Zkh)th>x>MYdU13ZjE!IJ z>+hdeogS|b#w@B=XSIxvXLt&}+YIwWX2RV3kbw)UTbues&Xl2^`t6^e4tj_S3 zm*(2zRWP(4!O$4GQg!9b zM1aDbXB}MrnHNfA?!d^JMQ6u~{2HJ&3urk*O>;GnS(|T~aXs4g|IN)HDVllnRv24b zAJbe1RFSI9k{bKsrdeOF;JP9fq!c!5Xb^6*VsvP-&B2^hVc&xDc?FMx1I_ZGvd*zt zY#j}>*#SDWjed<#v)5OgX_}?PxHEZ$ujs>l-?ohishMo&O-W?$?9&CwvNtEZQ+Oeq^8952%w!g$Fbuf<_P2^L{$_KoNwA zUi<)?`>C+ms(rq2LPviBuZbLdQq=Q+a>pCf&U*kNtg}0usNc?KP>A}i6LM-wbL}7i z*Mm8H1kLtA7QfkR^?r62{aCLNtj8H|uUGqdUR?i~uK!FzJM2c$pbh-a?-G?UI1S`Z^o1%E=Uu}v|0=qWW&j8r$ zuAlp}zdnRXAMj4~!-PW0$0U?7VIMn!eQE=m(CK5XdcY?^DpY!ou^@J7KO7PC<@06Dr*T$3@{bytwZCLs@F+@vu=Qk!HMKP~{! z_;GupI}0n!6I}d-o>US4MR2S2dL^>Iee@7| z9SON>YAwppezOKnJV9%_bh9dwBnSHXq`nCJp47%QPfD)C&Yu*J!G8auy<-bxp*IF+ z_LIsaXel&LRulJOvY%4V(5j!3s>X9qsr6F{Xl&6JxVS|(fyR~uG`6VG(}|l;+Y{ZP zr9F8japxI~U>CwsNxr1@5FK^RB@RMzFqN|pHMqzPoo4`?5Y_@eFbxR7(Hbu+`Ol;Ga zdGqt#5aYin(0hVryATGrZkIRY#TKv$z5hjFIHvK7N=QOudr{aH?q_yr(dpV#<2!gcGAM`k;&LuFps>;5-Rd|A@w-JPyll5#hUD9=Xa{(^TVqf=zz1r@ za&8Hx75GVR{205|PSh1zG=wX@Ebmpauv+WO4m<**=H&|AL5PyHnVX#z&>jH*n>U0MC_`^F!BX}M%V2B!1$WST zzxamE1p#Pgzx@8Tcnd=HO8E3!dcJY6U$e07EfSxi<+VTUraZ zf24U!u}Zj7mxznE+Nd9R*(FfH(7U7|p-^{8Y=NgXO2`_6E*mN+GF``j0`KeU9&Pd2 zw(Bf5UDD&)xL-8Ney6JiRaNK5hg&GUqwgWa-jQvRtPv>hD1=D?eh>B6)Q~=;wKd)t zVEoQ8m<_#r2be_1V@-_yI4Jb&=ofz{*lv^Z>k2va6OYgp-_c?LGHc(dq8mutcj`+a zzoB#AK^ItYjnfPMyQ4lS`(6n>QyR_CVG5gsRAv_vopb_VUmjEL0J32PH{Z zZGA8Y8|h%eZwmW9D7QX~{|-vM=Q{^0!4&w;LCr#Ur8(HmLCetQil(TcfbG-DMk%fJft2#7KauNWe!5-kh({GSQr}~We%fSd6Qt}1dy$yu{C)O zhlQ%V_^<*Jss(Hu&46vI&m z(ov3RHlejo1!(xpr&1$S%OeO&{#2rl5q#RtgQvn)KNWiOg3qKKqE~+=In7!$8zjc( z_?c#a8Tw3YnaICAN3MJ>4ftrf`5d$}p9?{G`{yKp2|>HkdE_J>u*KI}nS(FX5>&Q9 zUaCzYKqep;G+zt8G`SuWpeu%ge4C1(rMMG z4n}Lc*+T6D8gpe+$bXJT-M@B=9_G?f`_`^oxzu&5+p^idaxn>2jr(juRa!k?LiVJ| zXkq5;Icqu6LVg&TJqm1`dR-(Q4*9`oCM+zJ>F({<3p2RYGE1LE7qGV=^0Yi7n+3VKLNKT>SN_+Ua6C8E zYQv?Sd1bkwtz%)iT=FMA*&4{^hWzMgP7R0t){hf2d7w5;q?QX-dt+GIl6-Pa0f#=G z?2pl`u)o_BGr3|h&0)@upCKu$^XPY2ceGe5_{kLis+bgiO8&hGn?< zB22)M4>-I&JeeQzwUo9nhh4TqF#LQm6$1VFY>h6!!anlF2U!!v1Btae9Ol~xU(oEEEB2k24`QC_3-PVJ%JM@i&UQ)5$Pd-dlK(JYiybF!_!YgBH(i7(FmWSI-Hl`!*%vMHUxaMVui(MXUOc!}_!Rv&HYZpL{x{CD4HFxQ zIR!MBT3`{bjYB&{(Po0fKcua_TVn4v&f+_3W<^_|xS#Ods$ZJkf)wn!x3(bYEuRy% zV{hQ?iTn0ZG9iV0OPsa%XIOOw!sLQ(xE#uWtyh%A3lcO< z?oNR?=#~hVEQj$%kPlrD@{?EKiv{WkTqki`X>tXUBTT`7dL{@z*#MhAl&)=H{p+F# zMDGCc-paK2fRNp#&qnS2OJ;yPt@|^|280$GIaLNoSUOq8NU0z*)hNT1%or2$7r#!u zkHZC)_e`8)49wrFW|^r8ExT8+Uih&wXr9pxINFtxS@9M4klW~c)E~vqex3EGOUl|+ zj5zZKD}i>fdc3B0d~kxhV*Cyk|A3qaqwXLVv-g$zg0R}|Zsd(gtg?kq3=v?H1-*@# zAp!`3cZjqYCeQBJirZ$0Si$;Od`Re6U%DFx*P@_9;aO&g^k>Ly2*Sf-Lu8s*;*WZW z2b`Wc%Y#AcA-QSb*Ob&9q=V1YhSg5mzI#n{C|G#BUwB{GeYh1C*D zWSXKRmS{o&K#7!NwNzvk32GY;lYssIEkM(JGfavXKPfXTbXeI<(jnTXLt-cC5Uo+G z@d8bdik({%1*n^6My$vS$47+hVj~*|93j*|9U1{XMhhY56~*GlBb1;{taSwLHNK%F zi%@B|hL2C(8uUF8TOs^QrOTm;l@ixbe~t`g(+k@L)RvKQP>z&hk#N1%`fdSkjgp{r z*=bdKeNhPE%_!+2z-g2g7oic1ItW?Xi$r=yg}SXkTa`n5v>nytxT%AMEJ->1e{2WW z6xg1%WhXnx^474{xY|OjniJ5_FZ4a;d$c$$a2Ty~)GwQDfZ=zFauM0O#hwGwQ`Apn z!zmJvFxXRsWXblJ*Qdx6f{sujK}QOptc%*+)?;kEDmOY*Fs>Pw4eH-GO)PxPUgw3U z$|Zs5J5~G+1H{%W4>@%e9b?78sTv4N6HZnBKZ>-?IsgMI>u}Fa5a&ZUOpvq%Jtim) z%66z0bpDC1oF-kG!JcOA*Id6Q`Smmbmsrec0Kpq~jD|8yS$lb!%nC+-nzqM4&P|lk ztC|%@LZzk<`8XP}PO!qJjbHbns_mEARc2cLDgpn65toRg4>Zy7GFr7 zPaI|@OSwetoh*}!S4|dV$lsVOp-Yaq&0S#XZ4D$Q%iGpoWG2gsE+TaaW+4J z?Ruxc1C_5lMY0N8XiAK_xyVc*LgQV4xitk`jb6wI>T}%gO=ikmmQ&H+vor+We^x7? zJ4>cHoj*%jyK1p!tcSB?ZB+I)(?nz>5KWW&3De&0W{Ue}n(z&};YZ=XQ)+>lmrqk? z(8Q;;a)0~C__WY+n>biM&~A54|7HBJ|Hk#9d;6i+v&LoObi%}ht4+6`liJax}L zS2@^BpE*RZk53P+9ipzZ&gO8U7GQekBYvwjb$H&ZoxzsMGe}F=QetrcESaGR#uYb1 zwlGG8YHuK>+6;^1?2#%a9w|06rWWF`?Q3R;sbIm+kf@~HIYKvx`k&SS(_TlrJ*S;+ z9Cza9_%M-Kc#hrdKa0c)MK+7f?Ct`KvEfllYni<-ZqGnje|cyEe=7&uz5|aMeVP&0 zkjJB&EqMthE=--Hff0b1QxzfQLc*C&&QVO26&!Q4dY5m^k?F1LB3#wl=@0kC9MKYf z%sFDK-w_%ie!kNHI>043Ph5ohz9WqS7V;fE$)sK&@`Z(5Afp|4+B6KEYjTecG#5yH zKqM@;}oA6Q0 zZNf61tCvD7_F}R|K+YAFs1_=~D&{JF2>|DHBUt=GbW2*{JOKokf!$mc(J@cj40-GG z6bYW&-^`QRfep&`Ds-3Y;$KYVJe-vxoq6(6V4KgA%K?LBUcyH)Up@+U@tV&H5pNO} z^?U)9OdeaKoX!uqHcz-ki)m8JAS_oatSJW90Tq3fB=h#hM z>Ek6*G5O{tdbMitFsyugj;HTZ@hU!jsX&VPbD0=2!Mw}FHtg zFB7JdxOJH^ARPv;FO%;N@o*VyuA)^K z>J4L*{(D)-UtMnx7uYPvHN(wiYw(=uZ79fAeZE|45vxa<%d1MrOHrSTO3alSdqQC@ z@`*WdR^^{zFkCHha_4BV}oXl?J^od5h+++6&+}hjO;A_-_4@4 zS@&5}WOq{T92;E>8P{B;*}Fzqpt^~U!9YQ;WoD_E5_G!M!5_0!siNpiONHIKxPo91 zSly`TL9(z6qESSN47D|Gq(<3iNUiTlYQgxwuQ~z0t$uJlan|XdVIVFK`MZFy%lC50 z6KHg~Vl5O_7g#QgM=UQFh0vQD1YokwZYa+Qn;W$K4GP5#@%GegZDqIK`~|PM63J$Sa3~D z=D~06GT``1Gzha=)6dlTHH-8`Td=$Xs*>?Yo5w%Dt zlbzj?P(xcpU%aqISjVFK7Dew-<66Wu$P{YPs!{f+Zc#P^?e15*aKHHdA)8_?A-uMK zVkci=C#fH#c1XQSST2c8g}C*gZapXq9!Ni^$yY5@BM9@Lcn#?Kpaw{u`h(&*Sdz9K zQtv@nyEle3x(Btr#zJEr)GEoIe&)fJVsxgc-w@n*P*{d5+t#awmU?B09 zp9$nh!Jlap845146|aJvkmAo2=;sR$2_rdwh=f0VsW||K>q|O8+4+0E)&^<#=x7_d z;dUE@11PT>w8j$L*r5H^n4%4$9~OyhkaQ%3zd>2=D7}y9v#O<_K*epsvHF~NTd31I zX)$BkM5?-_ZmV|qPMe&7c;Gl;s#9qnljSevyvzaKT3*P%npf+r4_BSY413^Qa`MY8m#bm5>5qZd9Miwy-PU z84KsEeAh(;!$#pM*5F351wLgnNAL=5lp0VSGaL13!X+D(@3Bd26-3^|uF!&WIK{jC zn7<+o)H;IVut*x~n*(;HR>b+MC zt+CeZ)tbQr3(VdH7g>Vbr|)Bm?vpXdckDU*dY||*Yy0=WmrpZnBL zc1+(lm&6!*5vqPw=l}zJRoSH7X?_+68wR|pd4esydX$G$i;$TOn+QUCyCyt&j&1Uq zV9uiZ*Q~A+GOtN*;r$(&=SZQyB`l%14n;>;DA^%of($#P=j`bn?+DddPS`P(L%YMA zhsj|&q}?$)uj{qI>~&!?EbMj5S2E1&f(6}sU803zYQ?IX+@eRpKmVdvYY+KOv4SCs<*IAM926W@a>BbvU z+9Aa^w7umUN7JG0sK@7SMjOJgb;#Cmyp#dB{ftrEWcw*C45_LMDV&NIy0 z$`>bl{%x%R0a4!;t7Y=uZs&cf8>%cze!JvSRQo=DMomqX>0%DO<$SmcjE>$wH#g6W z{s6)r{Ax;C!F+o^x*CVix+QMy^>)>KbSz=Ie z9Psz62j@P}iqT|2$JmzjAn!v4*;?n)a&XywAmT&0ve&T%K4`9DUQ6O1geuCUg6NW9 zf@=7Iq!0#%J!dz954z!b(D#R;Z&n$6DDeSLv*&!`L$L{H$6kjlKa{%wh3i8R0&M6* z%clC89t)-{(<5aCCvT6~8Tf3k1A-o_ko7V>b-W)Q+=E5ujbT!H#2neHq$kD;@gDcc z|DameQFeQBaP#pyQL#b43Z^B_-L46yM=l^-bv<&MAEmvl0~~ujB6cLjN76wk?2LaT zp^otTND}fRbpfjQNQwa*^kWHP9A_VkW-;+U78`-ZeXPAlRBQhZ*vrSFHpK78+EN&; z?&HE?fMN{oM*6iZ8fNE^MuN?Eh@LADa7Z6VVL2r9gUcN107QWHkfbH(c}Q}W`L-D^ ztD^S4Hx<@=sOuEaCes{Z(~S6`kiUum`Ep3c^`=HH`Ab`o@`t5Fz#0!rzlF`a0mHU4SHwJY#gl=ms|GELJ_Vd#Ny{Aj31erGYsl00kx%OoMg&qRiw>AigC zGkN4uTR)Q&>G9&9g;v?UU}1`OTVAv&+Z51!rhF>Z%A-=Pjk@UK=Xw>a+SV}5&ouqJF>R)bJ#0zS)y6cg`uiFHwV?Wl zr=Ooww(5dC^zU}0aMjOlVFT5m>*q$`A_=<3Y-R%aF)Y_e*jpU>k$cQAi}aK9@`WYmTRJSYrJz_R!y~7-RuqEKNh#RuTdxIUVEV z?bz=#YB$lViK!eWGBtGQXP~qX;Lu++wJ?{%O?G)Ev0vBqcWD65DI#=uXNoYB(epzo zHkb&lrwDm?b4miVdWK#U0dv)Z*q`3Ysf}ohBN>CETO?4Me(yX=gDocY&L1S@#A*Di>NEJ$Rdu;5T z7^G<1VfCBV;kgK03KS`@ zgH8QqnZ(0x*k*r_Bo)SCE~E|vk?0uQy&WYwjc9_v>4=zPL7Iuk(AK$hdNjd^>ob5g zS!EHrsbE1w1jx3P5%;iCFT91sPa=LN^~)o%Mq)~v3TVFSTG!Uc_eAfiWuH&~CyDiw z5#4)mJzW5~ICtBhDRCEG$18k9-E&X!Fv?Pq*h9Q+;dSS!ZL6=DJWl>Wo3F1tf$)CR zzxoUGmB;<7&v5mZ{?%u>y2Zb`ovY9KSNC%DCI9Mgxcahx^)*(<EHQ92_#96Cq5D;_}Dh zDUG8Ic;(2rxcDusDXvgbYfe1wZnrE2RyVkwzT=DJjL`1T%uP+fAA0v6<7&T~FA|Sy(h6z1c(le}5+#$n76{@A==JSYZ;-AA4XbsGUCw^pTxCTj7 z&em8s!=>0TBO~+*q8}p!F0iar7{hsK1rDH6>8@xiHYWo=$w(<5Y^pX=H_K@0r83Fm zPC~AjO&v+1T7^CHGEuO`YtBes8m~D;Cmb*2MfVslg^W?#8V}HTX%9@w1oaoJoX`VR zP*{dDL1_FFs{=S)+Tg#nzT43 z?KHgy(wiu%JQV;= z5&$`$B+ut0jT+fCNlr2@o}tmI*3HRk$1iuyEin+A-XBb_x^dhEf7KG#tAPPE5 z4!T+DC!y0>*ap!tu)DGw?K*;-SbUbd!zw-16&$X!jK61)nPqo`?Zc&IHbBnoovU|% zX6M$?rIQLtTkz$iD{3%X10X6oTMCbAg^|I$*@~88P0p6=W2cYV+T<3$@N9X9i0seS z7>{JcXS@EAV`2%jnPDk%`|?rQ1zVlq^=&D(fTn9T>KfBiW6gv#Q)5l498)9Q1qSEI zudG@>VSB!yiLr8_a3R6m{zU}KU!@N|&y&(b2x*?;sHki6B#6jho2NJmj#GOdWSlQ# z#KN2}3v<4P0;SJa=s~sURJDR`s^$5CEzg&Vf5iAT&YAf_I)2h-zL1&qkn@GZ{Pn=tf9FA>YPU zYM5rDqH(luRC}WLjh2t3DeCBm)UH)*l+jPwS29B<^~xyWC-0LMFP;=pe+TENH@qiM6m1zS?O%Q zcf*1~eyyF7*Lm?9+`?1Byc+%OM*IDsxlu|wuewn%ED!dAy3zHso)LsMcHz;z zNwNtW>Ly9UW%2k;uD=gg-A(>2uw|tXg#8Ov3Pgy4mEy{%ODhE;1nEkFFh)CNtrMPF zsjL;UomUEUQ^)fBV3@|3_)52YlzLe>iNh+ZQ-}0H;2tCb^2f`Ke!3Vps7{D zN-V1%sXYl^Khhv{uK8IXGd~gya?THRS(*D|34fxrKSmkR{U2-dYVO~v`vgyJbqmFD zMB|52@DE!W=RRq*teT%2S7UpvVodVZYHr0>yDfGP>BQa050iIq)7{(LPKDKz&(``0 zF}(J6y;en{dGaZ{uAKygHNqg`C~M@>P+f?`;5oal9kFzWOlQ#Y4u$?9<~y1|N4uyU z^tu!0jD2B3CO`&v>3eL{?O*r#ncipDw4*Gol`Tr<%v!NkFm zuN>uQFZYT-p{;wDvA*wK1!n2SPvv$>7I2|n=BHwXeC|GdE?ICV&)lbuKtU~{Ac&C& zYS`Sb&%xC0FNanrq|BQ8<+>z{e!qZ<@AdwcGRr&I?V6ZqqTpS9%mese?M~1SXeVuq z*9U~ANcacU>R%QQiP9>w;t#nqCG-TysuWxR7LZUHi`Q9)E(d7>jkcUvvERzAcx%G& z^zV9;6F+ssuceWZe)1D27#G{RU4!sA@?>&2d4ca^%fh=Bd9lCABf(r zL}wt6Y%R16FfUkso+zwz`?+1$&suX)3YLAFwBVkIX;V%wKe*er56&1XGHonj^QurL z+UkJ~Gx(@T7xZ{k;t{Xcqf!v-gJqApg&P4uERBduVmkmo@!738*Fpq*-6(R0J#Umo zhlaHAARpt$Mm9>=5DwYciTviB_MBYVjc$ic?gMo<$_NAG?@0d_=V0Dwgyg5h#*j9pAgF?H1z}<%Xkyf+n=y` zkmKS{xLd3iQ`?(E-%iJOq|LRx(*XQ0M98YS5S@bGx#C=%{t}>i1EGUoN`xN`nqSJp z(-xTfOW5esZ0-*NKPd!;5}r&5+%3Xkw5l!A4q%mABx7-(ZRy5yjw5l41`bcyA`t)! zeOfG%2-wrh$*+4x4>PW3Bv+ZNXC%icEY&}Q^6M2NBA$`o2=sYIEFY!i8SS404LvLH z!(pD4KqJ2StUk4+pLzC(K0zE)Xt!mMc~+J(?YAaqZ>yf8YtPA6Ls~y4XECGRrrw}p zZj%~DZ?;)i2(`EaXz;wyfVq5L*?oQ?`4(Y!Y;_srdR}h^*|rNf$m{Le=fK7|Pn?L6 z_$>%zN<47#D=St4<^^>C7{8!|kz`?C^n!+jpm{+8hnVXNuoJHg67w$v%!~Rmf$A3p z3)MW}4P#DUM2U@-BGuwor7DY=<>odj%4c>Y;ITu`qLutwBA1T-TD|@c^#v{OKcuq2 z75>AfR-~K%5KsWd&IB-a3K+@4KE6}H;59q-nsyD1$J_0RXpTGni6F7(4AU-R0LNcS z0OKV+!EEeG0ArVcku2=vyQC5jG`8Vaw6a|S#wgstyQ<0N;Qe+(Zq*hsh_VWLWcchB z^e`xPE0T?oxLZmlfY_4x{H=Uz?#;$?Muulj+dzgHX_ny@ib`fFpW0OFMdAYKt5 z{6f5m*SwMd#4CEuJ`D@f-Dgh{fbdTQ2q4Xt*cK44CIInj0uaAR0OB_SM6$3S_>IN| z`TRznebDeX>LPIXjrbHDcunJhFWCsF&asF7KhoYkzN+Ht|KCZ@EfC;@6F7lH_F;1i z0Yku`sn;W-AfU!R2th!jMNJVTMNllUjfxeO);vlpD%G@7O3_+W6s+_ywpe)-B??8n z2f>O85)^BcP=4>v+WVlkPha0Zet(>qvuE!;duGkL&01?_Fp79DhFZ+F$AY96L)9`L zCr$t?FTOR#z_B?1hi#h8YcB=hc&UYmh?mtGh~s5#y7sav#7FY7nhY$q1hCj5SY#4w z%9a2YTh#p)^^DhA6zRkgj+O?PBm~?t;Y5&kfZHPe$_X_s+XkAN`HJ|~=}_J);-(r@7+PF=HxI5T?`ALZ5PARwe*JV zVj(KTnk8<<=GxZ$*VJrV{ti5L=;C!%1JS%Lm@|5>OPdBQUKi{E#TxnAq!V@+&%l5Muxf;&iTa=2GsG2#yQ z3d;e&UWp-|++WwvzPVorh$P(~#GCBbBx3Q1;3*i^B}&t05_mj(P|sx& zqqKvnj@}(q@30LW6lQ*|$NocNuCXsPRMh(g-db|+i$LXoB)>pxBnHAZzmQOc$$TMW zPP-Tv$3?aa7jQncOHxB5?b`TCxp0Bcw<~atd1kx9$O$uV@8}Wp+C#S3R`G=G6UG{` zeJLbI$@o&bGavg>69|~?m%`b3UHqI0%9k?8V9NSZ-vjhtY9APg6%Q1iryyZzH!9dy z>Jv@*N@h}&iLb;aa4~+hqCXH~!8YDg>5WC7XGIqrZ^*Uucv-uWXS6!`C;7|Mpxh2k z5;BQ>v_s;Hc<>Gx8<{7KZan!}9Nm zNdy*ephDEg5s5+csv}~Tum~%M;*Q8$h9T!j3JQZlRG#4UK=;V3 z?@0OfobYIyULrS~us;YKl;ngP%oB#^#tCmTWA;QmVc{B+F}NO_u)o5Ub-+&8H)XTi z=(qmXm;=p9{nr?jEDdT~PFYsCAxAEmtg!DiLf~aFR9xE<@I(bnBuibLSI)DQ(d5Z2 zn<;0tO35HrTGB-f5R9M(+6#qi&Cq9meZNWn-jtf7G_>Tj%!6)NFheATg+XAF<#of$ zBH@OM67O?Rrv4-kfB@CcI+#1%&Y~1Q5rdhK>vaw{nrD^;+?l_OUT4W_*qpg_mgkh^ zg*UvUZC>*<*Tv?S7f#t*F#kLu3a-GsurIE`kuDnZe@_hgyEITUjIyhYMJ?UEu3=lI zh)=-l7K{sCv2Nkr=I@~XZnD-d3sF>JLj~@2lOoOxrdznf4EK0xyNO0oBD#q^!N22r zgh^doXbBd@WmnX-Kn$A3McZJNoph>lb(r_#@_+e>m@Wfs>&MZ<^Wkt})2RZUGfG0H zcb7~@9CjDK_}4_R0vZX8Iuw$SBuxlfFqnkMM!DKS`x2_4Kydr_1XkM1EzqS%HPPy1*l}{EhoVT}UXs8dNG~A@ZQ<-MP1n6%Vc$cFw$e+4 z$`bZo;dWcQwKr7Viwb&UkHYQHE9|f6f|v9b=%}l=EUJWx^p<^c!ioO%l2WgCIA#W| zWh4DZVIIZmItPIihbt`17R)MEEof84Qpz&d7!ZnO3vqgs^a=mOR=~&49^Z#%ynAVw zF-YkpNIa!60naUm<61d^GAZ#4?5!!$0hHHQY>_!cUm+XsaUJs=X7I?q(kbvX^cB@H zhHNPfWD7mdhl$3xs3#{3X2!Um#u#4PPbh+iwVx=SM)i}Z=l%Yg`DYRv%>L4Y7}Nn` zU8{=S0cn)Bff@=>WuQoqL~c1Lh7BDwDp0<&Oc^2TPAfcN#1Z(*pAsDOXF5)esRAaBSEX>8SVX za}uW&`e93;Oqpt<31wOlTP8~rNK+=k&ZmZ{5t+m$`@_^D9v`NlJqTL})l ziePeDA>$GnO@(L%?p>j%EW*hu1Tl>IBUL{bJW^w%TpAK~!I5$X(5vIsD;US|QcpBFoGonWq=EbafzCg8H7Fb%Bqr;F8 z_O$aN{^>&}sr`f$omAi}tL>YCa)u~Q(I)}=DFJ^yMU>{0dZ&aBhGT+r*gXaPP3!V~ zcN!BNbE_Rp@{G^&W5dc$32*#6>irqiTY zf+-oNTUuky7^OA#sOzUYU=WU|)8$ITWMoWll+@*Bu7v;$)F`1Q1bl`D7A^G*9lmmg zz{)6};hPlQ(dyuyusd2`gyoEu(~`veIHUDB1kq@r0w`w-b-6xM?&CA{24r`pYM}dP z369XrSz=DWmlM(r55@=&G6{F0?ijH#Ogm#%VU=Q~^%z@uLAe@C@5c%c#)?HCK*t7n zFqYA5c?oVGb=f8d+RJsvDL9WWj?<&GeVn!=M#UKyNbODKW#ht4lSG#N+2dldZ{c1M z6ImvzQ@)Lr?~PZ>ah#0zF`!#z^r#*CoM8NIZ}N7w8`t>LgmVPTZztY4VgFp|X~*-| zUlq7#n0t;o1sR>IH_pYGn&^*^^siKOUNF?>)c|V*T~#pDRf0WVLUrXco>Ak_*IIGdW`H0{Ly(0A*4++ap_2Ehbj2>KV%FjeNU0ApL4Ou5VQ< zEEv+Y1)rEwFAT8W7Kjo>d7(UQVA6#OTEyOUp#TrsUMNuk6TDCp_1y*47cy3TpU8>Q z?F*?={@uLwvzS+U7l!ltiEdbZK2@qr#Y}gqK)U(A-Kn5&V*C=PY-+fzLWYxRVqok& zG%e7Gn7~Yv--*46rv(HL1D>`5WSOSU5(7C+z+{`DX<`3lXT;cai5P6s)73_pu3eY( zs-8|8&zx=3z$i?LO;Kwbq zooH2m_X@FHZ0?q$j9qE|pJEp0GF@i;t`sX_ntP>)jS!(L<>@7=`bx|)6 z^=;~(WmcxRJ4;fM`?K{va(uQxhE-s;paR#MEmVSwUFGAxd)1CUY%MO14V(W#JFP|r z{6I*4Oa&`a7jO-bU=(2whd$}Fa; zmk_|LS1&$?##1k{z}Zr-l@Ge#fE5ee`cYt(`;p+yw9byL20lNQF#(})ql5*foErsy zSm}+@*?{+rlDw=IyQ#W>)wS}{@$k*SB@qGYH?Mb1IpUqMg&7UVyx<77I4?kyDjW*>ol+Y8-L4g3pZ40xBA;PcB~}1U9~B1rK`Ms zyWk7rm`^?(_LhXV&4Ev=UTai%22Zov{GNiw)zf>yd0lTaU=L;fAcI{%2@SP|)ECne*AFUM{;DcOS@6i5yrKZblTd0+Bl z$tg>gkq;yvMm~sqBsuqz6UavwJBf3_rk^7}wE0EPyzz2*Bro7=UHq?2A#APV-Z1ee z3^) zM)}_Ta?Oz-D>xQGm9s6x11o408;d<4ePmI*?16CI&9Z1&`RHf82g1$IGNy^^?+9^k z#eTb2%!gL==U$DFK6x|S3(nSXw&!U$_w+@LJO2TOa965cywEFUH3KAe9s&x|%B8)LM;!dF2x#hG zS-`15SXowDNcl*2rJ&Y+jGx15ZNWN{_qW<#mSfi$muz>nwp&7vut*W*8ZY4gkUoys zeu%~=x>5T>l5R{^9+DdTaFP3vVp3RDYuAL0Kcv$(n8ZA!3ijlA4~6}MKhg9aTF-9& z4@+tyEgx1$B5L%*vZgZN4@;}#A;pwP|N6aeY<7PyT@uCS_i7LD*viP($m2hIR3W)6b+er69}Dy^TN4l59t-p@E2r6O)h$%5wQ2_D6k8OJ zeRQpm0cB&YG*=kOS~Z6)IM&Lu#aw%>_9h3(bV5R61Rs1t*n~m#3D|OyaOk|H7)US0y8o2a&If)p@^_rldQCUm}Nbt0f67}opK>d1J$_hJIZD=HL z&6597%fXQUk>Q6Y|3^J#szaa$fgEZsKB;FwqXhm3_ZblbO3X8|^FAX@2f6MK>T?@28H%{kr&sSRNeL*u7%$G0J5{3W{99MY{+z zrx(>7u;XPx8=KwBY6B$va$vxGS+bUck6xDJl~H`TKctN@dQ0%!7PSB(Ihv!LvvYm* z7P@=e^w1fO<2<{UCF2w)|AG)%JR8gTQ#%Xt?U$x+z1%29*Xw6zun$&_oW_7}

SqUtLkrPzDj$F2nv9%3;+ufOgN%wC;R1o=ZO?~uWw|LG`gWhX0g1sg-1&zF>Z5c=m z4PH|uy;hlPM*`(y4p7Hy;>jSOox4B>c4*ri%XxlUqIw6Ty5VoxQKCg(7h6Thye?B# z4}kN!v^BQ8cwJlY1UDcT@AdG}?SEev_HvlT>(U!xm2Zfmww>g@A$YOTkX_eRdT)fA z&9}t#@+~^K0t~gI*ikCq6$uf={jMw#FqwBnoSFM@>vv`5 z1>x=a72k2+m5##Dw64jE`N>XkAQ-5Q5zr2DI~6(&(ONlVzf(0Rmm&f{-xDlRP~Ow* z4p+>3vRN_9drwnD;PIXqA~DPFDc*3Gv=2n)E=`MeX~>YvyF`qBp+S9D4QRFYWY=<7 z`!1<8%zAb!sL7J|#psB!QJyG-J02}4?8ZWL-Q~25_v;bCtm=3luqKDIF8f$)$!sJ0 z{@y|OT#CH+!~Xh6!1Q-DUb&(}zmbT2WQspf+qw8a&wQX>>q2c;u4_o*1GQbbmTzYg zSPB=4HULhRgG(PQ7;gl+N9@v)4}}IqxO}J?J!A5rAgAlV7-OrzsoQeCX{*1Lt3iGu zY`|Ock=S464$(8Z@IDT_*tF&20P+??!*d@COIT?7abR{uK7PDcgTUbhQlbFrHZBKWfB7b$Q`@FGF3>!AGPm&a)*FFVAG0dL`RLX?|-$)9-QM^CE zll^*Tf3tsQe}E?x8lLQz#)8LWzu*JA*{=^1{J&o|M8x2J&5r3^o8V)~0eu5|+X300 z!0`j%c%mQT_JF=a;z$cVpeTC0YX>B*!1M!RU)1wyfFz%)zHcM~HiYo0`UMXq_{Sdq zOpkr0w)5_10iIB3ZU0O$Nl?jW8Zm(J8Q)HffLuOPxHRFrpDC1w7Z0iyOFmcQ*(2t2 z!JB4%F0%$A-Ogk6xrhgSQJ+nfcU?Eips@r)Dz{&0$ z3YvaMUp=Iz!(I*rO{dU6e@L1j~zXfK2 zBBUZKVk?_r8r4}5#~F%VR@1A>sVf{ z*x7BwAw?SdsIuK%_*-c4E2wjJ7odDA1c~Q!+%Do)OpLnnt)mI!n)13v+RatYP28ZY z+WvMD*JUPw*hhHrh=0-oJT+f8|0N+Zh=`ydF_z!mEU&}^sW6iO)2?13;-BjPb@Y%J zXTGEJ1w<`&U0vYy2ylUujEZs6hWCUi+GxmwqLUQuq1h*;siW{DrIuh8Ps$%TA?_t3 z{&pGL^7-qBQ87m;)Kv3ZiIa%IGkdpFTl)~NcVvh8@-dY3mY)I@qIVkp(>9P>oBa5% zLjI=gFB?Pjj?A-d4NwYuOL#H_MdAjvxz$DB|7qvjsaD5jhpIgdy04suYL7DvSTNoX z7eba7i%%9#bBkr&UG=B)i+MS@UFv_R|94%KYbP-k4p6Lb(2rw;`z0aom`K`OGkbcw z$H00dpw`!QqlJ6UY{S|sZJ%5mIyet`K z<$R>Sv?^@m{iQ7^S8NOj)nBCFUt-LOdi^6aJfCvi0cPjtm<8GW(GheAg2ej(*-ap! zfudIYR0B2qFra|~8(P^w(Jl7}=|0~bq-~5a@C}kEgOUcd0w;o+OzA6;(F{pZBFTY> zF4054Z*VO=#?d>t24fF1gTaD8Q?@raa&l%p;=wnOuiwP60oGH#Fr<~r7M$V^(F_FV z%n-3ee7{39muI)0A=+*q6UY$F@l~#zoh64vHW)FWh76UQZDuLGs=`FZx_YTt9#&n$ zKl*p9x&SF1yBT$kK{{6O1y09`Fu89*RkWr|{rx%_rq@t-h6!wK1W!pc(uiT^ym4Ht z8L@v&hU*=sP{XC*VPP09qXk~z;gZmNVubE9|0Fz$SSaB?H%DkL#|JF-iJLm4AQ5Bh zu?pCGvJ=kRQ@i94Ae5Kt0x-Oa2!}lQZX9O9d;CD+_Ov^)m1)nO?|LHxbmemv<%G~U zK?eKUc=30B<3!QazN5Wu7{e1&3^;u4L?H}-u~4OBU>GOLZpiy=@E=oR!Uju|q1CC@ z>}>Z`2_YUjRrleNr%Jo#W2ed=$@V*^23(VK!i)e<6C7C}c^cak8v+!>Ge`j!Dz^(Q z-%X3g7Jtu8qva*W!7tLJY7tZ5j`CjQlby% z44fXRH@S=;WwD`+@+g5Gk{zWXfeJ>63ZU{)Y9?54hVCw35n+$$pIIF=uB- zS<8Et)LiA-QT^*=j8GcH8>1u0#z<=L#W7O+kD*CprqRAJqB^#3Mf`{zjX_YcJxqSD zOYIa+bgeNWPY$gb6R9(~gfV!GR+^&Dj@A4K8<*vnS;tD%g9DCjLuWf%Drg~__1oZO zx#KkGv}K$In8Zokn^=FbrPbj(jk1x^{#R~u3XTDrZ~AF=AJL} z383Zz7Si24Uz~@2em7{vclFSJ1@!e_cA+K!GylR$NHSghcIh`Bny4oy>TA5~U#R4Q z;5!%SVv@cCVN6mX=KM*LD9Z-9lcY{yR-Po(Q7+l`b%*USIyNa*VjcWe&Zth>G}y`~ z>l>Mbaqj6KBtUPggH}}Qi79FYg;SiaTo8XH3)GYbXc3$46u}3kK1Di*uVo3brf7pN zIyMCkqw|6KJ=!^{OUY^Fg+naoL;=nk2oe)s7v>?H_}J8-1-9RWBC)hZ1mS4YB)-|l zb-Ez}IsSbqMC^f9Y-i&H+EJx{P!0!tT(k!qR$kd7=5h>&5lM~Bs`60uBH7GDx+tR;S+cm_Lm5=JmX?j}ft(APm99qj#X!LNmR;+=Y5^5t2<^x4ZsFmgjzEa|5JX|_IwJ7ablS%+|&Jqs)#v94bQ zCk|ClaIcbz1H-yXGKT%{EQh^aCDWgBV?Z(Qsz5Pkj|+R1j?a?&eRjD{rFP!No@xLD9kFb;7{)+0N-04-sG1Pdn81v0u)!F2*_CNZkH zPW!ynIp^1-FlV1-0*$e*Ph*U&57emoG%~PWGT6eBz$OgHc8zPeUTtReX1&_V>A>|U zk%dCNs>ghPqq@cD-&jD7{&JIuhK(d{l6z0r z(r-GVemQ`%&?pR3w+NMRtK6c{b<_YWXXVH(TEfLn1-B@o9`*K?I#8Ji&Rb+f2W4+L z2$7K(#oa0_1C+N)v{O0P9A2P8T6C-CA1HXYiXs8XZE6|NyiMFqxvuGn<-GheVJW7v zpNVL6Euw^2ex~OD!yO`b<~?^b@Ek;Uhk5{I6MSU%8+9KPY7}21L5u0^HnKMvv#(au zdH`Re6c-w!JaHNmr^ZO7MV$`K=kF}v`Vm!(v2&>(hJTXp3iJ2U*4R`!$y$_~Ivb8V zHFlVA@3bjNXZKDu4!XNjAz{o-?^F~6+SHwLQ$SXCsZ(_FF0Jn%K|iIdcZqM%#b2lv zbg^G3&(SyF84X?RJ-~&JJ5jc71p0zk1K%jey2_Cvf ztbA1u_a1p|_&B?W7#Q!B#Dv@aQU<>?ER9)qwa{B2#SZzmm?y77xENY|C|jrS%>3=-17l?yu$dV>ExQCLuh2E$t0d zeNcb{n;sOy0ag!6j(|-M!X(v{rlD-Y^)<|ygIEti#+AZDnBPiGUGa=rhz66qmBD`6 zE2UKtJh`$Me1S|YUvaLxQeung$;!=rX#w|xU{cGOUt5l>w9pN>&~LSoJmmUYwKT@r z1lpPxApTa|ikALX(VH0AR%uvRPq->#i}=*|rMD%f20Nbt<=-(R-tQt+=HCn~eI3Iy z1GZX70(V%AjlmAxsvS9$+n-q|w#HYKdfCp!p?U7;pgN7{~_Wlr=mGT*FVGI+@(%UlKTcggei7fl(CP%@h zLxAQ{b)LRHsu>g3j?us}<*oK0pd z-+O+rF-c$dF;!hF(@V8F1ggRq6qII2m$K-RJ z28Tger-&XlEwj)PWP|0pzm14r$Y;HJjR;&Xj!tLR=V9hpFZPc-d`be0NzhYTBWj@x1RPV41P}G z20g4?4=dM*W^w@VCqae8pz@5M0%)HRGeF2aqcMe)o-uLFwT6cEP|pN%$a0K5&&b%r zP&F&gg9Kd3cb`?r72^6?*~MCka0&4KSu>-uSBY8%H2hN`1R8`0=SC3NB8qAzHzz7v zj)=0btNcZj3_vytAZQUA)hq=6M%6@fEk}plsAgw!IL1c3&tTYlV90ZNKF*dUf(exQ zoL~YhGWlNx6B2{TrT`|J1QTBRU-5ksL-H52Gzzob3!L{SEzzQ8h+uj__wjVSAg!T1 z+j}92;27$CMfGM9tM?VnHE}DxA|VE)yrR)$;9t>72!Qp9P;zr$|2`=Dij*&^e^qMY zzb7_~uZo(`8(tM}0gYc(#~EHLr^&BsxX}W(DNY1q1_HK!}?}(_8YwySk{r^l1+V5y03)J7KL^*s1El8m~mcyyum05)a0Pli00!Uj< z;+mid;9jemz`(X5sdN`Tdcjdo;!ZVvr)U9-@lK(Da?R|p2OP~cD<}MHr#K^Mw^KGZ z1^UQ5q34u?3OgsF6OBIE-6^FNw0lqE%{aeDd--y=WvQdz-NkpkU6C1P)(9Z|y|1?t z*sa^UzkU0XuSfBHZkN3uY5YrOkS_oF-rx1=-@pCpjIVEhz-{*fDQQ?!KakN7JIn`- ztaSN6y+@3EAfpgN_JJe?(D*=_5PZ%~i@-Scf##R=evb%&Fxx$?U@yJ>P(=2jg1Z>! zkC^!@F$wXJd^cD-K7xm61m3y;Vioe}f=Oy{4j8iKW62i0C?CV6xLMfsKz4U$x3DQp zSKWPT{638~>|vjRe$Yhsi3zYmZC~I&hnDwA4`AxNPurj=utxFZB&a-C5cf@l&*&-H z?Uqy$c5^x%s&@Ag-jFgq=|oYD_iZ9bl==ETZ2=8;`9!RkopwHfPgytiC$QgS zh+x0a44q`Z41cyU4wl^g(lz#rb1?7RFD_NU6N*UNFu>a%X_l)maWdRyzg)erU&}WQ zcK7cdY(i(hv=L%Hf}D4%&A~eFLjL+o6DG16;2g9{rU{>l$@7Iz)l!Diu2n824-xgL zK!;ZNsrV?OTi1zU!2MH=^^Adja1FsJpGjt~7-MDGo z)wDV%|M(}(Qo?k(U0e<4S-Tp+w7Ff(npf-^_uiMH-ew|JG($xKeI-Kz66Py~7Sfil z>ck!TZ=>KzQdfTb7{1Ut#D2WmG>cUye727@v@@zCf7Q;9{tO#AzNy~ zn%-V^bjAtdjV+zavZL)WGzW_Oz>GSlEF9fbg!Rn}M+?k7xH!gNKQMr!6v9z|=x`K= zqrO*U^YQ#$ZajdGMD!7SCXuMW`3z)~t3ELK$c_4^AFRkK%Z;{nMV+F^e+rhLD?U>k zrD&0~2M!f*J1O{#gptU0I|-76HFS#F{6VajC>a{ zJyg~%8cy`$F2*~;UYDqy0WG=KMfT8Xc@!B!qeb(##=uBSb(d&bXL_I#@z?J+ZSJD! zaCH$yO$IBXOfr9Ky7SjxQd-l!tV^`;u%^IWo1v>rVguY&z}X!s>l$41mIlv7=P2)sk} z%$GK4xBSs%Sn{Jj1ETd#3o{bB?r)}qwy5238IjWDC8;$D| zEiqU@)P1CFfo*++Wo(z#2P$PT0FU^aH}O4-wm=bcwRpre8xA2Enufw`T&c0l1i2~R z?YYskx#3ay-ByH0O4!Y$BqiLycAe5J5A$3~E5%sMpAv^;vKZuED(VLk5n_{y9yGm( zxBE8HdQ19=`LxHpe!=LC0Pp&VF~RTqiTRU=l;!_bLQp^htq{fFaHlBSMTGA=PHZ}w}MYw*dcn)ym&;uinQ?;oG*m0^1H_8PhI(4el1opr`Rb!1hV=)?3 zj+ZWWG(q9Zb<>(xLTIP!vvAeZqYKn)$)PLzFlh`nhlFB#Mbw~M= zRc}<(F`GK|jS{zHrNAgHu3}z0N?sC{o{dtAH%58XXZUcxQPGse3&I;liydVW6xgUc zTJ}%Ad#1jdNgTNY&TN1=euclou(4dR~Ehk;1dVoQu`Le@}R(i+6FMOUf$Qn@^0{#-XVIr6AU&0b9X)TwEKf?4d zC*tZ-$uTSkmudWf!evrhVBlA1-i0OO3RxT&w<|O^!e)AfLYNqqE42Oz;dF%z-l#`c zC_)1PafRkm9HVuGqJG8>^sb2dXNs{b^NM=#|B9#|9KLjzdxgxp#G_vkD5$72-?X5ZjU)`rdZ$DPCVitI|qWyltiM+ znOZ8KT<$19Hd9tJ^t_p}ren*RX$Ts3XDY@NEn;RHfWcH?IRKiur^MLgEU{rf(G$@3 zEGVWEyV`8HXDhU7=c}5wtBBz z4?r8UjZ4P7*};4bCN*31SJ=~?Evi5ST%|{7!&MD_TdtC>0J&W?i^Wt|N#w$auF@hv zXo~Bgkb%1j3ed5%-c`}XDPP_d_F?iq;b$iB^8DTKT2gjJZ!F-0wPbT(j~beiUZHJA z4^FO=IiyZJCa~`~M-NQ2t!qH(xta%(z>YYhMa^Zrua;ReWU-;^Ay;8hOi9jBdiOXFLi*?oi7WwaxKkAFClir(0jhd0HgE#MTBL{ z7xRKB=9doz6=u8h<*{an=WBkB?r@DNMF+bk>TkFTJg?zYS)u(kg8N=}u2GJh%fo2J7762e(5`u zZugl>!L~_y^ELm*9?ZF|{*984%dUx*d>m@uY7gx5ca8Xxqn-}<^?gNspC>hK%Bk4; zT~*TF-3jygELN;euG%Vew2gZ*i73&%Rvts92G?qChGp{FrNa&5O6M?aFrN&;RxZi65J4{4AV4Zm-w0SL-< zAJ`cCf`lgHYct*rA|7I}`BU4dNfDS2v*2CCX^c4U%;1Dt1G3 zhgooF*iC9kOE32(HH>d7z9vz)#F=^%IB>?MNaDEN5&M58%a_w2!*|I?lTRY2tmu2> zgeVtXMn08%Hu-e&IpoO5qJ`vFl3!2$16WJ#o5{IcE+T~EI&wCz5sSOInJ%JH+$;^5 z1bS0xFdz7dI0*#)lQwwVVnGSsynO#^S1i=^jGetu%zCVkuvcMn$GdN_(NwBpgWj0|< zo`yzU36~*!?`Mi3f%`XVn#${q(x^$SJ&kH7Zs7mc+)KFx99xmzsom-EQrx)!9k8|7 z{dsFK2mdI!TR6@x*>?-=V5fI4;z>+UcS~&1)4Npz)5yD5`QEsDP{k6RD7Z&NPdo0> zrxEn`#ObYaP49T|9+_-`_PzQ5^6_3xY7j8@N~EGaTGS4pv-`|7@719&%9j_i#X3WH zZxHBzUn|4)?+F-qjC-Hpk3;J|>8ymj-lr}7D*O4@1lHWA6J~T>*^fFbkrwpr5{wmz z87NXmAM)-C5Gi=B`aa0&N<=|pf&b8Q2~Ak&a=96hY0HK3>}s`K6IW)`zZ4Gu{J(Vg ztOXsh6^Z3o;w*7IRlh;ld2^J278~<#*Cyu;>3ylSr8;vQ6DsExyQ*+O8{X$hTVaWu)(F4IL8VArUW@lZVu8<)S}gY9A^lPWmA+eem%i zeMh-$KWwq{kVH75-Co+=#lOxQNl?y6D(&Guq-h7k{dKsMX+aK?2ST&9leEO?w?8JR!<>Uv48OoF=9%Ud7y zmlV>^^~;!Laa`Ye*1SqI+p#}T@_Ly|_}Eh#S@_vgA=ocbm`@qeMct=l2xuSTJ|)a! z1fLSzz&y)a2DwkQ0asY@Q|-WoL3nBjtYj_aI*VsoU+<}COR+Ez!ug|y0-E@vXkvqC zfr||S0^arw8W&v)Ey@3+hb(zUBLoFMqkS*g~+`xii{v)iosEZA-@F@bAFGZwBj%f5)>`K-o(?WLa;yJw3b z+b?GHIQLojdg6Pi^Up?YpSjr}1^;vOA5?ltdJL+v<#3#r#I|sTyd)iqP^y_gS1a2tzRZ%?qCA=C;s%i(guQu=+JLWx3lWh*3UwFxUx}O}jgE^1vIS4f^(m7#+0nhA`@gG@U27YW1%WS$OJAH~vuK1l{aI>0;aR-4Dga;XEH|doOhT z4>b$$6Ad-PXd7rCU_KH%V4yydK%fa9iNO;c^bz)mL=iY)H)6frk1Em-eJ^srjgR7^ zazrzRijTzXn1X(!NhW;gBN>tiqPKF^#eWp_kL6%-%17cCbv^uVpg4WB{v=)@hwmk- z(2PG8^q9DREQN>x`a}Z+oIa7!i%H=pj7p*>!}E!b$U(wk6NCls(0-_f_Uj$Fi>*ao~ zZ7Vp`2GNmVDWm(j48;o)Y-&;AgcilU&!Z0?2f|7ZeybbZ*U;+%b)LZX!o}Ku zH_QEpxFR8O|L}dHdZ2tYV{M26CVnBk*|w?(^yasY#!i1J223-)R5RFf!g#=!AV#7W zgYab>fUui2T%Y94~fy!phHqEF^C?LREHxUicyXr zJtRSmR&F^FA&0cZi0Tn(v3T3A*|+%6taG8;Z1<4ZJj>1xMHiVrxnQW2yAJ(83L$d5r~eJ*0o};T{1SE0iy;P|O?B=7RC+=@rIKmP1|>rb2Ptf?SHy z1}OVmZEklaaD}mY(`~TZ_EN=r5@o$&6Os}`y+kJ17Ofnuu$S+eYbKXBD%4E=6wb5D&1c#skvAdFIC6-e8Z9)UJf0vl76l#~~AjZ}af z&}d&Z7qe2|m~90qZm=Mat$~c~K@Of8ty~llgrm`0PfSI5Ejh>6deS+8iYKO}Yl#Q6 z>3-tiNT7bQd$OXWpT-oi*iYh-&-X)wB}PzDKZ&M?PjLIGiJQY-zt}Q!7Q=b_H-m#D zHcK;?Khu^0(hV_-53spExw^=fSOYXX%4N+06a&>igu*~+eY#eI8H|B?4rVt{5*|@F zka`mAa^Mb>KqpjbV64>)5)5F8>R_}=WSY-hV^S%R%8w>xJ1{WSDbZk|JC+EGfN4pr zSXEf4^I+lsTQP5N%zRfSUY3Uz`5P_(-%=mWUTMtMd+2_hmJ!%E(B2`s4F&taA)>7v+0{cp$pPqBOumL_{E+QK1a`VKRNzEd z3>8A6PYzXAK+K_{|Dlphxc7#tzslu{(Mv2oNE}DUc?!PV!wSSGj@4V41ku>ZJ2qg` z#q8Rk&`NqdOwyha876N4$T|!?Tx)WNNvUIHxl2xC&g$@-=?!YLH=pJ>FIrbas!I z{iV8~_=KHZWIQ=Rv80s}8u$n8WSBrk%(Dec8Qrwezk<1@6|aX*nbwPGP0R>{No(X( z2uDZ^27?I-FjaY!?7p}}IlqN?05y;f+8zqn&Fm)bwNcWIaHfwEed6FAB?vNuT9%EDHJF6M z<~>?E_1@IcyX)QR(IDh$aNyP_DIIH4eq*tFCZw78FL;6-5!23rEt}!(T)?YU=bRp5M+jIoEi^gEGU3U_jtVr&Tw>ybz;1p zqch{%c#r2S$0Ke#AfTR25RNgso}efn9Ly8+KIl9_>KDMVYk2Mi%}L;h6Xd^U@#_Q; zkM6^WbP%66A(n9)@^_6%&mFn^4K$8^{Pj6dZEo3wSZuU5a6bpBnV5$5bq=i+kHA!p zw6Ppo!88;C~avOJU|#j)i}sOhn3MyJv_lP>mSd zE{Lrd1V2=}PC&^UK%w&?J2i$5> zGh+buP8Oolg~@6dbUs=9AYSNBp22*)olOtKxCwNfoTl|w2)~&u#g$f0mPZ-pVL5P| ztj%a97JHKeO{6@RzrOefy(Wvd)A#BIpa*SKw=@5*7UF{omNOZu7DEPis^#Fc({XfD zE5)nzI@rmDVOh1r6kAVK$NVV18J+n1u+6Vi*XysTQV`@6=}TD9r`Z0sTx*m$m|%*| z(#OCPD!&A-mcPLC zZPbCX>9Kj2Bo}cGz|H<1x72%44Ms^4*pK7y*MKCe(SSo#HImxOHFr`jP6MLUD1eZ} zv>q#D0#u`^HVSf0tj;7i60$}J#4h2MgVQyN2%1>RBlV^SGoQ}UZX*B=tL<<<+|kS6tFt;mCV0Rif*S6eVH z)azk7QZK^7tzEyTH!n%^f*sZi!bCmPYmx^9uMc$T>%~?XAN>sTZYfO4&$VPtO> z6NHD|EDT|#@y%)vmXDid7b2kl=3oLye{L4CKxa4a256iGcyl4)T}-ZTmJtM^yje$# z0nDE)=xajkCmJKV@)Mx|()cIx&ncG>#Jz9#Av?<<49h_-1`a8mig-VXO?(Q1m&{t$ z9rP4&>jGv~4>IUmcB&1U!7cbEb*uVR_SVVh?Y9bJZq=j)UU{oR9I*%ADzu_Ew@M_V zFy1PoGs4C8UqCuo4zb;)KyEvt28HCd4QM~N$*;tCFA*j&)mS2Z&A-OwszUU}B|-}3 zCrh;MLk}qc7Y$%Z0}sO$EJstY9CP&&jZ@=bZ%LrHEqC1|VpGI|ESZ26uYZaE2yj`F z@)*h__aS#e@s`APn{}_LPuY@K`^>~eZ8<8l=+XYCR4;)fI2dS0C6IL=QcyYWZ;l=CYS3yDYgsjwy%KL4jw z_;XXt1=>bwGZ15=Y;bnLE<%k`Ik8wa+TI8~+(v1|D5#CGxM`)#HyecrAnu*QS$M^r zntdo2B3mK0*Sn0Bbxn77xjw?|#m@ae1}!h994F-RmK2&$C-;|XCUk1~?uefw zdw!|!(T)4n@=Rj7=KX3Bw#NGdbCI14Li6vJ+*U5>RovCRUtcPu1_>y7aKCmbX^ocM zAKNoN1iIZXPQ2_^_kPZeQHviCVbBuG(a|1IAn5}Ni-OJ`ko1FE9)L+FMnWbJXfa!8 zu={|d-Qppf3Bon&IUb1l%S);`CWL*ulcR~juX~X>5_dM41q*@oKp<9{;1r1hcz%;4 zFWjj~q=n_GNwZ(LqB*JABg(d^VD0L!MQuR&*J3S5Ld)@1{#r;zo9$Y;{MBICN zTh$B;gdMGxNWdGqTCiiZR<{hY_N|r_L_V$-*dC5}t7E>;6C}3-MOvd21@Xi<$i-NZ z`>Wr=?SM0JwMYmxZFS{oj8Mw%Cr;*!#MQ9|ZF4Dxx4a^-llzP@v}}uUKQPkvpkVUz z5ZaAya_U2{AqRlwG!cB5zn6E2@F?4&0(5vppj9p@hZ^{Z zf+RqzKZt5LT>B5PymNv!wH-^r*UXyO3TqRra!oV1v_^wb?wh=0B^hSTwh}S#(ZHM= znE8hu4Jv$0?R`wMh2U1Lzch@lJg!@ht1H2+Kmq60le+b!#(=rSlMUb$GXF`5A+Fbn zvB03#i9vxY>tx%P$6J&Qg|5q^N+$j00Y_}D(_CM<=xPP!it$n|MuSmcogxCp9_!~Y zs&zVX1bSO1Ungca^N%~e?QZ~e4w;RNtbWuocw0?t>53IBsV*W{xgcNO%x0?oT5PN-ig1bRS z3?X+pu*s10PZ~*x$#TrLe-fuf@iN~w41ps{j4?c;?;^UMQS>bQl1&mv%2@rjwriIk} zoH|q9$9+zqVk+?*5oy{R$8zEyp3`WfzCI`Q6jcAKK#8;CuR8tUuNoi5_pcgv5caR) zC9tl)YPN>9{MWZefb~iDuM@adc?`a%=aqAa{a*uuY#%|rBVztJDeS=cyu&cyEPP%Q zUkKxQO*G*>&#T*T!skW3G{*LMz{mZ9bZRUqFK8MAmAwFgB}TC5>V=rUYyrvnf+Q#U z<%{Cw;J}LlHHd516N}v!PaW_(F#{>w}AfN7q%pBBTR3+0fwY9CUg`RL;ct6*UO8@D-`A%=%vu!)@xr z^YV>!KUHa43&4Z7E1napz;?}TpzH0j$)VY9 zm%M}Sw`<3h>LPc$B3Muuwwr&4a^)OLwOtXwH0?DhjEv)JLU+t`uStS47kEu!!+?5+ znhg2uXi`@l_jO@5ziG}SMaB>%~HRhkr29s&kr_gF!1utAWtzrkd z){X`w@PbZmYY0w6R8^~{s+)WB{t|O?(deC`VLoM>2!NzJHGYiCPO%Y~qMaTBx8G?> z1^EVmgf)1lCTl7eQK4<^)D)Vf9+qRS+^O*gA9hJ?@e_fS3CAvJx6t}7krOrSk~I_{ z>=GHFDDP5>z{p*#+z0HtL`IP5E-6}&?=I0g+=`rey<5Rm(EDz!UI8SW7hwR8PT@)((#@vd-m`x@#RtMD3W=_x$%pncSq3#3n zP-Jop5(fmTT7TnRDDHp^Y?~ssFYCiyyaT@f0heuFx<;P81DFU|j#QXpw{=z}EeLCt zctFNAI(Ig9=(@LUT}Pg9txp5rtd}&=@Z)hhPuN45D0i zX$bddjD+5!5AC7?l>T-NBz=4&vKHH(82fHmW0bI1BFkm#6L&k>x|CCZeRLegl(E!yy z^&Q?nqWjDsk4WnR=Z^?PAmtGlM46M@Fc3!RIk|CLXVyQDziW*USrg>s`tHbvoRX|u zf30>b>}BOvXscC$nW!`M!OO|@*TB<^9APep<>cg=8<3VA{fio&lk3NVt#V32L5)BR zsByT2UZh{N4V5Cx3+1+0J7`iUcb?6+c{Hp?Gl>|l7Y^FXq34;uOm@S$jb=pVm55%+ zBw*QKFOoY?bM?gO1#$jw=&Rnu=JPj|c_*rOGKrewMumZ##}Li+m!kkdNIT|2PG2X+ zmSWh&*Yb<#CGq75IF#i=NLUQuw?s0W>R)IrlUU_lb8Dii zobPna^`lr|hFxVW1w7sK{C`a1x|>N%Q;7>vkuPyg*)}A-c&@LlQB}Sk&Lk$`^W~rU zI$_rYPSgkzqsHzc0}M#r)5v2>61ts9O!6gk@9U&M4`dS9P$#!Q{1op*L2j!eF9f}U z+;&^52vmCL`AkC7bKM?VpU1kQ9zoOVdhpjjk_ANUspm6^(P&Sp(@4plVrM8}J!OmJ z$)ujlBu3Rqx|8UIPcx}UkpM}VdPdKCp)^N;*h>#*5?Di5 zw^tn|;9mMBT6nJp9_QP=^;jlBwXpaQN;E2Xd3qx%6AslD$*Ho^kG(8b%KF!+jGud)jt8`?9mjBMkKL_1mQBCon@IfT&FTi>-t zQqrsHM)}0fi9KX{B3?tBmz}Uzn9p^}Nvt7To8yh`PH~NsXyp=48*L7{mGudXMTGm5-el56(RY9cFlyvjm~*AyjMxZD^nt?iX^Jf}Ao zP0r+Hy*rL{T^{k`#VuLkHm7$n&o4N}?s@S(<$A{2P~()Yae1#Hl}7XH;uZFdJK=IC zhbQCNrDHwXR@jfnC-$`-bmV$t`}=KE51OcS0GFvOFFufK+NK`xt@I#@^ZKX0WwBIl?TfR1v~mPsqf^>e z0ZEaWC)}9k= z8CwN`=H4~-?2aR4jM{(G%k;SoGz(-uuLc#n(5pNz4JBoJE#!%N(~h@kA_Y#kblC-5 zG+)rdc@8Dsrb*PeY_zv*a-5p8z1nJWdR#fBg)U@y%ci89a8p+I3+re|PNETn>(b;T z*7MXs*K55n6$Z7u>S?WnMf35tX?(nq>Zg}e&G)>@iyKjPvyHgx@AKL(ZVV^RsdBtk zmo$lSc`a;pMg^s{m!=%A@zMqnvsd#yzA}=h%4bkp@gT4DvYM>Kceu0Xa&T`<-0{|5 zLDDzNiFk`^d5O_TeIFDY`~9k%(u41l)br1)ok=U&LK#dIG8HZ5w+O7AHnZbM=QcRW zm4Iz;(rdl48E|El#%47-MHN*}QGXsh%G`GQC|b0Q!j1gE`)}4(G>;nVuk1L|ZQ==D zd^Vsh50|c*4cfMl6!otjI*9#(%27n{{0i)PK_C%7qo@0g7(8F_j-m<#??(0=PA?(%4O4WjVlXjd;~J0VK#_J#d84!K}U5qALBjC(Qh~n|ULh@9p>r*Ob@Y!YgYRd21FoLMXXj9Df=Flc?me1}9NtnYZ}Xs_f9o zmwJUusvy~XZ-Mf1K)$3r6iVfm*8Q{w{_{5cXT?ujLZNi7=iJc(A%(nU$~RB;b~N&x z2FI)W?>dG$RGPlC(eY~UOgrJW-0pY9K?$g7X_{K|y!Ah?vFoZ|w83|MVcG;Exx1Vu z_w-gNR}Yt^;~}_b`7*Bg^d{xyxn9XVcK`B z-PvCHH}Kq&<4PM=QdR59I-sBM7W|ez#!axn!=2K~Rl>tnX{WUOcPZEjNr=%bS!XbG$s zz{E>yp9Bt->*5q9yx96QZ+G=-g;;etUgcAi$8)^cAIrfz7}_73vJ?4@?Aq{pT~?xj z!p7`GD;fA2d%8SJFpO_#ree0?-cTo9s5JH`hO{D8t#y{SY)x5SyN#Dx9Lcv3qqu%sxh_kq{>Ho2+x>fzd0ZC0 z#$^@9k@%OjTqaJc%D&6l(Q%}Y<2Xy>0O(Dc*4EQo@K&2+f@|#CjZWgfXi-wVoV@6rjw8KVV_x}AgdAZUn|7wM zL&Yb0CGYXM=CBX49MeQvL*Ce3RR zM`^kpvEntb)sLyE!PhS0Szh7ZM&`)Vyghr%b3*Zu*S3$RYaFlY6TdQjpJ`ZpKX0`{ zS^H~1;vQZaZAtv9sjUw53VEvza9u~2KGpL+Es$+O6>rWe;t<;IpEWQhJ-pOG9ssf0 z4mM?lYGS2}KZj1&e9p~=EHC~K)rw;L50cO;BnMmg$h3b{_xjzpIiqjHmuTccSs(Zh#sRa1UjRH}$C#`6OWf0#KK3OsAvuS?!u=sdA2<^P zY2nKUXK^2bbobdoa0K-9*+G*$Y6%t6nNg=aRuCFwXUOi|KSrTp=?w6AtBXP>)H7q# zy{-6k)N}?fj&x1hP-s3gZcUj(n&r%Z8Jp0f)-do6!wMD%;2$FUnUqTin!!9gILSAR zI?s%&;OK6bXq)wF_dxCxVc}RsOdDL@Gvftg_J!RO&O{vg-~{X!=ZO~JdS1VNv@j~< zLSST)3${y91i}Ds3G{9X0(?_pM-Fn&R6u^7M%SCCoq-og1iH|77e@ud2aXqqDMb1i z!Y^Y6DNyz65k95FMaBA=lU{isPal{uMBclBlcAZTAT^9UGHVDM;QDSKq;Z%BjtW2M zKq-{xL#;Z^#vvg-c9)HU9vwOV2l~8v4mOJ&4VT0CA7lDJ1-bz?ksuH>YZy8wgi{QW zJ`f6WMUy;ONKSEmxH7_oJ#f5oKu9e;QiXY7M4hMtT~A3tdCd!>gIn)j5ajaXTSFrY z&kRrZZVN&QFB--UxE?-FEX4xZmq(aRwHoG?^wC<(himZsVJ75D_2MDOaY^4D4(EuZ zxekK>j>3A}Jkod)ofSRYq@lB{cQ>Jp9Pfdpm~4~>hL;ZVz+Eqm{*Rse-&W9uyOy3A zw?teU2Aj`}drn^(*nPnu0C~Y^j_|6NV~vO@FuHsgp8T(d|CiL!Ut2zelbZCA71-gJ zqH8O$V{q@$mB8s;zM@qw;BXaY0x1lw0`S30kw`=^W#B{v=Xb5a?x3QMi0d$$J-P|S^&^rz3S?h6g4;|FZ^9~3Aa7FyqJ#yGY#yTxqnpo+=fQSr-V)4F zMBz6y^0tFC2HS>kgX<^TQUdh)f#@Lch97&0q2nm`o^)Z$5QOcT5HvZi9`x$2j$s15 z6m?+4;f?_TP@qKBozj@ zO}alFw0Q5rjcA{kmg}ecBA_B@(48qP@6ZQ!YT$Os3;PL+z~slo-MdaI@{kQC{}>== z+Mr#0X1r(^3tc*h9XR!YJ)>{|7w8AR87A+>5em@2AbI@&M;`VY8335(;)L2>EQPCo zAC|gzg+8)xBu6{i4-Qym4Knjk z7y$?=l)C;*5Sdv;FS%ie30?pA4Jk<;Db#zu3m+rJ^m}g#=EVMM_|Y68NvaOx3=tN% z2$fW`KYix^)3G~8E{7u~d4TIvZaxX-;`&23gV})m{kOP)*Ft^mt)n^hdg-kv@ou*i z_r8INPr_RK-bsX725I)EPyatB7f!Jd7W$D}A--U!%ikv^F!9>=;roSs`ik4o2Bhx2 zO=B>tXTOHFErmHp{%218_-!N1tKo>x4Gm&vvM%2-2(-x?I`23$t_&fHbH@&_uC zGMITSmTbiTD*P|O|9t!hvCRJTssEYszrAh!nme#86z%Ri#qz3t^e$XaN`b<=vB&V; zV6HIu-1S2^NF!do@JA?RZ2m~6d%}_&0YBao1=*Q%hQ@$H-zdC+=%id216*486EOaU z0rKt!9LMq|9|st!?+t>`%))R{;2YurFtzcgxEVcXpkNP$Kf^RGOK#YxdT!W#VL%P0 z@qI2ZqFFzEUj!rJ4-R970ZZWMFs2#9A6Q2E?)$~GEZ}-T!2JRA9D|wiAZ|u2Im;`h z>Bk;KU#OkvLqQNK^N!%@5cuk0G+mIv4{O}J1&nau5wIRKp1$$X$hjwvVqk>nk)s$9 zHtQ#j21O7FdP+DIW01x_2LvOkKKgTXOo8Jc(*PqyAAD>Otbil@A_&}h0;h4+wZ}0? zGwaQdN4@e0gLi>JBczAnT?hale**0RL`a_m7|Tb&dQXbcjzITQSauMd@bKtU1GvJl z8_9Lf3C>|lp!sP`ka`-=$f}2*36m0b6g`7Q>DhDR{LkVUgusDkbK`XFIoyw8zUR;; zrjI>`=TZE;&huDv1cB8Tux9Gq*uyX2Sr{_!g>z#Ee~J4LIR0bktCi(UU_3r?ES2l# zdJ)~wKJua_&Xq@r>{;d;faLw6VG<~6hdYfoB}Q6>(Mu`xl=*R_GT3LmG$bkFgr;( zctlNl_uCL*Lrfoh8;@afM8~jl_dBVaJUjLdZl<7a{(>=>=QJ)69vFNVpO50R3qC6@ zK!W+b5sPpY2HwYrpjj{cYec|R5C2sIiCS_;9Fp|Z2P1-FbBk-xnkVoSTOT}uQG+0Z z+*Q>h9|i#^mLn^dqPzZvZm?%ke~ZBXz~`ux+e#E5|N8**mW(ky`q5C1U4#F?RPbR2 zu`lfWKq(;;*R>nqB%7&Bb*>Ni>Fi)GpIoxbCqtAdxKWZKTF~g&_Xy6!23Sfho zV;KXOV2xRW6f)b+rY6X)yug4R(;dOEL8g!5vp8SS5zMtWIyAtEhmJbVj!r>Mj($3C z1na_qai*9urhD8PzE3v9u6KFPj+YVP?R&aDS}=?~6kOk2cy@d~?p=s2XwwD-ap=wB zir9iMeb5}82ALR^LPOKfj!u<_^7WBoJO@Q?)Far4oP%u26eyfA%4TaNgXAf}28job zlmv0EnV1DsmCM$ETvD?z7>73duwu6_m7}3S-&k%$)Q=G({)jLU0@VSWIqJ$mlfaIEe?wXoC0BD2e%3NF~n?5inm}`&C!TkvMzdVdn+Vtb)#9**ppQ<>Ui$~ms zjU1`O9GXcF&y6yiLT|1*N#1QBjgfg6jD2YHhd}64^ymT?c^BixP&ID25ag?l;z)SY z%R)`aF#YsG90}AiScA=??O!xTie@fa6viayp)dSqe=Qm#wL{{iXRr&ARMGvI6CuHz z_8I{Hg$J-7gy!n-EK-N55en7nBRRG{T0bN<8yIQ8!xQ*}uyx>Qqv+X$26+M-m!L6# zKj76sWU1(eKVrg@&1e)Z129X_I)M-Rzy(k!WG`Bd&%?_>9`nK!IJyF@$jSjYY~Y7g zXdGQNkelJaYBaP+6m#={e~sw2298L$A}3bHkn?N792eklDL`NpB-4_@sS%rN#Sy=1 z6^5nPg<<}+8X!nH1v6}#e8L4{TZb+#IY->ug5-u_Jj5`2O3jI+C<`>Vqwf(siZb2Yac+@rG*AB5 z(zA4b=OBzhh}_P>+?tw!5fetp+l+1?u#}O);;MHPgK?VEMue0g^K=RF^XTSoEQbMN z&IrrxFwAs+JOcc)oQy{E*tTIT0WGpU*DG*(dkTcpGbX^G5A*~Dw)DbYJOr?Zdod#r z=1QPZoxsEJIo%ChcPH`Z82)THnLInL5{@fShmP6~j2e{#1Gwr(c8F0-52tev1IN=C zR-M6YK zRK&8QyU_{q`1Eefo0_2?>rcUJ!UO-scmRhjcnRA zkY_*c4>5goKjwvK8TwXOAX%qx52GIx#}zJIp~en~D-L@lo{v~__AVsQ@hb;`!$EM! z)q|jGgkG=4bLi{lYkBxX2^6ut)&~^cZKOWBW4q!y^ zUO=woP;RN<`e&NkiwJ?P4GWXp={QOJX5(P4C| zUj6(4=t$BJKcC9sX5{&kpe~c=1vH~H`|vM=_L`1Cf? zkgrJL2@K=kg|W1%kNs{eM>WH*X}PxR_ZSI~rhX5oKw=F40r!UyX?s0_`=FfH(T)HY z$A>Y`1pWAN;G_z?apaE}7?t(ie*#V;ieMaMud4q%2uM4SuL$GH^=70Ng|>O^2O86( zZ$>dB&pQ$nT&16Qa~OS)F?}n7EBNBA6etdU#@l$Ff{i@p!jfkF$Qarqt_{22IXhlp z|BpWUF51I*!ODBMhNVFD`@m}S{V}-7CjIzdNAc@e5zxd3VaeO*g2Xt12!aOh^lxGE zc43|7kFYnSzm8z~;WFL)4{<`4W5aMRvn59yy8oYm#{ga5{jam*8WAzgs~`XPB(Z#I zK{NFUjxxgZ(N9hae$`KZGJ^A4^s&!0rjW_=Z!8f-QucFPN8$8*j?l-bq=!$7tuuY- zbdY)bham9201;Ng!WjMnKtBFO7>7{w$XDow9S&oMVF2RHa1Og;XK)*54WAvtqKN)u zXJ`kGj1S~=gx4~3&PRgHtdgzEssaggy;owWf;vV zWqhzuoaC?~7O@Hu=q<$#H>y}<5MdH^0L&_HIA9t_kq@-0*@Yv*_OPbFD_|=tCK^Fu zhv*I~$T|#UB7AETk71M9qhM7&tK-PnKxQ?OV$cY0S#viY6L~uCGH6Z2*9d(Tl z3sJ`cL!K}+i8l&Z&_cg=T&oJ?-!dYfOKjb&QRqDHc*+KT5BT$=0BQb^AibOkf_)B5 z0EF|0DO6Z64o5KSf-)?G?2h5X?n#(*2EZvo zawGJ{r16wpNP3z~2qu|yZEBDsTzgI$D*DJYEqCg{=|LtpzO9dH8cb?vqhc4J4oj?@$IZ@`#S+C`|F^JqpxxgR`3{+@f z#tP^Jsu+K^Wb#R{Oij>^^FpN^5 z=k)yX$U^VscywSPRzNOL&^3k~$K@oZs)3oAl8S1^Sm3!E$55_?=-plTe*=b;)kNhS z9TqME%S^|e6N^qlD8rGc#kRq6!ShoP{t!ruA(^fKsSMU(Yc7*MT0aWLmi5#18lt6k zeXt>lgF|RG3}RilERCt0+^JpyQeT^b?YDH031eJ83gh292OkbB!xp29^oD&|RB9LC|v84$7OkBcF z-Mk@%=6_X-z+%}DC1u#;**F5RyFx#HA&wlj>D8OYfMRFPkc89Qy?K0isxU={zJZws zrs=6R%r?OEa1{Nqxgj(`Dij;SFqrP`126|6a5{#uJ)1t#35c!1jp{D+AA->68bC*s z8*IhEH*N}4cL$js?S_9jfSAU%h(Nb~WE*C~35K_8EN9&H1cmw+C-E-FB<5ZX^moo4 z8eyShz2m{TA`NydMLFIwr^7gmH7BSCk%CT-0*y>RnZ~rKO8r0vYo{PUvQf|lEWAEU zH^9$%0icSV1G&{e$X*Xj;K;5hQ#7k*x4;q9Z+{pkvFit5LJOQ}7i07&oIYVmkJEiDBiPjFtika5Hr5(Dm*5|fbCyf+ zTnS+CoVkTD$G<(ugk7Gx0%Q=8By1~4`p6Y9;lRt)SDxEf^vZ}}bO9M9!aY|-9pc3P ztI>NHy{`s(25^dN&^`%UPh8H0fG}4W*0`LS6d1a82=2hODTp^zPJRb{20S@X58+GX z*MXeZ4MD06;=V?cM=<@ygV;Vc4ET#Z9XNzO#StuXJ#Ii%9~Bo!?;FrWAE z#;?zP7tbQ+4vCF5--O!(=XNyA^xcPniWK+Uj84NjY7)d2zD0DB&c!wXkXzA=f|9=n z0KM07|IjsGj58ui{qRdO>7Cb%nFb2KH$Gmg;@;Q)zJ|cp5cnDbUqj$)2z(8JuOaX? z1ipsA*AVy`0$)SmYY6=R69UWs>)7`HIX+5-@%bz(d;OCM6@h>j?umC8iHxDO7_pA5 zwllP#JXl_7)dE^t+$jIRaZ2tr64~-?8Qc{28xE8Y{2WsOYv0{TQ*+a1qnnPgwO!_YdCorZ?yWylb1$pGnOi7B4Ya7(PSVp&7es@5hAGZ_=#Rc8OKPzn!tP))vb=V*6OC#o>1JVJ5#X z*}e_)&6z|YU+JPU+E-DbtzF%?x@J4gjAuT~)7y6ryer%|xOw0a_K4w~~CkBKh`g+@q zG?132mvGt#*9#u6Pygnevns%u!=*0iE&B~IM7_QFV$R;$eqhJtfj8Ot(OLfw(o zEoSg z(`B@~W%c@HjZH0kY0AQx)ZMUp)!L?w$EYk6ETKo2tZvy**V5S5(zIj+MpXJqeue5< z`!cByB=!nT4dt<8t?ODNf}q+~ENe~CRK&xZS2nF&9VgGcIH`Z4<`s3DE-WT#15=A> zL;Z@?4a;>Zs|+Gu=;CEZKl(_v8jID(zdlNbq&i_Ep1!5x^W#%t6WD{ELqap(9+bj zY8_3T+rl1O(X_O#;lj4&WsQvik_y>f@h;6Tu$JuFDXp!o1$m9g4L)twtVz^Z4ix-a zmVYa|GfzkxmH;iavxukJT+n)+WUG{vdF1hz$a=Z)J4qgw)rDkTDmkjDTYx{-vw-A7 z+|(vH<|DgyN$$mRmVU`mL+;E?Qd?UukWov_^j*oZ2$e1mNO;kVG+VaaD>)YtTf8&g ziHq$SG2ojW$wb!Joz0T-b%`9cbQD|L6-#%vrH!sSlG~Z-)7&f>myB8XKgem7xid`a z>b9PE=1C&+OxbZBt?D&;le@{hKz7WfRXwqb`{$BHlO0vWzOv@cBj-gjL$_qcNbfY# z4Wu}C%H*i0tHJA?F-WPiTtyVBS*9bIdXn>bxC=pSFg}&d(BRt;_8fNjdU!lD%XjwOX}8b zj1X1%!r?NKZm`HZl~y5BmMx{dOA`LxSbw|WqU!b@<8q}2XrD^YX#(MizMdZK(o2WQ zaz3?c#kjN6y2e)u0ah`6iFo+1vHg}sv>Nkl_7Pvc1!Mi>^e|Si zWgnStRBcz1<$J0!LYA4NE+xlX#NT7Z6@hMh>vF?LWpuYYS!Y#NyYJ|XXHv0jN4JrF z)5h*H<@7^CF->UHXoglhW>YStH5%k}*jqF=5yS7^!~~^km;B3muptRKnSj=~hDrhz zS#sAr%GiGH+4BrJe?-oYS-Y6nmw_@!bj7#!rRxh$Su=ed-C8W8btiXeJxPekSVHSd zb;h#q+4)ANN4rxQS2{INmIm-ZASVo?Q^?SdNs85r`5L;(@(Ha0KB3R@7T0LOCuwqJ za#teCHVB2X_M41B&O?rUYRm5kvPNxJck)TvfgV_^Kki~HS#d`D^^D?J`aP0<$=3Ar zYwd`74M?(HBeaT1|7KM{hL_*ov>V%K z%|cMmCXe}u@S8A^F2eSR6G?h2P3CrfNM(Y!m(z} zD(*2R5&sj-1>nBJ5AKZh#DNr}^97RsB|Gn8lBe`eR;A6ZRhaF0#-Ct}(*xLZqanB^ zYuxWFFqSd7hT(@^T#LHm9T}!vO(DQ(GF51`cCOl@Ox;IU0Ihy;$cO1cae?B#^is|D zu4+20uw{%dCg}{9K9TixnXlLy*e3qcm#GQNyS=*T>HcIN)Fq&jiFbA|?kDyqvpOba zmStL#y++GiZq&gVNNnwuOa;=88m%kVlQB4xt{~+;Dbv~=OBFh?Qr`EK?nyQx_XPD|>A!QO%J~nkH!2!4()9PdGMi10=-`05I zx9;MKififAB#c>>&>}6X8#TXRn}n7Ev|?M0jJ7MD?N0V(wOB`ok-3oA4=7)I%cN&Y z7qL^qT)_&M77*<*y3p%!mAk0}(9IgL?|S8l`7sUhJ>hTn6lSCHsTtr(zmRfmJ+N|W zF>q_2Fd8%EXm8DSmx((WJb>k+)uq$1et&>k&euZP;(7G3JO>}Zt)*pJ+jcBltA!R> z$$g$i+(CP1&n^{%H_xDE^xM)ytbk0{T0T}&>3AZ$0lNTb{XVfBUzzp`;)5hTlF#c^ zT1;LcZQmLN)(v5|_p8h{hR4$=U@&y^fEZv^bmNhM`(YmwQ zRHmk)Vk2Qfy8F zVrEWg4&a_Y=M}l3B9WZ)Ug^Ww%AB6$RuJ*l>+qXwkI8qGr_#x6QfQXv>78;x|9-$Q zlZ1Zzf){ToOWP{(S(DXYGwCzNPq9;65MpP%Q;-HEaMoCNm;HH|N9z*3$v)UAon;QC z-z3$jiXoq}2)bF7Os4#)zIM1m%Ru77tSz&tP<*Q()=T-i9A)R(*&p-3{}aonl3LH% z4K{hZ-LvXC)v}bDXU)?5ZrWQebY@Sizl=&Ry);Y3<%t`qP6)A|NX-pBvCKM2h`niQ z9nQD>X+_}eR zG!j=N>0_%rm;GCTu+d`eP_Yo|T3uwBQ1Tu5Dq{I zuX3z~(bE;*;%=#cN?chX7t|cevwn}vl585Vv(q+yEo%`%ea|ZvOEv2P?Lo-yW73;k zzQW~B{6aZJK*P@Dc0g>G@C)OM*_!PM*dcXR{v{piFkqj9QTi81#k-6-)>Gy{Ad$?% zTLW*ggf_`T5j$VX{wy3AvWl3l4dbu?$rL%PT6G;;zgjdtWF&1P3mb zNx^1#WSYlVLF^>!5Ehy*qe%C6!|dwljwQAloj;L^qnSKsJ8%yXKPEMb2_2j-CH4RZ zx_f#q;G8pEi%w$7QH3Ao6QW#ZLE>e^m(Yahcc@_ldR5R;5e+D!xsCD8No4ji=OGwD zli5M&ot{pZE9r@O95vy~DSz<>)xC$wG2z#04gVqOk5$S~VO)Zi`|eYve5Qh2md)bz z#2e&RIIX?L<&0fO^T0+w=JHmJ-_IKb;oL~_VG}E5br3a)GZH(TzDsPAQdzFmeOX!Amoa|KAqp?#`#~(d zec*`-Vt=JZ4G_PJZ9?!Nmi@Q#AmA786_49{LNFL;;@U5#U%s^uv?fWIp5?K z^T+tvuN#>2Bkr4+hOhPy?)Y=7h-$>NOkaD($o`Wvr}A(z0bOA1j%Tu&-`e)JrC>2) zcYmNt;NvDHzbQ%JgUX=C@+H$lc7CZnKd_=CgmYg@5@>B3IbY<> zY?@z>_4pY(#w8E&QQj)%Z$Cut&I?T(Zy2voq}$ET=ad?@!zNEIa{gQ?3*m5oCg&fy zSwi`z4~O4D=;8Bbl4N;}vsWBagX4A~+>PE;wtw|9Sy^C}rV}rqE6Tgz0A6hP;q$vy z>H9?u^|6ex-L|9K=t1x!^MJJy8{DMuU-9Btb}2K#jD5~3-yl!WLgpPIKa^G~Q+ea;$;KQGqVqlK0OxZ)$D)3R( z?vAxrxQ&`QyjNk**SOO=I1FsoL*1g6R=b?BUSej~e`ZoXFwKQ8H7q&bH%*qOPSMkbtT^8>&33+RTIBp5Ih5-P zOsCCkzxkAu?n`Ky{zON2I+;lJWqSI{ZY4JEaQCk<$BdnjJ$-c^#Me$tooRGlcV2P1 z*2JnhVu>2HUAQ61RG()ama3Kc`6}z98^ArrZlj|wdyied&e|yOUm>>(a*B0aOstut z9#ej2*KDo_l#8te+7oJFXEV(&)8e~`*V^;7TkZF!k`SwqqL_D*^jKG4whtz*AF{Q8 ztt^EaTtdo=&d$D+nEdr=>a8}VY9f0rzcOo-&5)H=c^^8hh4F3t&;q`}X0`V7!}sGT z!oTcFCwm{U&MXhSXktHfDG$iSy|G)E{AXg*tWP6qX~cILh-;-XZ%g&rT{3co6>UOukJB@Fc#PT`6hotMce7lK1Am<|_ z;A}HFCnn#dmTVI1ci{V?T7LdwLrYw5a(8v~rQs4@ZdDJG^JY^X_otI~;3;|&Cwva?^x<3D1&%FZ`A z+~qqYsnhGcMDm)dT;^{|^7B^wq83|V;eDiB!r45|3l!;_T&^MKpi7c6oHZ2wN?6gb zkc>{KmOH1Lit?>D6ix6IQGxF>?>eF2^@|Jk_Tt=-pXu$6P)Co^G;?oGn0BP&+f44v zQ;HOEJPm$^DFb;5%A0RefA4W8CQTGBww6jCH+@DBqrD=c4eMijrd)r|Qh=WgH{X=! zc!JDR$v#4LEk;-DPlfD0HH7f_2(inG+&Tra8``b3Q-YcC4(avP16?Y}}+h`47oGE>8l4LOM zrM_~ALd03-GQNmrl$I7v$~(j)6l<4lCeLQPMfw$zUsKiXrge>dy}ht|__L%8F$UB8 zE;dW6ttQhi7+0ATP}>`l2?(3tRjVTw_KroK<2Yr?bVJXBh=CS}%q;wBVMuo7Ey^^k zTawolfm9eI=d!%}S%+l*naTN~WAa9!CsKthKl0SnfL0q~mdDwAu;!|dUdATLyi77pR@P+RJu7Xfew(F;Bxqo;tDO=Qi`-NO}~mv1a=t z%rJzO*$n4KV$$a(=O*IvYw(C_4+ajFis)B!GL!A7xgALfs8cvMomV?T+xjx));bZ3 zI#$8mlIb7J`e22;g&=&&sS??bC++;t)g`{t>t^bD%iVeG8cFX!#7Ff z3%K($vhwxBf9JKXCGL{$5CS0sq;+)vo7ui4)nb+(EOghrDLj2i7#{c{ns-FGdj;z z<6K3~r7K{kwGf9$tDR%|l5>?y4?7D>PqE7Kk`hFIzd$(dW|-fL@~$UtDsd<7k=(W2 zl6s-o3ASbHlBN0dn^NG-R}NOm^z{xiiC;mMrxrO6kR+Yren!rRnaX}OftoO-ufmr;cy%NURMvMBi)#h>VO7vd+~r1pfwQ|6aqdLf6siFy!xoIqiq*A)4_nvk^|+IHh47w#NqLo|Z^Gs`{Z`n9 z>jk+B#-B6ae1u&f6!u!C{Ju1X7&>4sooB{RuS)@SR@rN`G)ySzbUir zbMmF!QN-qA`*)N11UZXX-eR1-h|OcmMXTjp%f*knGUz0Zx}Uk1o@DZ7r%AJ!=P~)| z0Q)(2*DVSuF9+n^%rea(zhIhP9FXuE^g`D-%gJQON) zGO^xt5qn$%J-~!nu~DtacbA<{QedK?xA2RBgYN__t^=ka?8PJ$IR8dqHs?<#t;+IW{r?!*Y}_ z2JDaWaqqbvv(GgroNLW7gkoOS^`U88MQ{j4Y`sy}mrdsMok&vO366T*E|p2_KdRa0 ztVG)I`2tVF_op&{wYR*_Q-vGI#=T(%)UAA=qH-EHHC!qR6T^a=lFD9<9HB(@tl*1 zznABO{_|S-p?vAfNuNmN+6n`((_nRp$P?JEnm*&$Evgh^T~G!ZB0ffqR+QJRK9EhL zqF|0lht8SDHqSvXJs8R_+rro3W9gzFTLj&{!aU9bh4ar8W>Oi{f{Uc@&T=o2CVTsR zMRQ^6DGY9n2!J~zuh!QreV>VxdoI%@LNlFMamRG|cKwvnA!1bs)n}oU6Cy-_$n3w% zLx@GJLCUt`#&{ONiJnZd%o2jOd!TSWjQjq>5opR_oH+pSm%i~R#v9sJtyWW%jY(hVxc|r-U0A(H7dd|D$^X* zytDuTm;8za#O|6}obKI5{5$vwmNK?~25WIPimIC3Y(lMzpO0dnvz~=X17S5nhIuJLWeM2i_wuxcdoX} z7nuYTXOQ^4vOT{`QIRyOf>U>dCY9eq?zZ(9^gX5&k*Ube5TJVAUL5cA@;a@nCzh0@ z6=uBL`L$38K5|U*q&{CTGnrUL{2P;XV|S#kMH9h0y=(y(_9qfMBJoSg*m2^YbhP9m zV9V!=n8+ZpFV#kY$p@tT&U+`numKL$%2*1~j}GIu#mcrucE8DdGwnm3qF02u`MpCzpX;n{3i=#yG^2f$%xfzKjMtF>a*4 znsQ2pZzrfA)t45btW24<3#AiEf_O(*KCh8Ivf_6xN^eB1yjU+0WFu2s_*>v&WRW#-{b!WUj_T6UwW}`8N_Q<6CcYzD>=}$&92i zY7+GNBa+^xsrA|w&(hl8U&r?@1ad&W-z|1NjnJ{% z#6D2(hdeUG`A|}EbUk~)Bt6cgjVfCWw~M(MGdY*D4t5DCKcR_xUbg1!6`At~W%H}5 z35cIcNFT7*6w^|221qrP5P#ol`g^{Fa4O=4KT%#qaU1wkYsh&^2N)mnn9o=xw@H4k zYRy(qS>i60{na$FwQv^OX_ca$`p#rW#!Yw3iKXJ@-Pzur84X-IfNY~#e%C8~gG<{H z3N-USNF_*9ZZelKk;-{j&ABsm%H9?Pg;15!S-0?Y1f*~_xGEx_aRry>)8x!PMY)&N z3nS3lR4>XlW;3~v-03&nd4Xf zB&pJ-Oy|;ABYUkt&iME>#J2ma7x}D(ljOOytrUiYR(w%WQTakr+Nij+^lmE2Y_6pV zTRvhcQsgsO#~$IxHO!INL+m;LPh?MY}QEn&a}evd{SZl z&u92m3x0ioeG3ASLO9)9-10kaegfVZQ{Uz#TJ0~1)f3!vbtkfj^1lQCKm?+I0=ng8 zcz!)i{HEgKWS7d=6_oEAR73FBk$f(Hw8#-Fxx=?EkxM}Nw1*t(A(B62RT#f%wsXql z33+f&e?@$X&3RAZ1ht9ODNOpKiM^j^?KV04oeG;xPICd{zm~n3Aj+_h23->(kc_=I+|6cts{5&JeSEuEUMZ( zggA~hpV)JG7B6x0Wc7R|RWbDk!cpTN#yP5j=fS!=tqYCUp5nO6$4PwcVL)e5Q()Asn-D8xzKV(|`ErH13K^v&n}{q(eX>2){pJrGp-uuKHbUk<5d-|+AolGdoc_sBf{=ZLRG;SgY}WlRl+97 zyoul{Pgqn!NCL2WoAaP8c#4DhTT#!M$byYU5lPRDo+_NrUlTI`zqD~m;-#vB_+ZS= zBUb0jHi`Wl!cTGDqA(Rzm;Wq;DI*Q(&ZliUKQG@|Vux(bqA?zZxgR4)Qt*y#Jbo|h4?VI5# z-OHS>TZBFDXtP*0ka`(eiy8ZDN+pVgo?_}ORAkw$)=thYv3eWEZO+T=Ff{3nxqiRyf0QX%i*mIanHDud%)al>ZeKbu$u>`XCBJ>+cnOhbZYW`T4k zne!)m79$zC=ixjynWVQUuYHv#I)_-z45_fl3~p>$H8W80T#>HD=aoWEc>Hx_w#ia2 zNtYFK4N)^$j>YEU9C%^tR}$N6f!(eQmb1B(_w6EcJNqOTx@c{JAteeGA=G^3_6iik zm9DFwg5SA8q~X`rmZnTcEcF{}-7Z81-*l(pcc6G6{*URhUc)LUvoY`NcxTgj{6ACO zd(MMtV|E+sk$(FPUb|{x3Z$1~GB2j(8sx^21qj>n3moc3g?%-dRnf=PVr(^bW8sR; zwKZERwwjr|Q{}bPpI(9L@xIij-j@(Q(|ol)6sXh&CoU@X)l8(Bl|EIn73U+)R@~Y8 zqE@WcK1|Y@B9DIxu^VYZ*;MZKzqP|WLi`urDtP|ykaQQhHwUO-%L`<#Es#Rg>MKFT z%UO~jJcDG3N_XVyyS242+V)IQ2IsHo=td>?JFE`+D3<4D%H;i!7P&f`H}*?c_@&=Z zmtNKQ_nGP1b?mIKcxCJw6WdbAucpg|41-&iE(_LoLaJ@ztcbx_*D5ZmnEf*rLRsqb z5$QE5T31cW{0LrtzDY8%CK1Kl#Sk1Y!C&x|%&Pcin7ziNkNBFU2ArwW1?(r>lNn`= zP?6bb)7FaAY3w^@RyO6bT>d{}%qnJ5pFC5m3!z$#+#O3IQZ*tXvFm0alfk|vOIwS1 z>-2+rU^R9E>dRDOVRFYOu3m=n{H|J97xCUT(%m8FMUrH_Q%1Sqp6N4}8*P(4Woa^h zpRWPCHYQ7SCcA%^3yllwR=C8icD8G(-qWK`+kt8sl(qH$a;oevj^P^w2w^9fbf_8S z)-!e)jVnH-c4+JEC@Ieh*Cf_so4K{ARb=TGPL+S^nVIZb&)9vlcvxXOdJqdT&r_s) zlAbJM6Nxog_8~2d`jmL~b;)PwA^ z4{}6N-EAL`^G_4GJc9&ukQQioP@P+=b!gn|U?i>f9*I56*NdEjc8z87>>-7}NAQt@rCLo5Sy%Bo zp}9-sP> zf}ib?7GV!3Y^EAofV5~HxT^NR1gmwTshGTF9p1fAjTxh^r{_Zgu29RIIWVQTGg)5D z%Vc)vEVhnKOuyy9#C$(PkwG;q2NP$qsYMi%6}RwuVZEU^poprGUwM==!mKaV7I&!j zKQK1MWO|MeUj8lO_7y%2QWHhtvoDht;SdSN$72UjWm%r;%XHsPwo+0fvgtRhAoLri z;-wqkkkqNfR}{AH&LSIAvqk=lKZ6nw@l~1zQ6o1xxe}Pm!|Sk2Yfy~Umnf9Y%eNtG zr@pM3w<3vWa=s-wOwUSK@>>q|3CjDmgi^wprKKM=Ij@B_u^Ie3Q>>*bt0Pmp;@cd* z$UYC^eGX&3E?&)~SIIsoLv$@dLh?Q)O<~A4yJxT9w#UqNL`I_!?XbfiF{^f_{*|%! zr&|9&tkQfaS5co#FGXpF{jAMc!?h?prT2c;EAoe7;-q z)Slp$CZW{(ai$Fj`^~9fGaSxmB@3Htvff1Ohh*xb{&G-eI&Mtw0@XM^3BHZEL8cV+ zjNGTb?h2%&me}9TkJt(I%ZuB{FJJeK0!=)_IHg2}$!$D%cm~ z)Gdnofe7X*K+4o5$a%647++n?Tx7~;w)dF)ALkNqMQWwU$AC|Gon-l!>2oHuA?js% z41Y1|#f{W%dbwQGO!`Yp%TcJQ){E{%(q3pA@wj}oFYgj^_DC}p!$Wz85d5*4ecAfsIZO{>#-L8zIq ze6V~Q$}Rk;%Kf9-;@blvy_l5aWPoUp7JPYOWv>x?V&z}34-~E=HrkQw=`r4NnUG5= zdvB|JiPgDUQq^xWs#$U9u4`$5hPc>BS6_stm%39Bg zq6G!{(KlVrH+++rEniO4T!^&%{3_IK>{{Q^i70Vu$wzK(FlCQRemlso3bE7X2N9O* z7V!dP{|uXa6Fq#ca!|WuabVANOg&xFD7fQC^O!M34UznTa?l?T+4OAbo;$pIMNx>D z*g;ZP09D|KpRS}P~9lNPsj2)Q6h&inXusT_wGaJl!~&beI# zDQxo*Bp^gS%~vw^h!tPfF~7+ibBS-~&i=(bl$brc+P1b)lowZfL-?x2iuuYqaz4gr zdg5V5`~k}kVd99olD@6oFH6p0`5SW)A3{{H{v!1u`2l=x0(zEU>wo6XhvXzYRCci} zW2^D5ElF$gGQ5QlWgd`*oO(0QC z5hKk=$c$#hj0DJlZ7{gvj$2%UF)nehaWBLrPOu$!CwAfzf9<%$G0na3+h^pT^VWL5 z_11cSzV#rnrra{;o_p>o`?L4{5X)31a)DzD_6cDlLX8r7!w^D1`bo^VS7^p8@JNP8 zvpiL1Y*C7JLSpO>3HG+b=tJ~$mo0bOCB%p@a(P=+BJh|Ku3>DSLJ#VOO>=Y>0~HRR zc{aU!oIezM-p-o!BnC_bhZ1>xc%(|pEFz$Y`&46&HX#qO3u2DuSjVO7=TUwWxMA9<9nUa(X8~1Kju0@ z4=Q*(hw7Zk1FnL2?4~U7eKQD@#zGp*i^pzXBmTwt`L*=9&EXVm9JFK zk=@&beQtII0CX^6pO~QN8+o7GnRtH!{Vt!~Tf@=|FUR6>jN;Zu+ym{?DnQG9w7l6D z+7w!zxg85NL}EswU8jVk8fGL>)JyN6+5l4qRrWEn=9#p)Qt##n&JuhIb8HD&oUO~J zuq`TkhgPEAeoHgg`iXn(KXrHHPDn*USp8TAM3cl~hg79k=sOvG%5Fh|f%l1#2yi-& zG@-=@H`FM57dB%>n|NfQdR7;G07H5fKp4}Lc7B{-A){PxW&dHyRVMaSC7-GMAutBB z3?pPZGBe@m-E-0JTE+;j%>%=~Gw4kwqX3=c@2tv(ab?B60`L$1kfrY7)a@`j0ommF z#)%I~%P>hrtIGQ!jqlnt&i^k`Q}1hCMhn+P>Uu^n#l)N@yr`Ui>h*+PWXhEr#CbFn zt_Kgs|AoU|Ox1TtD(;(W20!Ecp!KY&`i>4y$!U7G?A^O(N!5r(8A#_vy)TrIg%*dkZ4bz#w8S zE~N@=<#fVUP(R`&x!T{D=>x*9tjJG9Hq*x8P4PXTOs`Y7dQvxo2k=DJt)UhAxI>3O`VI&NKUX5g3S^(8NZ0(GYL5^ zfQEIEfkTu|bI_^7P07em=xXmWbjZes%7Ttq6R{^qo4nhbu420| z-vhXb-ea>|9 ztvfmw>EKgD;+yjvvDb@>B8lr+2tR<`zq8P@NdeeZ*EfwI7Pvy^tEt1+O~fJSU3m?z zB%K&4vm3W4CiWx6P+~1$MyX1a65N>~IFJtnw_JTjvgVsMR`0L|JzI>*_A~ z5TGxrpQ2?3Tqew!PLh-QyvrE1aSYp{hd?5#G-9uLoLU=+aeId3h=?NH(fOU^b@cnD zl`?m59#Qf{?sOnr|53%4F2mlQRsquapJq2>f)V?hiJs(9l0+|%1UWsUx-4B^@K z7|?bizBRG4nes4EFP5BCN&sdtBEm$<-%RWaw;*s ztr}gd$nq00EhWY!gcyuMajVhuG()8}(;%6GBhrYm4Vw&_?yXFtE#AsK_~f8j-byFU z%Bch){&a-X-PCL<*3C`1#)!zU`k97-F^%SFxLi9ZQ&5ul8va6zQ*f-An#AP-zffds zQ555Bof~fx#n_JMK`T~vXDO8eGtRS=4hGn$hgzR_fSL5nO$nYNf1 z7swI|n>L*o8B8%&BYr(-mU>);J~5vD4^qheQO{Vrk<45R6yBT;|6^Kfz8=BqNM9d9 zxxu^y`*zkwdC#%r8{FxNTk@GtqX(@@2hsYWcl>gfH#l>tTz{GWq#K6`Gk`Ogk8t`s zx5-Jc0 zkZzdF_L(5RB@fi{2j^-n*B<5JICO2$AVDyPwG)Im;i>`tqe=bQCjN!M z4FiTh(V{jnQHa~AviT-jO3XbojbftYR(hP~hZtKA$_4F{59yLv@5UbRg?yzIezHS; zvk)`Q8@)U`ONumOwT^J`9J-RSbmBZY>~c3e*QAVhEs><7_Atp$1kPBaKgcAWm_ZW3 zZmEYEAuiLkM92K^o*a5p)ZOsqnn1AIoFnJrpFr*cEk}y_j+Ha|#J~?Uv{>pi2Hy7Y zQ5)ETn>Qx_aRdGnHx4Rs!iwd}06`iRJiA6}6k%b1n+#N3L(EXH-%G+l^s2GIe3}S= ze=rh_=y_HL6|HSNMAdVNr(riSs=ytaNBKi;N9&W}I$Z90WZwZqykDXOvh-iO#dKnR z+%2-LbLGWNaRY>U8tw@pUw9O2_krF^_BsMzxxLW}H(#3q_JF1h_NXI^-usnA&xt9EQ!SR+Y{4?2Je4=?Is(_E^B(wl18zXhGz zX8sqsTFxp#%8Vo@I2F*Kw<`7zkdByIKXCARg|0{UVy5h`jgFBg0_@r~=5f^6V;iq; zAnM=ct+!O9+3!l5g%Hck@nG)@@J~3kM8(h7ZU2R_-F|f~o$g}e$2lUC#<5UKz_<1~ z5?U*H$)RIVkhn0XoKx{?%JKr_e9%!NiFd=7^o`1~e$cn+@0o#hk#gcnCQM!75)iyA z7l{5`_Q+L;jqpdt6%P!5m@QYrzXd2=VzPlZ$@=D}$af!KphTCk#dA;TjUrwi9X(uu z0-J`+N*BWcMmM7wqpMkF(LRz>G$_APU+ZGan1M$|-;*z!#$E~GTPm31Mu4xtQ7@@Hl?jkpQ zL!JP&d>%2L01pvB+LZ@}W0*?@i%R}Ul(qYY8+}DGMpZl?h@N(pNnYJ$#2<{#Sh!3Q zaLYGSEd#TvTM3BOnc^={bfbX1y^*0|1fvm(25yH5ps%v%D-*!c1juzMQkz`R$S9%Y zZ$C-I8Dx+29e^~~S9D%x7&U`2+SJ6Z*hN1*4Z$WyqqSy3Qw-7AaCoDALMWOf%5$?H zlwG!Dori-(8nurw{Zb~rx3Q0ixWh)1y0V|;Z{2ztr7zE+AL;`0tqMBM{|>cOP=5DX zj$tQ{GRVi`)9f@s)N95;nckZswOrd%g8*Aii~1}x8E$qaavIoqw80oQJD>c&*nVs= z%LS~fo=`Piupi+YP3pl-dePg@Q!~^bV+KOjerGUma8}|-T zwTsn<6!UEp7Rjp%oYSY(*|b5$G5kI&Y-mVK7poeL?VVgX&2CvaeLIS_0FZqBYmNEw zzQ7eth!MuyEcCM_&Z3j==qbWu>?@iQ1SOlg27(Qq(0g~M7gyTEorK;@91)*$f6BO} zU(%B9B8Wwb4IA;78JcnZol4%;t&b82VjW$+KKk_Cl5E0fZ8Z7_v5((q6k^`-)}3V1 z)~z;%WKBZ2sOd(^PPWr+&GbzwHWV4RDU@C{&j{*7nQn-?iP5E-ah%B%&c`Tk($C5> zFcw%N3dR?+^_#o-Q`C3~_k7`q=p+@89_Wlgd>>C{bQTd~4{lnqU`{7U$aF-}TZQ;p zV{VgU_-Tbs&Cg9-$Gv&aam7>ogB_E_!T7;W_ECwrIjFtTscf;UcbLShCjL!;7Bj

*ueeUNjEvcqy(@Yu43v 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

QMv!A50<8r^}gm4*Q$4^b4M( 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�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