From b7db64e3ae3df1ecc945badece9e3e00533a11a1 Mon Sep 17 00:00:00 2001 From: Innei Date: Sat, 2 Oct 2021 13:11:40 +0800 Subject: [PATCH] fix: app config shared --- .github/workflows/docker.yml | 3 +- .vscode/settings.json | 1 + package.json | 23 +- patch/bootstrap.js | 41 + patch/bootstrap.ts | 41 - patch/global.d.ts | 11 - patch/tsconfig.json | 34 - patch/v2.0.0-alpha.1.ts | 30 +- pnpm-lock.yaml | 1166 ++++++++++------- src/app.config.js | 63 + src/app.config.ts | 52 - src/app.module.ts | 1 + .../interceptors/analyze.interceptor.ts | 72 +- src/processors/cache/cache.config.service.ts | 2 +- test/src/gql.resolver.e2e-spec.ts | 52 + tsconfig.build.json | 9 +- tsconfig.json | 1 + 17 files changed, 909 insertions(+), 693 deletions(-) create mode 100644 patch/bootstrap.js delete mode 100644 patch/bootstrap.ts delete mode 100644 patch/global.d.ts delete mode 100644 patch/tsconfig.json create mode 100644 src/app.config.js delete mode 100644 src/app.config.ts create mode 100644 test/src/gql.resolver.e2e-spec.ts diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index c0e648ec..42ecae2c 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -42,5 +42,6 @@ jobs: id: docker_build uses: docker/build-push-action@v2 with: - push: true + push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }},innei/mx-server:latest + labels: ${{ steps.meta.outputs.labels }} diff --git a/.vscode/settings.json b/.vscode/settings.json index e9c97a64..fb8d91d4 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -19,4 +19,5 @@ "cSpell.words": [ "qaqdmin" ], + "typescript.tsdk": "node_modules/typescript/lib", } \ No newline at end of file diff --git a/package.json b/package.json index 5b460cc8..d977b3d6 100644 --- a/package.json +++ b/package.json @@ -53,18 +53,18 @@ }, "dependencies": { "@algolia/client-search": "*", - "@nestjs/common": "8.0.7", + "@nestjs/common": "8.0.9", "@nestjs/config": "1.0.1", - "@nestjs/core": "8.0.7", + "@nestjs/core": "8.0.9", "@nestjs/graphql": "9.0.5", "@nestjs/jwt": "8.0.0", "@nestjs/mapped-types": "*", "@nestjs/passport": "8.0.1", - "@nestjs/platform-fastify": "8.0.7", - "@nestjs/platform-socket.io": "8.0.7", + "@nestjs/platform-fastify": "8.0.9", + "@nestjs/platform-socket.io": "8.0.9", "@nestjs/schedule": "1.0.1", - "@nestjs/swagger": "5.0.9", - "@nestjs/websockets": "8.0.7", + "@nestjs/swagger": "5.1.0", + "@nestjs/websockets": "8.0.9", "@typegoose/auto-increment": "1.0.0", "@typegoose/typegoose": "8.3.0", "algoliasearch": "4.10.5", @@ -117,9 +117,9 @@ "devDependencies": { "@innei-util/eslint-config-ts": "latest", "@innei-util/prettier": "latest", - "@nestjs/cli": "8.1.1", + "@nestjs/cli": "8.1.2", "@nestjs/schematics": "8.0.3", - "@nestjs/testing": "8.0.7", + "@nestjs/testing": "8.0.9", "@types/bcrypt": "5.0.0", "@types/cache-manager": "3.4.2", "@types/ejs": "3.1.0", @@ -128,7 +128,7 @@ "@types/jest": "27.0.2", "@types/lodash": "4.14.175", "@types/marked": "3.0.1", - "@types/mongoose-paginate-v2": "1.3.11", + "@types/mongoose-paginate-v2": "1.4.0", "@types/node": "16.9.2", "@types/nodemailer": "6.4.4", "@types/passport-jwt": "3.0.6", @@ -140,7 +140,7 @@ "fastify": "*", "husky": "7.0.2", "ioredis": "*", - "jest": "27.2.3", + "jest": "27.2.4", "lint-staged": "11.1.2", "prettier": "2.4.1", "rimraf": "3.0.2", @@ -156,6 +156,7 @@ "webpack-node-externals": "3.0.0" }, "resolutions": { - "typescript": "4.4.3" + "typescript": "4.4.3", + "apollo-server-fastify/fastify": "*" } } \ No newline at end of file diff --git a/patch/bootstrap.js b/patch/bootstrap.js new file mode 100644 index 00000000..38521c33 --- /dev/null +++ b/patch/bootstrap.js @@ -0,0 +1,41 @@ +// import { getModelForClass, mongoose } from '@typegoose/typegoose' +// import { config } from 'dotenv' +// import { ConnectionBase } from 'mongoose' +// import * as APP from '../src/app.config.mjs' +// import { CategoryModel } from '../src/modules/category/category.model' +// import { NoteModel } from '../src/modules/note/note.model' +// import { PostModel } from '../src/modules/post/post.model' +// const env = config().parsed || {} +// const url = APP.MONGO_DB.uri + +// const opt = { +// useCreateIndex: true, +// useFindAndModify: false, +// useNewUrlParser: true, +// useUnifiedTopology: true, +// autoIndex: true, +// } +// mongoose.connect(url, opt) +// const post = getModelForClass(PostModel) +// const note = getModelForClass(NoteModel) +// const category = getModelForClass(CategoryModel) + +// const Config = { +// env, +// db: (mongoose.connection as any).client.db( +// APP.MONGO_DB.collectionName, +// ) as ConnectionBase, +// models: { +// post, +// note, +// category, +// }, +// } +// async function bootstrap(cb: (config: typeof Config) => any) { +// await cb.call(this, Config) + +// mongoose.disconnect() +// process.exit() +// } + +// export { bootstrap as patch } diff --git a/patch/bootstrap.ts b/patch/bootstrap.ts deleted file mode 100644 index 34577c16..00000000 --- a/patch/bootstrap.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { getModelForClass, mongoose } from '@typegoose/typegoose' -import { config } from 'dotenv' -import { ConnectionBase } from 'mongoose' -import * as APP from '../src/app.config' -import { CategoryModel } from '../src/modules/category/category.model' -import { NoteModel } from '../src/modules/note/note.model' -import { PostModel } from '../src/modules/post/post.model' -const env = config().parsed || {} -const url = APP.MONGO_DB.uri - -const opt = { - useCreateIndex: true, - useFindAndModify: false, - useNewUrlParser: true, - useUnifiedTopology: true, - autoIndex: true, -} -mongoose.connect(url, opt) -const post = getModelForClass(PostModel) -const note = getModelForClass(NoteModel) -const category = getModelForClass(CategoryModel) - -const Config = { - env, - db: (mongoose.connection as any).client.db( - APP.MONGO_DB.collectionName, - ) as ConnectionBase, - models: { - post, - note, - category, - }, -} -async function bootstrap(cb: (config: typeof Config) => any) { - await cb.call(this, Config) - - mongoose.disconnect() - process.exit() -} - -export { bootstrap as patch } diff --git a/patch/global.d.ts b/patch/global.d.ts deleted file mode 100644 index 1a13b8ae..00000000 --- a/patch/global.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { ModelType } from '@typegoose/typegoose/lib/types' -import { Document, PaginateModel } from 'mongoose' -/// -declare global { - export type KV = Record - - // @ts-ignore - export type MongooseModel = ModelType & PaginateModel -} - -export {} diff --git a/patch/tsconfig.json b/patch/tsconfig.json deleted file mode 100644 index b68010be..00000000 --- a/patch/tsconfig.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "compilerOptions": { - "module": "CommonJS", - "declaration": false, - "removeComments": true, - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "target": "es2017", - "sourceMap": false, - "outDir": "./dist", - "baseUrl": ".", - "noImplicitAny": false, - "incremental": true, - "resolveJsonModule": true, - "skipLibCheck": true, - "paths": { - "~": [ - "../src" - ], - "~/*": [ - "../src/*" - ] - }, - }, - "include": [ - "*.ts", - "../src" - ], - "exclude": [ - "dist" - ] -} \ No newline at end of file diff --git a/patch/v2.0.0-alpha.1.ts b/patch/v2.0.0-alpha.1.ts index cffa6ffe..4a4f7c1d 100644 --- a/patch/v2.0.0-alpha.1.ts +++ b/patch/v2.0.0-alpha.1.ts @@ -1,17 +1,17 @@ -// patch for version lower than v2.0.0-alpha.1 +// // patch for version lower than v2.0.0-alpha.1 -import { patch } from './bootstrap' +// import { patch } from './bootstrap' -patch(async ({ models: { note, post, category } }) => { - await Promise.all([ - [note, post].map((model) => { - return model.updateMany( - {}, - { - $unset: ['options'], - }, - ) - }), - category.updateMany({}, { $unset: { count: '' } }), - ]) -}) +// patch(async ({ models: { note, post, category } }) => { +// await Promise.all([ +// [note, post].map((model) => { +// return model.updateMany( +// {}, +// { +// $unset: ['options'], +// }, +// ) +// }), +// category.updateMany({}, { $unset: { count: '' } }), +// ]) +// }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 08d9590d..f3897c9b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2,26 +2,27 @@ lockfileVersion: 5.3 overrides: typescript: 4.4.3 + apollo-server-fastify/fastify: '*' specifiers: '@algolia/client-search': '*' '@innei-util/eslint-config-ts': latest '@innei-util/prettier': latest - '@nestjs/cli': 8.1.1 - '@nestjs/common': 8.0.7 + '@nestjs/cli': 8.1.2 + '@nestjs/common': 8.0.9 '@nestjs/config': 1.0.1 - '@nestjs/core': 8.0.7 + '@nestjs/core': 8.0.9 '@nestjs/graphql': 9.0.5 '@nestjs/jwt': 8.0.0 '@nestjs/mapped-types': '*' '@nestjs/passport': 8.0.1 - '@nestjs/platform-fastify': 8.0.7 - '@nestjs/platform-socket.io': 8.0.7 + '@nestjs/platform-fastify': 8.0.9 + '@nestjs/platform-socket.io': 8.0.9 '@nestjs/schedule': 1.0.1 '@nestjs/schematics': 8.0.3 - '@nestjs/swagger': 5.0.9 - '@nestjs/testing': 8.0.7 - '@nestjs/websockets': 8.0.7 + '@nestjs/swagger': 5.1.0 + '@nestjs/testing': 8.0.9 + '@nestjs/websockets': 8.0.9 '@typegoose/auto-increment': 1.0.0 '@typegoose/typegoose': 8.3.0 '@types/bcrypt': 5.0.0 @@ -32,7 +33,7 @@ specifiers: '@types/jest': 27.0.2 '@types/lodash': 4.14.175 '@types/marked': 3.0.1 - '@types/mongoose-paginate-v2': 1.3.11 + '@types/mongoose-paginate-v2': 1.4.0 '@types/node': 16.9.2 '@types/nodemailer': 6.4.4 '@types/passport-jwt': 3.0.6 @@ -65,7 +66,7 @@ specifiers: image-size: 1.0.0 inquirer: '*' ioredis: '*' - jest: 27.2.3 + jest: 27.2.4 js-yaml: '*' jszip: 3.7.1 lint-staged: 11.1.2 @@ -107,22 +108,22 @@ specifiers: dependencies: '@algolia/client-search': 4.10.5 - '@nestjs/common': 8.0.7_82ca6e21bd08a51a509883dd533f031a - '@nestjs/config': 1.0.1_fc1f83cd092f0c41018304849cf62316 - '@nestjs/core': 8.0.7_6d0fc1e203275f67fb2d27221b1f9511 - '@nestjs/graphql': 9.0.5_6f5545487638a0fc5f8f23dfa408506c - '@nestjs/jwt': 8.0.0_@nestjs+common@8.0.7 - '@nestjs/mapped-types': 1.0.0_9235055d36f9f2c6d3bd542e4c3ac892 - '@nestjs/passport': 8.0.1_38aa9bfad4b7f471d8e32e88cc96339b - '@nestjs/platform-fastify': 8.0.7_6ccd7f020aae0bb10815f91d7f482355 - '@nestjs/platform-socket.io': 8.0.7_fc48f24482aae74043b84c3b5cd38828 - '@nestjs/schedule': 1.0.1_92bca3ef6c68a487b78ba06603236e5b - '@nestjs/swagger': 5.0.9_89221cfb2e693b84d741ba2b390624ff - '@nestjs/websockets': 8.0.7_42b244521ee0045572bc7d9f51a25080 + '@nestjs/common': 8.0.9_82ca6e21bd08a51a509883dd533f031a + '@nestjs/config': 1.0.1_946bf8982b6f3d7b46cf0b296973a2a3 + '@nestjs/core': 8.0.9_52e70c4b6d0a880fc27d6b80ab23839a + '@nestjs/graphql': 9.0.5_29957df7d179923a6113f29796b4e4b7 + '@nestjs/jwt': 8.0.0_@nestjs+common@8.0.9 + '@nestjs/mapped-types': 1.0.0_6c54869c49aa21767fcdc6746c14b9ef + '@nestjs/passport': 8.0.1_e28656822cb951d3f34cb0378fecfc59 + '@nestjs/platform-fastify': 8.0.9_55bf2f8ded7f9ef3f4ad0a170ebe4ad4 + '@nestjs/platform-socket.io': 8.0.9_7e68451a42afe65385b9a2a3e266be16 + '@nestjs/schedule': 1.0.1_8a5acde12789466e235f42cfde47d8b1 + '@nestjs/swagger': 5.1.0_1020bf308ea41b28adcca05a4e4dee08 + '@nestjs/websockets': 8.0.9_f1263e9068ff8aaf42bb20237a3628cb '@typegoose/auto-increment': 1.0.0_mongoose@5.13.8 '@typegoose/typegoose': 8.3.0_mongoose@5.13.8 algoliasearch: 4.10.5 - apollo-server-fastify: 3.3.0_fastify@3.20.1+graphql@15.6.0 + apollo-server-fastify: 3.3.0_fastify@3.21.6+graphql@15.6.0 axios: 0.21.4 bcrypt: 5.0.1 cache-manager: 3.4.4 @@ -152,7 +153,7 @@ dependencies: mongoose-lean-virtuals: 0.8.1_mongoose@5.13.8 mongoose-paginate-v2: 1.4.2 nanoid: 3.1.28 - nestjs-typegoose: 7.1.38_064905de188039c80c10ec90dab9f91a + nestjs-typegoose: 7.1.38_31d2b1d6854c9430ca02ddc56cbbfaca node-vibrant: 3.2.1-alpha.1 nodemailer: 6.6.5 passport: 0.5.0 @@ -171,9 +172,9 @@ dependencies: devDependencies: '@innei-util/eslint-config-ts': 0.3.4_typescript@4.4.3 '@innei-util/prettier': 0.1.3_prettier@2.4.1+typescript@4.4.3 - '@nestjs/cli': 8.1.1 + '@nestjs/cli': 8.1.2 '@nestjs/schematics': 8.0.3_typescript@4.4.3 - '@nestjs/testing': 8.0.7_6ccd7f020aae0bb10815f91d7f482355 + '@nestjs/testing': 8.0.9_55bf2f8ded7f9ef3f4ad0a170ebe4ad4 '@types/bcrypt': 5.0.0 '@types/cache-manager': 3.4.2 '@types/ejs': 3.1.0 @@ -182,7 +183,7 @@ devDependencies: '@types/jest': 27.0.2 '@types/lodash': 4.14.175 '@types/marked': 3.0.1 - '@types/mongoose-paginate-v2': 1.3.11 + '@types/mongoose-paginate-v2': 1.4.0 '@types/node': 16.9.2 '@types/nodemailer': 6.4.4 '@types/passport-jwt': 3.0.6 @@ -191,22 +192,22 @@ devDependencies: '@vercel/ncc': 0.31.1 cross-env: 7.0.3 eslint: 7.32.0 - fastify: 3.20.1 + fastify: 3.21.6 husky: 7.0.2 ioredis: 4.27.9 - jest: 27.2.3_ts-node@10.2.1 + jest: 27.2.4_ts-node@10.2.1 lint-staged: 11.1.2 prettier: 2.4.1 rimraf: 3.0.2 run-script-webpack-plugin: 0.0.11 semver: 7.3.5 socket.io: 4.1.3 - ts-jest: 27.0.5_3f00e57d4cc005a60af484dfb2e33bba - ts-loader: 9.2.6_typescript@4.4.3+webpack@5.52.0 + ts-jest: 27.0.5_52a571d76319e63aeaa66dc9db9e90cc + ts-loader: 9.2.6_typescript@4.4.3+webpack@5.56.0 ts-node: 10.2.1_ff9a14f10e259f71178ff2c657805ba4 tsconfig-paths: 3.11.0 typescript: 4.4.3 - webpack: 5.52.0 + webpack: 5.56.0 webpack-node-externals: 3.0.0 packages: @@ -313,11 +314,11 @@ packages: source-map: 0.7.3 dev: true - /@angular-devkit/core/12.1.4: - resolution: {integrity: sha512-KOzGD8JbP/7EeUwPiU5x+fo3ZEQ5R4IVW5WoH92PaO3mdpqXC7UL2MWLct8PUe9il9nqJMvrBMldSSvP9PCT2w==} + /@angular-devkit/core/12.2.7: + resolution: {integrity: sha512-WeLlDZaudpx10OGDPfVcWu/CaEWiWzAaLTUQz0Ww/yM+01FxR/P8yeH1sYAV1MS6d6KHvXGw7Lpf8PV7IA/zHA==} engines: {node: ^12.14.1 || >=14.0.0, npm: ^6.11.0 || ^7.5.6, yarn: '>= 1.13.0'} dependencies: - ajv: 8.6.0 + ajv: 8.6.2 ajv-formats: 2.1.0 fast-json-stable-stringify: 2.1.0 magic-string: 0.25.7 @@ -325,15 +326,15 @@ packages: source-map: 0.7.3 dev: true - /@angular-devkit/schematics-cli/12.1.4: - resolution: {integrity: sha512-BJiyZu7TaOJUnH4XH4OKz1LjW1364BLAhpwCBAueu11YkI7hghlsx/ogvvd5RYX9JmQL70iVOVkBsoYA7XVreg==} + /@angular-devkit/schematics-cli/12.2.7: + resolution: {integrity: sha512-dlHY+wD6eosbVbTShgVYskc4rCWn6m06t6TJkp8T0y51kVmjNHMiyBs/7z+YkO4rSDLiHhZmn1b0RUpoxxVw7Q==} engines: {node: ^12.14.1 || >=14.0.0, npm: ^6.11.0 || ^7.5.6, yarn: '>= 1.13.0'} hasBin: true dependencies: - '@angular-devkit/core': 12.1.4 - '@angular-devkit/schematics': 12.1.4 + '@angular-devkit/core': 12.2.7 + '@angular-devkit/schematics': 12.2.7 ansi-colors: 4.1.1 - inquirer: 8.1.1 + inquirer: 8.1.2 minimist: 1.2.5 symbol-observable: 4.0.0 dev: true @@ -347,11 +348,11 @@ packages: rxjs: 6.6.7 dev: true - /@angular-devkit/schematics/12.1.4: - resolution: {integrity: sha512-yD3y3pK/K5piOgvALFoCCiPp4H8emNa3yZL+vlpEpewVLpF1MM55LeTxc0PI5s0uqtOGVnvcbA5wYgMm3YsUEA==} + /@angular-devkit/schematics/12.2.7: + resolution: {integrity: sha512-E0hCFyyfbixjerf0Okt4ynC6F1dsT2Wl7MwAePe+wzPTHCnKIRTa2PQTxJzdWeTlSkQMkSK6ft2iyWOD/FODng==} engines: {node: ^12.14.1 || >=14.0.0, npm: ^6.11.0 || ^7.5.6, yarn: '>= 1.13.0'} dependencies: - '@angular-devkit/core': 12.1.4 + '@angular-devkit/core': 12.2.7 ora: 5.4.1 rxjs: 6.6.7 dev: true @@ -412,19 +413,19 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/core/7.15.0: - resolution: {integrity: sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw==} + /@babel/core/7.15.5: + resolution: {integrity: sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.14.5 - '@babel/generator': 7.15.0 - '@babel/helper-compilation-targets': 7.15.0_@babel+core@7.15.0 - '@babel/helper-module-transforms': 7.15.0 - '@babel/helpers': 7.15.3 - '@babel/parser': 7.15.3 - '@babel/template': 7.14.5 - '@babel/traverse': 7.15.0 - '@babel/types': 7.15.0 + '@babel/generator': 7.15.4 + '@babel/helper-compilation-targets': 7.15.4_@babel+core@7.15.5 + '@babel/helper-module-transforms': 7.15.7 + '@babel/helpers': 7.15.4 + '@babel/parser': 7.15.7 + '@babel/template': 7.15.4 + '@babel/traverse': 7.15.4 + '@babel/types': 7.15.6 convert-source-map: 1.8.0 debug: 4.3.2 gensync: 1.0.0-beta.2 @@ -435,86 +436,86 @@ packages: - supports-color dev: true - /@babel/generator/7.15.0: - resolution: {integrity: sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==} + /@babel/generator/7.15.4: + resolution: {integrity: sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.15.0 + '@babel/types': 7.15.6 jsesc: 2.5.2 source-map: 0.5.7 dev: true - /@babel/helper-compilation-targets/7.15.0_@babel+core@7.15.0: - resolution: {integrity: sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A==} + /@babel/helper-compilation-targets/7.15.4_@babel+core@7.15.5: + resolution: {integrity: sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/compat-data': 7.15.0 - '@babel/core': 7.15.0 + '@babel/core': 7.15.5 '@babel/helper-validator-option': 7.14.5 - browserslist: 4.17.0 + browserslist: 4.17.2 semver: 6.3.0 dev: true - /@babel/helper-function-name/7.14.5: - resolution: {integrity: sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==} + /@babel/helper-function-name/7.15.4: + resolution: {integrity: sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-get-function-arity': 7.14.5 - '@babel/template': 7.14.5 - '@babel/types': 7.15.0 + '@babel/helper-get-function-arity': 7.15.4 + '@babel/template': 7.15.4 + '@babel/types': 7.15.6 dev: true - /@babel/helper-get-function-arity/7.14.5: - resolution: {integrity: sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==} + /@babel/helper-get-function-arity/7.15.4: + resolution: {integrity: sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.15.0 + '@babel/types': 7.15.6 dev: true - /@babel/helper-hoist-variables/7.14.5: - resolution: {integrity: sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==} + /@babel/helper-hoist-variables/7.15.4: + resolution: {integrity: sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.15.0 + '@babel/types': 7.15.6 dev: true - /@babel/helper-member-expression-to-functions/7.15.0: - resolution: {integrity: sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg==} + /@babel/helper-member-expression-to-functions/7.15.4: + resolution: {integrity: sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.15.0 + '@babel/types': 7.15.6 dev: true - /@babel/helper-module-imports/7.14.5: - resolution: {integrity: sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==} + /@babel/helper-module-imports/7.15.4: + resolution: {integrity: sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.15.0 + '@babel/types': 7.15.6 dev: true - /@babel/helper-module-transforms/7.15.0: - resolution: {integrity: sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg==} + /@babel/helper-module-transforms/7.15.7: + resolution: {integrity: sha512-ZNqjjQG/AuFfekFTY+7nY4RgBSklgTu970c7Rj3m/JOhIu5KPBUuTA9AY6zaKcUvk4g6EbDXdBnhi35FAssdSw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-module-imports': 7.14.5 - '@babel/helper-replace-supers': 7.15.0 - '@babel/helper-simple-access': 7.14.8 - '@babel/helper-split-export-declaration': 7.14.5 - '@babel/helper-validator-identifier': 7.14.9 - '@babel/template': 7.14.5 - '@babel/traverse': 7.15.0 - '@babel/types': 7.15.0 + '@babel/helper-module-imports': 7.15.4 + '@babel/helper-replace-supers': 7.15.4 + '@babel/helper-simple-access': 7.15.4 + '@babel/helper-split-export-declaration': 7.15.4 + '@babel/helper-validator-identifier': 7.15.7 + '@babel/template': 7.15.4 + '@babel/traverse': 7.15.4 + '@babel/types': 7.15.6 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-optimise-call-expression/7.14.5: - resolution: {integrity: sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==} + /@babel/helper-optimise-call-expression/7.15.4: + resolution: {integrity: sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.15.0 + '@babel/types': 7.15.6 dev: true /@babel/helper-plugin-utils/7.14.5: @@ -522,34 +523,34 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-replace-supers/7.15.0: - resolution: {integrity: sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA==} + /@babel/helper-replace-supers/7.15.4: + resolution: {integrity: sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-member-expression-to-functions': 7.15.0 - '@babel/helper-optimise-call-expression': 7.14.5 - '@babel/traverse': 7.15.0 - '@babel/types': 7.15.0 + '@babel/helper-member-expression-to-functions': 7.15.4 + '@babel/helper-optimise-call-expression': 7.15.4 + '@babel/traverse': 7.15.4 + '@babel/types': 7.15.6 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-simple-access/7.14.8: - resolution: {integrity: sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==} + /@babel/helper-simple-access/7.15.4: + resolution: {integrity: sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.15.0 + '@babel/types': 7.15.6 dev: true - /@babel/helper-split-export-declaration/7.14.5: - resolution: {integrity: sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==} + /@babel/helper-split-export-declaration/7.15.4: + resolution: {integrity: sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.15.0 + '@babel/types': 7.15.6 dev: true - /@babel/helper-validator-identifier/7.14.9: - resolution: {integrity: sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==} + /@babel/helper-validator-identifier/7.15.7: + resolution: {integrity: sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==} engines: {node: '>=6.9.0'} dev: true @@ -558,13 +559,13 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helpers/7.15.3: - resolution: {integrity: sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g==} + /@babel/helpers/7.15.4: + resolution: {integrity: sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.14.5 - '@babel/traverse': 7.15.0 - '@babel/types': 7.15.0 + '@babel/template': 7.15.4 + '@babel/traverse': 7.15.4 + '@babel/types': 7.15.6 transitivePeerDependencies: - supports-color dev: true @@ -573,133 +574,133 @@ packages: resolution: {integrity: sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.14.9 + '@babel/helper-validator-identifier': 7.15.7 chalk: 2.4.2 js-tokens: 4.0.0 dev: true - /@babel/parser/7.15.3: - resolution: {integrity: sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA==} + /@babel/parser/7.15.7: + resolution: {integrity: sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g==} engines: {node: '>=6.0.0'} hasBin: true dev: true - /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.15.0: + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.15.5: resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.15.0 + '@babel/core': 7.15.5 '@babel/helper-plugin-utils': 7.14.5 dev: true - /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.15.0: + /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.15.5: resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.15.0 + '@babel/core': 7.15.5 '@babel/helper-plugin-utils': 7.14.5 dev: true - /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.15.0: + /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.15.5: resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.15.0 + '@babel/core': 7.15.5 '@babel/helper-plugin-utils': 7.14.5 dev: true - /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.15.0: + /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.15.5: resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.15.0 + '@babel/core': 7.15.5 '@babel/helper-plugin-utils': 7.14.5 dev: true - /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.15.0: + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.15.5: resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.15.0 + '@babel/core': 7.15.5 '@babel/helper-plugin-utils': 7.14.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.15.0: + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.15.5: resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.15.0 + '@babel/core': 7.15.5 '@babel/helper-plugin-utils': 7.14.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.15.0: + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.15.5: resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.15.0 + '@babel/core': 7.15.5 '@babel/helper-plugin-utils': 7.14.5 dev: true - /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.15.0: + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.15.5: resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.15.0 + '@babel/core': 7.15.5 '@babel/helper-plugin-utils': 7.14.5 dev: true - /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.15.0: + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.15.5: resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.15.0 + '@babel/core': 7.15.5 '@babel/helper-plugin-utils': 7.14.5 dev: true - /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.15.0: + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.15.5: resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.15.0 + '@babel/core': 7.15.5 '@babel/helper-plugin-utils': 7.14.5 dev: true - /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.15.0: + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.15.5: resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.15.0 + '@babel/core': 7.15.5 '@babel/helper-plugin-utils': 7.14.5 dev: true - /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.15.0: + /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.15.5: resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.15.0 + '@babel/core': 7.15.5 '@babel/helper-plugin-utils': 7.14.5 dev: true - /@babel/plugin-syntax-typescript/7.14.5_@babel+core@7.15.0: + /@babel/plugin-syntax-typescript/7.14.5_@babel+core@7.15.5: resolution: {integrity: sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.15.0 + '@babel/core': 7.15.5 '@babel/helper-plugin-utils': 7.14.5 dev: true @@ -710,37 +711,37 @@ packages: regenerator-runtime: 0.13.9 dev: false - /@babel/template/7.14.5: - resolution: {integrity: sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==} + /@babel/template/7.15.4: + resolution: {integrity: sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.14.5 - '@babel/parser': 7.15.3 - '@babel/types': 7.15.0 + '@babel/parser': 7.15.7 + '@babel/types': 7.15.6 dev: true - /@babel/traverse/7.15.0: - resolution: {integrity: sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==} + /@babel/traverse/7.15.4: + resolution: {integrity: sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.14.5 - '@babel/generator': 7.15.0 - '@babel/helper-function-name': 7.14.5 - '@babel/helper-hoist-variables': 7.14.5 - '@babel/helper-split-export-declaration': 7.14.5 - '@babel/parser': 7.15.3 - '@babel/types': 7.15.0 + '@babel/generator': 7.15.4 + '@babel/helper-function-name': 7.15.4 + '@babel/helper-hoist-variables': 7.15.4 + '@babel/helper-split-export-declaration': 7.15.4 + '@babel/parser': 7.15.7 + '@babel/types': 7.15.6 debug: 4.3.2 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types/7.15.0: - resolution: {integrity: sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==} + /@babel/types/7.15.6: + resolution: {integrity: sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.14.9 + '@babel/helper-validator-identifier': 7.15.7 to-fast-properties: 2.0.0 dev: true @@ -879,8 +880,8 @@ packages: typescript: '>=4' dependencies: '@types/eslint': 7.28.0 - '@typescript-eslint/eslint-plugin': 4.31.1_e2d3c88d378335c4183365c112128ce9 - '@typescript-eslint/parser': 4.31.1_eslint@7.32.0+typescript@4.4.3 + '@typescript-eslint/eslint-plugin': 4.32.0_1eacf2495a01e8a68ffa99482308e8ec + '@typescript-eslint/parser': 4.32.0_eslint@7.32.0+typescript@4.4.3 eslint: 7.32.0 eslint-config-prettier: 8.3.0_eslint@7.32.0 eslint-plugin-import: 2.24.2_eslint@7.32.0 @@ -893,7 +894,7 @@ packages: resolution: {integrity: sha512-rFSQoLTvDmNwB2mzd7S2zuogGu740Yn1f9Ca+pRwVzwDlriRNoMqlAlZ5YO+O1I5WENp1oD77y80cPo9dLBG3A==} dependencies: prettier-package-json: 2.6.0 - prettier-plugin-organize-imports: 2.3.3_prettier@2.4.1+typescript@4.4.3 + prettier-plugin-organize-imports: 2.3.4_prettier@2.4.1+typescript@4.4.3 transitivePeerDependencies: - prettier - typescript @@ -963,7 +964,7 @@ packages: micromatch: 4.0.4 rimraf: 3.0.2 slash: 3.0.0 - strip-ansi: 6.0.0 + strip-ansi: 6.0.1 transitivePeerDependencies: - bufferutil - canvas @@ -1020,9 +1021,9 @@ packages: chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 - glob: 7.1.7 + glob: 7.2.0 graceful-fs: 4.2.8 - istanbul-lib-coverage: 3.0.0 + istanbul-lib-coverage: 3.0.1 istanbul-lib-instrument: 4.0.3 istanbul-lib-report: 3.0.0 istanbul-lib-source-maps: 4.0.0 @@ -1075,7 +1076,7 @@ packages: resolution: {integrity: sha512-n5FlX2TH0oQGwyVDKPxdJ5nI2sO7TJBFe3u3KaAtt7TOiV4yL+Y+rSFDl+Ic5MpbiA/eqXmLAQxjnBmWgS2rEA==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@babel/core': 7.15.0 + '@babel/core': 7.15.5 '@jest/types': 27.2.4 babel-plugin-istanbul: 6.0.0 chalk: 4.1.2 @@ -1258,29 +1259,29 @@ packages: - supports-color dev: false - /@nestjs/cli/8.1.1: - resolution: {integrity: sha512-Jo/vYyrDHJhRIoFevO+A955KX7aLSAV6gn0sbIJBDTKiha1yxfgEbHOk8qP24gNFLwiDn2CKbwph2g6z0v/mNw==} + /@nestjs/cli/8.1.2: + resolution: {integrity: sha512-HzjCIyECFHNl+Vv1Sfq0SdenujvdfPPUny9XcPlZK75dmNhIOJmx7Wl/rG72qJ7sZzxoQ3h8r2+jp8ajx227HA==} engines: {node: '>= 10.13.0', npm: '>= 6.11.0'} hasBin: true dependencies: - '@angular-devkit/core': 12.1.4 - '@angular-devkit/schematics': 12.1.4 - '@angular-devkit/schematics-cli': 12.1.4 + '@angular-devkit/core': 12.2.7 + '@angular-devkit/schematics': 12.2.7 + '@angular-devkit/schematics-cli': 12.2.7 '@nestjs/schematics': 8.0.3_typescript@4.4.3 chalk: 3.0.0 chokidar: 3.5.2 cli-table3: 0.5.1 commander: 4.1.1 - fork-ts-checker-webpack-plugin: 6.3.1 + fork-ts-checker-webpack-plugin: 6.3.3 inquirer: 7.3.3 - node-emoji: 1.10.0 + node-emoji: 1.11.0 ora: 5.4.1 os-name: 4.0.1 rimraf: 3.0.2 shelljs: 0.8.4 - source-map-support: 0.5.19 + source-map-support: 0.5.20 tree-kill: 1.2.2 - tsconfig-paths: 3.10.1 + tsconfig-paths: 3.11.0 tsconfig-paths-webpack-plugin: 3.5.1 typescript: 4.4.3 webpack: 5.45.1 @@ -1292,8 +1293,8 @@ packages: - webpack-cli dev: true - /@nestjs/common/8.0.7_82ca6e21bd08a51a509883dd533f031a: - resolution: {integrity: sha512-p9dF6rFE8SYIUphzTCtQ2FoE1NVsAnX5jOPsmRvP0DlleKSfE/SizzkM6YmVUM98yyOvlGuHGV1X0NoSP3azCg==} + /@nestjs/common/8.0.9_82ca6e21bd08a51a509883dd533f031a: + resolution: {integrity: sha512-Y3DQxOD57suyvMURpgqX0IBFliMZZNvp1bhvjzjU376Igh33NIz18xhxV9EKe+F0EHHawyM3cv1ZEGYi0yGrtQ==} peerDependencies: cache-manager: '*' class-transformer: '*' @@ -1321,14 +1322,14 @@ packages: - debug dev: false - /@nestjs/config/1.0.1_fc1f83cd092f0c41018304849cf62316: + /@nestjs/config/1.0.1_946bf8982b6f3d7b46cf0b296973a2a3: resolution: {integrity: sha512-azMl4uYlFIhYsywFxPJT81RxF3Pnn0TZW3EEmr0Wa0Wex8R2xpvBNrCcrOgW3TB1xGMP7eqBrlfsVh5ZP82szg==} peerDependencies: '@nestjs/common': ^7.0.0 || ^8.0.0 reflect-metadata: ^0.1.13 rxjs: ^6.0.0 || ^7.2.0 dependencies: - '@nestjs/common': 8.0.7_82ca6e21bd08a51a509883dd533f031a + '@nestjs/common': 8.0.9_82ca6e21bd08a51a509883dd533f031a dotenv: 10.0.0 dotenv-expand: 5.1.0 lodash.get: 4.4.2 @@ -1339,8 +1340,8 @@ packages: uuid: 8.3.2 dev: false - /@nestjs/core/8.0.7_6d0fc1e203275f67fb2d27221b1f9511: - resolution: {integrity: sha512-A8n+rw8C3yp5hpvmHeQ+x7NjPOe+m/8ITI2tiv8cJeOjPaXn2nhViSB7uwKaNUP1MBgh/7y0HVafFBHzPBZj3g==} + /@nestjs/core/8.0.9_52e70c4b6d0a880fc27d6b80ab23839a: + resolution: {integrity: sha512-Q8bge+yuFzcuW9iY5fiMz3gydyB3D25dO9/YFGEtHexw2ipQA1QCt94XfIxGqFe1C07k5IDSK/C/l+R33CHrGg==} requiresBuild: true peerDependencies: '@nestjs/common': ^8.0.0 @@ -1357,10 +1358,10 @@ packages: '@nestjs/websockets': optional: true dependencies: - '@nestjs/common': 8.0.7_82ca6e21bd08a51a509883dd533f031a - '@nestjs/websockets': 8.0.7_42b244521ee0045572bc7d9f51a25080 + '@nestjs/common': 8.0.9_82ca6e21bd08a51a509883dd533f031a + '@nestjs/websockets': 8.0.9_f1263e9068ff8aaf42bb20237a3628cb '@nuxtjs/opencollective': 0.3.2 - fast-safe-stringify: 2.0.8 + fast-safe-stringify: 2.1.1 iterare: 1.2.1 object-hash: 2.2.0 path-to-regexp: 3.2.0 @@ -1370,7 +1371,7 @@ packages: uuid: 8.3.2 dev: false - /@nestjs/graphql/9.0.5_6f5545487638a0fc5f8f23dfa408506c: + /@nestjs/graphql/9.0.5_29957df7d179923a6113f29796b4e4b7: resolution: {integrity: sha512-FFNnwWP+vZtJBE+9nz6LPb0DsVKVFkvA8RD8YM9sxs/KKLUoW2PNgIOUkmJAufcP6wG67HIn2zEX77fxykXF9Q==} peerDependencies: '@apollo/federation': ^0.26.0 || ^0.27.0 || ^0.29.0 || ^0.33.0 @@ -1400,10 +1401,10 @@ packages: '@graphql-tools/merge': 6.2.5_graphql@15.6.0 '@graphql-tools/schema': 7.1.5_graphql@15.6.0 '@graphql-tools/utils': 7.10.0_graphql@15.6.0 - '@nestjs/common': 8.0.7_82ca6e21bd08a51a509883dd533f031a - '@nestjs/core': 8.0.7_6d0fc1e203275f67fb2d27221b1f9511 - '@nestjs/mapped-types': 1.0.0_9235055d36f9f2c6d3bd542e4c3ac892 - apollo-server-fastify: 3.3.0_fastify@3.20.1+graphql@15.6.0 + '@nestjs/common': 8.0.9_82ca6e21bd08a51a509883dd533f031a + '@nestjs/core': 8.0.9_52e70c4b6d0a880fc27d6b80ab23839a + '@nestjs/mapped-types': 1.0.0_6c54869c49aa21767fcdc6746c14b9ef + apollo-server-fastify: 3.3.0_fastify@3.21.6+graphql@15.6.0 chokidar: 3.5.2 fast-glob: 3.2.7 graphql: 15.6.0 @@ -1424,17 +1425,17 @@ packages: - utf-8-validate dev: false - /@nestjs/jwt/8.0.0_@nestjs+common@8.0.7: + /@nestjs/jwt/8.0.0_@nestjs+common@8.0.9: resolution: {integrity: sha512-fz2LQgYY2zmuD8S+8UE215anwKyXlnB/1FwJQLVR47clNfMeFMK8WCxmn6xdPhF5JKuV1crO6FVabb1qWzDxqQ==} peerDependencies: '@nestjs/common': ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@nestjs/common': 8.0.7_82ca6e21bd08a51a509883dd533f031a + '@nestjs/common': 8.0.9_82ca6e21bd08a51a509883dd533f031a '@types/jsonwebtoken': 8.5.4 jsonwebtoken: 8.5.1 dev: false - /@nestjs/mapped-types/1.0.0_9235055d36f9f2c6d3bd542e4c3ac892: + /@nestjs/mapped-types/1.0.0_6c54869c49aa21767fcdc6746c14b9ef: resolution: {integrity: sha512-26AW5jHadLXtvHs+M+Agd9KZ92dDlBrmD0rORlBlvn2KvsWs4JRaKl2mUsrW7YsdZeAu3Hc4ukqyYyDdyCmMWQ==} peerDependencies: '@nestjs/common': ^7.0.8 || ^8.0.0 @@ -1442,31 +1443,31 @@ packages: class-validator: ^0.11.1 || ^0.12.0 || ^0.13.0 reflect-metadata: ^0.1.12 dependencies: - '@nestjs/common': 8.0.7_82ca6e21bd08a51a509883dd533f031a + '@nestjs/common': 8.0.9_82ca6e21bd08a51a509883dd533f031a class-transformer: 0.4.0 class-validator: 0.13.1 reflect-metadata: 0.1.13 dev: false - /@nestjs/passport/8.0.1_38aa9bfad4b7f471d8e32e88cc96339b: + /@nestjs/passport/8.0.1_e28656822cb951d3f34cb0378fecfc59: resolution: {integrity: sha512-vn/ZJLXQKvSf9D0BvEoNFJLfzl9AVqfGtDyQMfWDLbaNpoEB2FyeaHGxdiX6H71oLSrQV78c/yuhfantzwdjdg==} peerDependencies: '@nestjs/common': ^6.0.0 || ^7.0.0 || ^8.0.0 passport: ^0.4.0 dependencies: - '@nestjs/common': 8.0.7_82ca6e21bd08a51a509883dd533f031a + '@nestjs/common': 8.0.9_82ca6e21bd08a51a509883dd533f031a passport: 0.5.0 dev: false - /@nestjs/platform-fastify/8.0.7_6ccd7f020aae0bb10815f91d7f482355: - resolution: {integrity: sha512-Ix1RoLJkR+jckeyTohZgt034ItM24G4LHlIhcNTZl893OXoo5cJEiWw22kvC7V9JG485h21eXPcL2ksnhZDKkg==} + /@nestjs/platform-fastify/8.0.9_55bf2f8ded7f9ef3f4ad0a170ebe4ad4: + resolution: {integrity: sha512-tv3BZvl8MekKYUWQQfT1TPztoJ5B8B3COboHWXRYtLns/6ntEL+rcJV4i0VLNGqDh1zBN1Qof5lIc47yQXN0zw==} peerDependencies: '@nestjs/common': ^8.0.0 '@nestjs/core': ^8.0.0 dependencies: - '@nestjs/common': 8.0.7_82ca6e21bd08a51a509883dd533f031a - '@nestjs/core': 8.0.7_6d0fc1e203275f67fb2d27221b1f9511 - fastify: 3.20.2 + '@nestjs/common': 8.0.9_82ca6e21bd08a51a509883dd533f031a + '@nestjs/core': 8.0.9_52e70c4b6d0a880fc27d6b80ab23839a + fastify: 3.21.6 fastify-cors: 6.0.2 fastify-formbody: 5.1.0 light-my-request: 4.4.4 @@ -1477,15 +1478,15 @@ packages: - supports-color dev: false - /@nestjs/platform-socket.io/8.0.7_fc48f24482aae74043b84c3b5cd38828: - resolution: {integrity: sha512-Ejli/09MPQn/CEkaRs+fhGBLMlkmH5C5wHgPIBLEmrg1E/EuY6mxUgTBIho/70RujBgCaPJcBQp747SP2lKpQQ==} + /@nestjs/platform-socket.io/8.0.9_7e68451a42afe65385b9a2a3e266be16: + resolution: {integrity: sha512-IZkvfjFNTb5fi5UgpQNYuu6c82p/NnD93Y1fvqlPI5FS5+Rdq8BtsBg9smLAUNwqsxsLBRJ67YgiG+aSpNA4YA==} peerDependencies: '@nestjs/common': ^8.0.0 '@nestjs/websockets': ^8.0.0 rxjs: ^7.1.0 dependencies: - '@nestjs/common': 8.0.7_82ca6e21bd08a51a509883dd533f031a - '@nestjs/websockets': 8.0.7_42b244521ee0045572bc7d9f51a25080 + '@nestjs/common': 8.0.9_82ca6e21bd08a51a509883dd533f031a + '@nestjs/websockets': 8.0.9_f1263e9068ff8aaf42bb20237a3628cb rxjs: 7.3.1 socket.io: 4.2.0 tslib: 2.3.1 @@ -1495,15 +1496,15 @@ packages: - utf-8-validate dev: false - /@nestjs/schedule/1.0.1_92bca3ef6c68a487b78ba06603236e5b: + /@nestjs/schedule/1.0.1_8a5acde12789466e235f42cfde47d8b1: resolution: {integrity: sha512-EU2tB4rxuEgum8JlorAFvXkU982EYZm/IBa7n6kgkyps5BbxQSFf7iR1CLkP9zODO9ApZTWk5z3q9L3O7vrkoQ==} peerDependencies: '@nestjs/common': ^6.10.11 || ^7.0.0 || ^8.0.0 '@nestjs/core': ^7.0.0 || ^8.0.0 reflect-metadata: ^0.1.12 dependencies: - '@nestjs/common': 8.0.7_82ca6e21bd08a51a509883dd533f031a - '@nestjs/core': 8.0.7_6d0fc1e203275f67fb2d27221b1f9511 + '@nestjs/common': 8.0.9_82ca6e21bd08a51a509883dd533f031a + '@nestjs/core': 8.0.9_52e70c4b6d0a880fc27d6b80ab23839a cron: 1.7.2 reflect-metadata: 0.1.13 uuid: 8.3.2 @@ -1522,8 +1523,8 @@ packages: typescript: 4.4.3 dev: true - /@nestjs/swagger/5.0.9_89221cfb2e693b84d741ba2b390624ff: - resolution: {integrity: sha512-KivZeDgn/VeDn81Rnd/0Cbv7M4kuHRb+Rlri+YsUrw3h9or4bxxRiUg7Yjjt368KxfJgR7C3lc6kltvoI7ucQg==} + /@nestjs/swagger/5.1.0_1020bf308ea41b28adcca05a4e4dee08: + resolution: {integrity: sha512-+/Edyzkh3n9Kkw72zzRDHF1ZWK1PlvkkM9lK9fjYaiMjEZ3oaCiSjdwd88vAVX6UIP0nvQkT5VNpSLYU+GK5yg==} peerDependencies: '@nestjs/common': ^8.0.0 '@nestjs/core': ^8.0.0 @@ -1536,9 +1537,9 @@ packages: swagger-ui-express: optional: true dependencies: - '@nestjs/common': 8.0.7_82ca6e21bd08a51a509883dd533f031a - '@nestjs/core': 8.0.7_6d0fc1e203275f67fb2d27221b1f9511 - '@nestjs/mapped-types': 1.0.0_9235055d36f9f2c6d3bd542e4c3ac892 + '@nestjs/common': 8.0.9_82ca6e21bd08a51a509883dd533f031a + '@nestjs/core': 8.0.9_52e70c4b6d0a880fc27d6b80ab23839a + '@nestjs/mapped-types': 1.0.0_6c54869c49aa21767fcdc6746c14b9ef fastify-swagger: 4.12.2 lodash: 4.17.21 path-to-regexp: 3.2.0 @@ -1548,8 +1549,8 @@ packages: - class-validator dev: false - /@nestjs/testing/8.0.7_6ccd7f020aae0bb10815f91d7f482355: - resolution: {integrity: sha512-HNWBEm19N3w/XcQ4mL4AMWI43jrb4hKjKcKSvuqIQ5jRjlY/ezCwjv0NJ9dhhpabT6IQ38zko47SNMJaJRdkmA==} + /@nestjs/testing/8.0.9_55bf2f8ded7f9ef3f4ad0a170ebe4ad4: + resolution: {integrity: sha512-idFhNESD90jUjDfvePgUS5uJzSXEYRhA8xfpv3snWMr3/4ouR5m+o7Wb3Zr+kDbU0Pi+SemKDLv9QoFWatHDeA==} peerDependencies: '@nestjs/common': ^8.0.0 '@nestjs/core': ^8.0.0 @@ -1562,13 +1563,13 @@ packages: optional: true dependencies: optional: 0.1.4 - '@nestjs/common': 8.0.7_82ca6e21bd08a51a509883dd533f031a - '@nestjs/core': 8.0.7_6d0fc1e203275f67fb2d27221b1f9511 + '@nestjs/common': 8.0.9_82ca6e21bd08a51a509883dd533f031a + '@nestjs/core': 8.0.9_52e70c4b6d0a880fc27d6b80ab23839a tslib: 2.3.1 dev: true - /@nestjs/websockets/8.0.7_42b244521ee0045572bc7d9f51a25080: - resolution: {integrity: sha512-Q2mecvtc9mF9U0X2jOxhbnwC+tv6EkkWivLYmUBCZN5pNB0rlpcQ/5L1Z+K6iqO0vyBRqdPPlYAsrdiPtBuiRg==} + /@nestjs/websockets/8.0.9_f1263e9068ff8aaf42bb20237a3628cb: + resolution: {integrity: sha512-RSeHO6bCFWuPXOcJyP4rPE2EttrAVNyMC/LKQSQ8J0kV2KQ0ywpxsCH/EPOD6Z43Bzh39OTYUff6Hart57SlYA==} peerDependencies: '@nestjs/common': ^8.0.0 '@nestjs/core': ^8.0.0 @@ -1579,9 +1580,9 @@ packages: '@nestjs/platform-socket.io': optional: true dependencies: - '@nestjs/common': 8.0.7_82ca6e21bd08a51a509883dd533f031a - '@nestjs/core': 8.0.7_6d0fc1e203275f67fb2d27221b1f9511 - '@nestjs/platform-socket.io': 8.0.7_fc48f24482aae74043b84c3b5cd38828 + '@nestjs/common': 8.0.9_82ca6e21bd08a51a509883dd533f031a + '@nestjs/core': 8.0.9_52e70c4b6d0a880fc27d6b80ab23839a + '@nestjs/platform-socket.io': 8.0.9_7e68451a42afe65385b9a2a3e266be16 iterare: 1.2.1 object-hash: 2.2.0 reflect-metadata: 0.1.13 @@ -1614,7 +1615,7 @@ packages: dependencies: chalk: 4.1.2 consola: 2.15.3 - node-fetch: 2.6.2 + node-fetch: 2.6.5 dev: false /@protobufjs/aspromise/1.1.2: @@ -1727,11 +1728,11 @@ packages: tslib: 2.3.1 dev: false - /@types/babel__core/7.1.15: - resolution: {integrity: sha512-bxlMKPDbY8x5h6HBwVzEOk2C8fb6SLfYQ5Jw3uBYuYF1lfWk/kbLd81la82vrIkBb0l+JdmrZaDikPrNxpS/Ew==} + /@types/babel__core/7.1.16: + resolution: {integrity: sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==} dependencies: - '@babel/parser': 7.15.3 - '@babel/types': 7.15.0 + '@babel/parser': 7.15.7 + '@babel/types': 7.15.6 '@types/babel__generator': 7.6.3 '@types/babel__template': 7.4.1 '@types/babel__traverse': 7.14.2 @@ -1740,20 +1741,20 @@ packages: /@types/babel__generator/7.6.3: resolution: {integrity: sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==} dependencies: - '@babel/types': 7.15.0 + '@babel/types': 7.15.6 dev: true /@types/babel__template/7.4.1: resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} dependencies: - '@babel/parser': 7.15.3 - '@babel/types': 7.15.0 + '@babel/parser': 7.15.7 + '@babel/types': 7.15.6 dev: true /@types/babel__traverse/7.14.2: resolution: {integrity: sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==} dependencies: - '@babel/types': 7.15.0 + '@babel/types': 7.15.6 dev: true /@types/bcrypt/5.0.0: @@ -1773,6 +1774,7 @@ packages: resolution: {integrity: sha512-vVLwMUqhYJSQ/WKcE60eFqcyuWse5fGH+NMAXHuKrUAPoryq3ATxk5o4bgYNtg5aOM4APVg7Hnb3ASqUYG0PKg==} dependencies: '@types/node': 16.7.8 + dev: false /@types/cache-manager/3.4.2: resolution: {integrity: sha512-1IwA74t5ID4KWo0Kndal16MhiPSZgMe1fGc+MLT6j5r+Ab7jku36PFTl4PP6MiWw0BJscM9QpZEo00qixNQoRg==} @@ -1933,18 +1935,14 @@ packages: dependencies: '@types/bson': 4.0.5 '@types/node': 16.7.8 + dev: false - /@types/mongoose-paginate-v2/1.3.11: - resolution: {integrity: sha512-ht3pjiOB3ZFB7jYfjQAXGrMZDqNlLGxA+Z7O7uMugsa1YgncE5qoaW2WkL9IYtytklHJpn8QvahJxzJv9hgMiA==} + /@types/mongoose-paginate-v2/1.4.0: + resolution: {integrity: sha512-SzhQNVPI6YdY3MNgSuE+ZJfRRcwMgGOIV3n84gakBo6quPyBxui/XNX3zzzESxfGXkcljxuNWfIFGvLHTc+uIQ==} dependencies: - '@types/mongoose': 5.10.5 - dev: true - - /@types/mongoose/5.10.5: - resolution: {integrity: sha512-37QMIA954T3n+HSksSNLlxZsqF8fMJu5S4dyPBod6gRxGtsXlQ9jUtL8BE8Seimv99u79eLXI3bggoCnSQ/fxQ==} - dependencies: - '@types/mongodb': 3.6.20 - '@types/node': 16.9.1 + mongoose: 6.0.8 + transitivePeerDependencies: + - supports-color dev: true /@types/node-fetch/2.5.12: @@ -2006,8 +2004,8 @@ packages: '@types/express': 4.17.13 dev: true - /@types/prettier/2.3.2: - resolution: {integrity: sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog==} + /@types/prettier/2.4.1: + resolution: {integrity: sha512-Fo79ojj3vdEZOHg3wR9ksAMRz4P3S5fDB5e/YWZiFnyFQI1WY2Vftu9XoXVVtJfxB7Bpce/QTqWSSntkz2Znrw==} dev: true /@types/qs/6.9.7: @@ -2053,6 +2051,17 @@ packages: resolution: {integrity: sha512-fWG42pMJOL4jKsDDZZREnXLjc3UE0R8LOJfARWYg6U966rxDT7TYejYzLnUF5cvSObGg34nd0+H2wHHU5Omdfw==} dev: false + /@types/webidl-conversions/6.1.1: + resolution: {integrity: sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q==} + dev: true + + /@types/whatwg-url/8.2.1: + resolution: {integrity: sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==} + dependencies: + '@types/node': 16.9.2 + '@types/webidl-conversions': 6.1.1 + dev: true + /@types/yargs-parser/20.2.1: resolution: {integrity: sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==} dev: true @@ -2063,8 +2072,8 @@ packages: '@types/yargs-parser': 20.2.1 dev: true - /@typescript-eslint/eslint-plugin/4.31.1_e2d3c88d378335c4183365c112128ce9: - resolution: {integrity: sha512-UDqhWmd5i0TvPLmbK5xY3UZB0zEGseF+DHPghZ37Sb83Qd3p8ujhvAtkU4OF46Ka5Pm5kWvFIx0cCTBFKo0alA==} + /@typescript-eslint/eslint-plugin/4.32.0_1eacf2495a01e8a68ffa99482308e8ec: + resolution: {integrity: sha512-+OWTuWRSbWI1KDK8iEyG/6uK2rTm3kpS38wuVifGUTDB6kjEuNrzBI1MUtxnkneuWG/23QehABe2zHHrj+4yuA==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: '@typescript-eslint/parser': ^4.0.0 @@ -2074,12 +2083,13 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/experimental-utils': 4.31.1_eslint@7.32.0+typescript@4.4.3 - '@typescript-eslint/parser': 4.31.1_eslint@7.32.0+typescript@4.4.3 - '@typescript-eslint/scope-manager': 4.31.1 + '@typescript-eslint/experimental-utils': 4.32.0_eslint@7.32.0+typescript@4.4.3 + '@typescript-eslint/parser': 4.32.0_eslint@7.32.0+typescript@4.4.3 + '@typescript-eslint/scope-manager': 4.32.0 debug: 4.3.2 eslint: 7.32.0 functional-red-black-tree: 1.0.1 + ignore: 5.1.8 regexpp: 3.2.0 semver: 7.3.5 tsutils: 3.21.0_typescript@4.4.3 @@ -2088,16 +2098,16 @@ packages: - supports-color dev: true - /@typescript-eslint/experimental-utils/4.31.1_eslint@7.32.0+typescript@4.4.3: - resolution: {integrity: sha512-NtoPsqmcSsWty0mcL5nTZXMf7Ei0Xr2MT8jWjXMVgRK0/1qeQ2jZzLFUh4QtyJ4+/lPUyMw5cSfeeME+Zrtp9Q==} + /@typescript-eslint/experimental-utils/4.32.0_eslint@7.32.0+typescript@4.4.3: + resolution: {integrity: sha512-WLoXcc+cQufxRYjTWr4kFt0DyEv6hDgSaFqYhIzQZ05cF+kXfqXdUh+//kgquPJVUBbL3oQGKQxwPbLxHRqm6A==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: eslint: '*' dependencies: '@types/json-schema': 7.0.9 - '@typescript-eslint/scope-manager': 4.31.1 - '@typescript-eslint/types': 4.31.1 - '@typescript-eslint/typescript-estree': 4.31.1_typescript@4.4.3 + '@typescript-eslint/scope-manager': 4.32.0 + '@typescript-eslint/types': 4.32.0 + '@typescript-eslint/typescript-estree': 4.32.0_typescript@4.4.3 eslint: 7.32.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@7.32.0 @@ -2106,8 +2116,8 @@ packages: - typescript dev: true - /@typescript-eslint/parser/4.31.1_eslint@7.32.0+typescript@4.4.3: - resolution: {integrity: sha512-dnVZDB6FhpIby6yVbHkwTKkn2ypjVIfAR9nh+kYsA/ZL0JlTsd22BiDjouotisY3Irmd3OW1qlk9EI5R8GrvRQ==} + /@typescript-eslint/parser/4.32.0_eslint@7.32.0+typescript@4.4.3: + resolution: {integrity: sha512-lhtYqQ2iEPV5JqV7K+uOVlPePjClj4dOw7K4/Z1F2yvjIUvyr13yJnDzkK6uon4BjHYuHy3EG0c2Z9jEhFk56w==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 @@ -2116,9 +2126,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 4.31.1 - '@typescript-eslint/types': 4.31.1 - '@typescript-eslint/typescript-estree': 4.31.1_typescript@4.4.3 + '@typescript-eslint/scope-manager': 4.32.0 + '@typescript-eslint/types': 4.32.0 + '@typescript-eslint/typescript-estree': 4.32.0_typescript@4.4.3 debug: 4.3.2 eslint: 7.32.0 typescript: 4.4.3 @@ -2126,21 +2136,21 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager/4.31.1: - resolution: {integrity: sha512-N1Uhn6SqNtU2XpFSkD4oA+F0PfKdWHyr4bTX0xTj8NRx1314gBDRL1LUuZd5+L3oP+wo6hCbZpaa1in6SwMcVQ==} + /@typescript-eslint/scope-manager/4.32.0: + resolution: {integrity: sha512-DK+fMSHdM216C0OM/KR1lHXjP1CNtVIhJ54kQxfOE6x8UGFAjha8cXgDMBEIYS2XCYjjCtvTkjQYwL3uvGOo0w==} engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} dependencies: - '@typescript-eslint/types': 4.31.1 - '@typescript-eslint/visitor-keys': 4.31.1 + '@typescript-eslint/types': 4.32.0 + '@typescript-eslint/visitor-keys': 4.32.0 dev: true - /@typescript-eslint/types/4.31.1: - resolution: {integrity: sha512-kixltt51ZJGKENNW88IY5MYqTBA8FR0Md8QdGbJD2pKZ+D5IvxjTYDNtJPDxFBiXmka2aJsITdB1BtO1fsgmsQ==} + /@typescript-eslint/types/4.32.0: + resolution: {integrity: sha512-LE7Z7BAv0E2UvqzogssGf1x7GPpUalgG07nGCBYb1oK4mFsOiFC/VrSMKbZQzFJdN2JL5XYmsx7C7FX9p9ns0w==} engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} dev: true - /@typescript-eslint/typescript-estree/4.31.1_typescript@4.4.3: - resolution: {integrity: sha512-EGHkbsUvjFrvRnusk6yFGqrqMBTue5E5ROnS5puj3laGQPasVUgwhrxfcgkdHNFECHAewpvELE1Gjv0XO3mdWg==} + /@typescript-eslint/typescript-estree/4.32.0_typescript@4.4.3: + resolution: {integrity: sha512-tRYCgJ3g1UjMw1cGG8Yn1KzOzNlQ6u1h9AmEtPhb5V5a1TmiHWcRyF/Ic+91M4f43QeChyYlVTcf3DvDTZR9vw==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: typescript: '*' @@ -2148,11 +2158,11 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 4.31.1 - '@typescript-eslint/visitor-keys': 4.31.1 + '@typescript-eslint/types': 4.32.0 + '@typescript-eslint/visitor-keys': 4.32.0 debug: 4.3.2 globby: 11.0.4 - is-glob: 4.0.1 + is-glob: 4.0.3 semver: 7.3.5 tsutils: 3.21.0_typescript@4.4.3 typescript: 4.4.3 @@ -2160,11 +2170,11 @@ packages: - supports-color dev: true - /@typescript-eslint/visitor-keys/4.31.1: - resolution: {integrity: sha512-PCncP8hEqKw6SOJY+3St4LVtoZpPPn+Zlpm7KW5xnviMhdqcsBty4Lsg4J/VECpJjw1CkROaZhH4B8M1OfnXTQ==} + /@typescript-eslint/visitor-keys/4.32.0: + resolution: {integrity: sha512-e7NE0qz8W+atzv3Cy9qaQ7BTLwWsm084Z0c4nIO2l3Bp6u9WIgdqCgyPyV5oSPDMIW3b20H59OOCmVk3jw3Ptw==} engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} dependencies: - '@typescript-eslint/types': 4.31.1 + '@typescript-eslint/types': 4.32.0 eslint-visitor-keys: 2.1.0 dev: true @@ -2504,8 +2514,8 @@ packages: uri-js: 4.4.1 dev: true - /ajv/8.6.0: - resolution: {integrity: sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ==} + /ajv/8.6.2: + resolution: {integrity: sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==} dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 @@ -2513,8 +2523,8 @@ packages: uri-js: 4.4.1 dev: true - /ajv/8.6.2: - resolution: {integrity: sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==} + /ajv/8.6.3: + resolution: {integrity: sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==} dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 @@ -2676,7 +2686,7 @@ packages: graphql: 15.6.0 dev: false - /apollo-server-fastify/3.3.0_fastify@3.20.1+graphql@15.6.0: + /apollo-server-fastify/3.3.0_fastify@3.21.6+graphql@15.6.0: resolution: {integrity: sha512-+FrsG6l2SCQjOXzbdAnh8a3KwiTMwjyDUTZbmhkkyb3MycOd7I3smTi/BTXFST4a6EL2FfvqC9wSUe1TABZu/A==} engines: {node: '>=12.0'} peerDependencies: @@ -2686,7 +2696,7 @@ packages: apollo-server-core: 3.3.0_graphql@15.6.0 apollo-server-types: 3.2.0_graphql@15.6.0 fast-json-stringify: 2.7.9 - fastify: 3.20.1 + fastify: 3.21.6 fastify-accepts: 2.0.1 fastify-cors: 6.0.2 graphql: 15.6.0 @@ -2748,7 +2758,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - es-abstract: 1.18.6 + es-abstract: 1.19.0 get-intrinsic: 1.1.1 is-string: 1.0.7 dev: true @@ -2771,13 +2781,13 @@ packages: es-abstract: 1.18.6 dev: false - /array.prototype.flat/1.2.4: - resolution: {integrity: sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==} + /array.prototype.flat/1.2.5: + resolution: {integrity: sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - es-abstract: 1.18.6 + es-abstract: 1.19.0 dev: true /asn1/0.2.4: @@ -2858,18 +2868,18 @@ packages: - debug dev: false - /babel-jest/27.2.4_@babel+core@7.15.0: + /babel-jest/27.2.4_@babel+core@7.15.5: resolution: {integrity: sha512-f24OmxyWymk5jfgLdlCMu4fTs4ldxFBIdn5sJdhvGC1m08rSkJ5hYbWkNmfBSvE/DjhCVNSHXepxsI6THGfGsg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: - '@babel/core': 7.15.0 + '@babel/core': 7.15.5 '@jest/transform': 27.2.4 '@jest/types': 27.2.4 - '@types/babel__core': 7.1.15 + '@types/babel__core': 7.1.16 babel-plugin-istanbul: 6.0.0 - babel-preset-jest: 27.2.0_@babel+core@7.15.0 + babel-preset-jest: 27.2.0_@babel+core@7.15.5 chalk: 4.1.2 graceful-fs: 4.2.8 slash: 3.0.0 @@ -2894,41 +2904,41 @@ packages: resolution: {integrity: sha512-TOux9khNKdi64mW+0OIhcmbAn75tTlzKhxmiNXevQaPbrBYK7YKjP1jl6NHTJ6XR5UgUrJbCnWlKVnJn29dfjw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@babel/template': 7.14.5 - '@babel/types': 7.15.0 - '@types/babel__core': 7.1.15 + '@babel/template': 7.15.4 + '@babel/types': 7.15.6 + '@types/babel__core': 7.1.16 '@types/babel__traverse': 7.14.2 dev: true - /babel-preset-current-node-syntax/1.0.1_@babel+core@7.15.0: + /babel-preset-current-node-syntax/1.0.1_@babel+core@7.15.5: resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.15.0 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.15.0 - '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.15.0 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.15.0 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.15.0 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.15.0 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.15.0 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.15.0 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.15.0 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.15.0 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.15.0 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.15.0 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.15.0 + '@babel/core': 7.15.5 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.15.5 + '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.15.5 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.15.5 + '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.15.5 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.15.5 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.15.5 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.15.5 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.15.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.15.5 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.15.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.15.5 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.15.5 dev: true - /babel-preset-jest/27.2.0_@babel+core@7.15.0: + /babel-preset-jest/27.2.0_@babel+core@7.15.5: resolution: {integrity: sha512-z7MgQ3peBwN5L5aCqBKnF6iqdlvZvFUQynEhu0J+X9nHLU72jO3iY331lcYrg+AssJ8q7xsv5/3AICzVmJ/wvg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.15.0 + '@babel/core': 7.15.5 babel-plugin-jest-hoist: 27.2.0 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.15.0 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.15.5 dev: true /backo2/1.0.2: @@ -3008,16 +3018,16 @@ packages: resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} dev: true - /browserslist/4.17.0: - resolution: {integrity: sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==} + /browserslist/4.17.2: + resolution: {integrity: sha512-jSDZyqJmkKMEMi7SZAgX5UltFdR5NAO43vY0AwTpu4X3sGH7GLLQ83KiUomgrnvZRCeW0yPPnKqnxPqQOER9zQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001255 - colorette: 1.4.0 - electron-to-chromium: 1.3.833 + caniuse-lite: 1.0.30001263 + electron-to-chromium: 1.3.857 escalade: 3.1.1 - node-releases: 1.1.75 + nanocolors: 0.2.12 + node-releases: 1.1.76 dev: true /bs-logger/0.2.6: @@ -3038,6 +3048,13 @@ packages: engines: {node: '>=0.6.19'} dev: false + /bson/4.5.2: + resolution: {integrity: sha512-8CEMJpwc7qlQtrn2rney38jQSEeMar847lz0LyitwRmVknAW8iHXrzW4fTjHfyWm0E3sukyD/zppdH+QU1QefA==} + engines: {node: '>=6.9.0'} + dependencies: + buffer: 5.7.1 + dev: true + /buffer-equal-constant-time/1.0.1: resolution: {integrity: sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=} dev: false @@ -3125,8 +3142,8 @@ packages: resolution: {integrity: sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==} engines: {node: '>=10'} - /caniuse-lite/1.0.30001255: - resolution: {integrity: sha512-F+A3N9jTZL882f/fg/WWVnKSu6IOo3ueLz4zwaOPbPYHNmM/ZaDUyzyJwS1mZhX7Ex5jqTyW599Gdelh5PDYLQ==} + /caniuse-lite/1.0.30001263: + resolution: {integrity: sha512-doiV5dft6yzWO1WwU19kt8Qz8R0/8DgEziz6/9n2FxUasteZNwNNYSmJO3GLBH8lCVE73AB1RPDPAeYbcO5Cvw==} dev: true /caseless/0.12.0: @@ -3229,6 +3246,11 @@ packages: /cli-spinners/2.6.0: resolution: {integrity: sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==} engines: {node: '>=6'} + dev: true + + /cli-spinners/2.6.1: + resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} + engines: {node: '>=6'} /cli-table3/0.5.1: resolution: {integrity: sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==} @@ -3255,8 +3277,8 @@ packages: /cliui/7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} dependencies: - string-width: 4.2.2 - strip-ansi: 6.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 wrap-ansi: 7.0.0 /clone/1.0.4: @@ -3547,6 +3569,10 @@ packages: resolution: {integrity: sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=} dev: true + /deep-is/0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true + /deepmerge/4.2.2: resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} engines: {node: '>=0.10.0'} @@ -3694,8 +3720,8 @@ packages: jake: 10.8.2 dev: false - /electron-to-chromium/1.3.833: - resolution: {integrity: sha512-h+9aVaUHjyunLqtCjJF2jrJ73tYcJqo2cCGKtVAXH9WmnBsb8hiChRQ0P1uXjdxR6Wcfxibephy41c1YlZA/pA==} + /electron-to-chromium/1.3.857: + resolution: {integrity: sha512-a5kIr2lajm4bJ5E4D3fp8Y/BRB0Dx2VOcCRE5Gtb679mXIME/OFhWler8Gy2ksrf8gFX+EFCSIGA33FB3gqYpg==} dev: true /emittery/0.8.1: @@ -3769,6 +3795,14 @@ packages: tapable: 2.2.0 dev: true + /enhanced-resolve/5.8.3: + resolution: {integrity: sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.8 + tapable: 2.2.1 + dev: true + /enquirer/2.3.6: resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} engines: {node: '>=8.6'} @@ -3809,11 +3843,42 @@ packages: string.prototype.trimend: 1.0.4 string.prototype.trimstart: 1.0.4 unbox-primitive: 1.0.1 + dev: false + + /es-abstract/1.19.0: + resolution: {integrity: sha512-oWPrF+7P1nGv/rw9oIInwdkmI1qediEJSvVfHFryBd8mWllCKB5tke3aKyf51J6chgyKmi6mODqdnin2yb88Nw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + es-to-primitive: 1.2.1 + function-bind: 1.1.1 + get-intrinsic: 1.1.1 + get-symbol-description: 1.0.0 + has: 1.0.3 + has-symbols: 1.0.2 + internal-slot: 1.0.3 + is-callable: 1.2.4 + is-negative-zero: 2.0.1 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.1 + is-string: 1.0.7 + is-weakref: 1.0.1 + object-inspect: 1.11.0 + object-keys: 1.1.1 + object.assign: 4.1.2 + string.prototype.trimend: 1.0.4 + string.prototype.trimstart: 1.0.4 + unbox-primitive: 1.0.1 + dev: true /es-module-lexer/0.7.1: resolution: {integrity: sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw==} dev: true + /es-module-lexer/0.9.2: + resolution: {integrity: sha512-YkAGWqxZq2B4FxQ5y687UwywDwvLQhIMCZ+SDU7ZW729SDHOEI6wVFXwTRecz+yiwJzCsVwC6V7bxyNbZSB1rg==} + dev: true + /es-to-primitive/1.2.1: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} @@ -3888,7 +3953,7 @@ packages: eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 dependencies: array-includes: 3.1.3 - array.prototype.flat: 1.2.4 + array.prototype.flat: 1.2.5 debug: 2.6.9 doctrine: 2.1.0 eslint: 7.32.0 @@ -3896,7 +3961,7 @@ packages: eslint-module-utils: 2.6.2 find-up: 2.1.0 has: 1.0.3 - is-core-module: 2.6.0 + is-core-module: 2.7.0 minimatch: 3.0.4 object.values: 1.1.4 pkg-up: 2.0.0 @@ -4070,7 +4135,7 @@ packages: merge-stream: 2.0.0 npm-run-path: 4.0.1 onetime: 5.1.2 - signal-exit: 3.0.3 + signal-exit: 3.0.5 strip-final-newline: 2.0.0 dev: true @@ -4146,6 +4211,15 @@ packages: /fast-json-stable-stringify/2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + /fast-json-stringify/2.7.10: + resolution: {integrity: sha512-MPuVXMMueV8e3TRVLOpxxicJnSdu5mwbHrsO9IZU15zqfay6k19OqIv7N2DCeNPDOCNOmZwjvMUTwvblZsUmFw==} + engines: {node: '>= 10.0.0'} + dependencies: + ajv: 6.12.6 + deepmerge: 4.2.2 + rfdc: 1.3.0 + string-similarity: 4.0.4 + /fast-json-stringify/2.7.9: resolution: {integrity: sha512-FC9RJtux5cyojLEbpLyt6cMo6lkJPsfvx0E5O/I5fFkcnYVOSFjg53VUeVWudYXNJOS9Mmjx7totdrLCUWHPTA==} engines: {node: '>= 10.0.0'} @@ -4154,6 +4228,7 @@ packages: deepmerge: 4.2.2 rfdc: 1.3.0 string-similarity: 4.0.4 + dev: false /fast-levenshtein/2.0.6: resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=} @@ -4163,8 +4238,8 @@ packages: resolution: {integrity: sha512-YN+CYfCVRVMUZOUPeinHNKgytM1wPI/C/UCLEi56EsY2dwwvI00kIJHJoI7pMVqGoMew8SMZ2SSfHKHULHXDsg==} engines: {node: '>=6'} - /fast-safe-stringify/2.0.8: - resolution: {integrity: sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag==} + /fast-safe-stringify/2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} /fastify-accepts/2.0.1: resolution: {integrity: sha512-L7yOz/NQ4WMd6RP3eDz1bEBDXRT0Xw7ij8cNUhIw5IwDnKxnpPiX8NZd4HU+N28GEK+X5V3OrbRSYXM1upWdDg==} @@ -4246,42 +4321,19 @@ packages: /fastify-warning/0.2.0: resolution: {integrity: sha512-s1EQguBw/9qtc1p/WTY4eq9WMRIACkj+HTcOIK1in4MV5aFaQC9ZCIt0dJ7pr5bIf4lPpHvAtP2ywpTNgs7hqw==} - /fastify/3.20.1: - resolution: {integrity: sha512-AzIpPuHdPaRBMWCg+LbnfGvhmBVpF1tRihGOfpxnUphL1eh8ZrN1GbY3cXY07yn4fUNzYsByTkc9/IjwXH7DAQ==} + /fastify/3.21.6: + resolution: {integrity: sha512-PextZFavEZaqn2ZYbVGBPAI0AiElnVdfqo9sN1wlOi0mhGtYuec4KT82MHe5npCf3Lz++6i7jLl7YKyYidPrMg==} dependencies: '@fastify/ajv-compiler': 1.1.0 abstract-logging: 2.0.1 avvio: 7.2.2 - fast-json-stringify: 2.7.9 - fastify-error: 0.3.1 - fastify-warning: 0.2.0 - find-my-way: 4.3.3 - flatstr: 1.0.12 - light-my-request: 4.4.1 - pino: 6.13.1 - proxy-addr: 2.0.7 - readable-stream: 3.6.0 - rfdc: 1.3.0 - secure-json-parse: 2.4.0 - semver: 7.3.5 - tiny-lru: 7.0.6 - transitivePeerDependencies: - - supports-color - dev: true - - /fastify/3.20.2: - resolution: {integrity: sha512-POvayPpbyvkE/wHQquQsNwIgYKVRz7HhCXYJyzUuWEN3kch7/QeI+/azQCjS6+XHiHZPWQwrBKjJB9FBdJHrgA==} - dependencies: - '@fastify/ajv-compiler': 1.1.0 - abstract-logging: 2.0.1 - avvio: 7.2.2 - fast-json-stringify: 2.7.9 + fast-json-stringify: 2.7.10 fastify-error: 0.3.1 fastify-warning: 0.2.0 find-my-way: 4.3.3 flatstr: 1.0.12 light-my-request: 4.4.4 - pino: 6.13.1 + pino: 6.13.3 proxy-addr: 2.0.7 readable-stream: 3.6.0 rfdc: 1.3.0 @@ -4290,7 +4342,6 @@ packages: tiny-lru: 7.0.6 transitivePeerDependencies: - supports-color - dev: false /fastq/1.12.0: resolution: {integrity: sha512-VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg==} @@ -4393,8 +4444,8 @@ packages: resolution: {integrity: sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=} dev: false - /fork-ts-checker-webpack-plugin/6.3.1: - resolution: {integrity: sha512-uxqlKTEeSJ5/JRr0zaCiw2U+kOV8F4/MhCnnRf6vbxj4ZU3Or0DLl/0CNtXro7uLWDssnuR7wUN7fU9w1I0REA==} + /fork-ts-checker-webpack-plugin/6.3.3: + resolution: {integrity: sha512-S3uMSg8IsIvs0H6VAfojtbf6RcnEXxEpDMT2Q41M2l0m20JO8eA1t4cCJybvrasC8SvvPEtK4B8ztxxfLljhNg==} engines: {node: '>=10', yarn: '>=1.0.0'} dependencies: '@babel/code-frame': 7.14.5 @@ -4404,8 +4455,8 @@ packages: cosmiconfig: 6.0.0 deepmerge: 4.2.2 fs-extra: 9.1.0 - glob: 7.1.7 - memfs: 3.2.2 + glob: 7.2.0 + memfs: 3.3.0 minimatch: 3.0.4 schema-utils: 2.7.0 semver: 7.3.5 @@ -4427,7 +4478,7 @@ packages: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 - mime-types: 2.1.32 + mime-types: 2.1.33 /forwarded/0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} @@ -4578,6 +4629,17 @@ packages: once: 1.4.0 path-is-absolute: 1.0.1 + /glob/7.2.0: + resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.0.4 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + /global/4.4.0: resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} dependencies: @@ -4873,8 +4935,8 @@ packages: mute-stream: 0.0.8 run-async: 2.4.1 rxjs: 6.6.7 - string-width: 4.2.2 - strip-ansi: 6.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 through: 2.3.8 dev: true @@ -4896,6 +4958,27 @@ packages: string-width: 4.2.2 strip-ansi: 6.0.0 through: 2.3.8 + dev: false + + /inquirer/8.1.2: + resolution: {integrity: sha512-DHLKJwLPNgkfwNmsuEUKSejJFbkv0FMO9SMiQbjI3n5NQuCrSIBqP66ggqyz2a6t2qEolKrMjhQ3+W/xXgUQ+Q==} + engines: {node: '>=8.0.0'} + dependencies: + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + external-editor: 3.1.0 + figures: 3.2.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + ora: 5.4.1 + run-async: 2.4.1 + rxjs: 7.3.1 + string-width: 4.2.3 + strip-ansi: 6.0.1 + through: 2.3.8 + dev: true /internal-slot/1.0.3: resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} @@ -4969,8 +5052,8 @@ packages: resolution: {integrity: sha512-kUfRnejcRC9YLgblxoJ76dp9gZ3vMKTrDS5I6z2UVMOsHHSImNKCJocjQTkZr38PwiSZ9LVklaHEENaVYeFTXg==} dev: false - /is-core-module/2.6.0: - resolution: {integrity: sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==} + /is-core-module/2.7.0: + resolution: {integrity: sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==} dependencies: has: 1.0.3 dev: true @@ -5015,6 +5098,13 @@ packages: dependencies: is-extglob: 2.1.1 + /is-glob/4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + /is-interactive/1.0.0: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} @@ -5059,6 +5149,10 @@ packages: engines: {node: '>=0.10.0'} dev: true + /is-shared-array-buffer/1.0.1: + resolution: {integrity: sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==} + dev: true + /is-stream/2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} @@ -5083,6 +5177,12 @@ packages: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} + /is-weakref/1.0.1: + resolution: {integrity: sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==} + dependencies: + call-bind: 1.0.2 + dev: true + /isarray/1.0.0: resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=} dev: false @@ -5094,8 +5194,8 @@ packages: resolution: {integrity: sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=} dev: false - /istanbul-lib-coverage/3.0.0: - resolution: {integrity: sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==} + /istanbul-lib-coverage/3.0.1: + resolution: {integrity: sha512-GvCYYTxaCPqwMjobtVcVKvSHtAGe48MNhGjpK8LtVF8K0ISX7hCKl85LgtuaSneWVyQmaGcW3iXVV3GaZSLpmQ==} engines: {node: '>=8'} dev: true @@ -5103,9 +5203,9 @@ packages: resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.15.0 + '@babel/core': 7.15.5 '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.0.0 + istanbul-lib-coverage: 3.0.1 semver: 6.3.0 transitivePeerDependencies: - supports-color @@ -5115,7 +5215,7 @@ packages: resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} engines: {node: '>=8'} dependencies: - istanbul-lib-coverage: 3.0.0 + istanbul-lib-coverage: 3.0.1 make-dir: 3.1.0 supports-color: 7.2.0 dev: true @@ -5125,7 +5225,7 @@ packages: engines: {node: '>=8'} dependencies: debug: 4.3.2 - istanbul-lib-coverage: 3.0.0 + istanbul-lib-coverage: 3.0.1 source-map: 0.6.1 transitivePeerDependencies: - supports-color @@ -5188,7 +5288,7 @@ packages: jest-util: 27.2.4 pretty-format: 27.2.4 slash: 3.0.0 - stack-utils: 2.0.3 + stack-utils: 2.0.5 throat: 6.0.1 transitivePeerDependencies: - supports-color @@ -5233,13 +5333,13 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.15.0 + '@babel/core': 7.15.5 '@jest/test-sequencer': 27.2.4 '@jest/types': 27.2.4 - babel-jest: 27.2.4_@babel+core@7.15.0 + babel-jest: 27.2.4_@babel+core@7.15.5 chalk: 4.1.2 deepmerge: 4.2.2 - glob: 7.1.7 + glob: 7.2.0 graceful-fs: 4.2.8 is-ci: 3.0.0 jest-circus: 27.2.4 @@ -5359,7 +5459,7 @@ packages: resolution: {integrity: sha512-fcffjO/xLWLVnW2ct3No4EksxM5RyPwHDYu9QU+90cC+/eSMLkFAxS55vkqsxexOO5zSsZ3foVpMQcg/amSeIQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@babel/traverse': 7.15.0 + '@babel/traverse': 7.15.4 '@jest/environment': 27.2.4 '@jest/source-map': 27.0.6 '@jest/test-result': 27.2.4 @@ -5411,7 +5511,7 @@ packages: micromatch: 4.0.4 pretty-format: 27.2.4 slash: 3.0.0 - stack-utils: 2.0.3 + stack-utils: 2.0.5 dev: true /jest-mock/27.2.4: @@ -5490,7 +5590,7 @@ packages: jest-runtime: 27.2.4 jest-util: 27.2.4 jest-worker: 27.2.4 - source-map-support: 0.5.19 + source-map-support: 0.5.20 throat: 6.0.1 transitivePeerDependencies: - bufferutil @@ -5517,7 +5617,7 @@ packages: collect-v8-coverage: 1.0.1 execa: 5.1.1 exit: 0.1.2 - glob: 7.1.7 + glob: 7.2.0 graceful-fs: 4.2.8 jest-haste-map: 27.2.4 jest-message-util: 27.2.4 @@ -5546,17 +5646,17 @@ packages: resolution: {integrity: sha512-5DFxK31rYS8X8C6WXsFx8XxrxW3PGa6+9IrUcZdTLg1aEyXDGIeiBh4jbwvh655bg/9vTETbEj/njfZicHTZZw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@babel/core': 7.15.0 - '@babel/generator': 7.15.0 - '@babel/parser': 7.15.3 - '@babel/plugin-syntax-typescript': 7.14.5_@babel+core@7.15.0 - '@babel/traverse': 7.15.0 - '@babel/types': 7.15.0 + '@babel/core': 7.15.5 + '@babel/generator': 7.15.4 + '@babel/parser': 7.15.7 + '@babel/plugin-syntax-typescript': 7.14.5_@babel+core@7.15.5 + '@babel/traverse': 7.15.4 + '@babel/types': 7.15.6 '@jest/transform': 27.2.4 '@jest/types': 27.2.4 '@types/babel__traverse': 7.14.2 - '@types/prettier': 2.3.2 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.15.0 + '@types/prettier': 2.4.1 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.15.5 chalk: 4.1.2 expect: 27.2.4 graceful-fs: 4.2.8 @@ -5623,15 +5723,6 @@ packages: string-length: 4.0.2 dev: true - /jest-worker/27.1.1: - resolution: {integrity: sha512-XJKCL7tu+362IUYTWvw8+3S75U7qMiYiRU6u5yqscB48bTvzwN6i8L/7wVTXiFLwkRsxARNM7TISnTvcgv9hxA==} - engines: {node: '>= 10.13.0'} - dependencies: - '@types/node': 16.9.1 - merge-stream: 2.0.0 - supports-color: 8.1.1 - dev: true - /jest-worker/27.2.4: resolution: {integrity: sha512-Zq9A2Pw59KkVjBBKD1i3iE2e22oSjXhUKKuAK1HGX8flGwkm6NMozyEYzKd41hXc64dbd/0eWFeEEuxqXyhM+g==} engines: {node: '>= 10.13.0'} @@ -5641,8 +5732,8 @@ packages: supports-color: 8.1.1 dev: true - /jest/27.2.3_ts-node@10.2.1: - resolution: {integrity: sha512-r4ggA29J5xUg93DpvbsX+AXlFMWE3hZ5Y6BfgTl8PJvWelVezNPkmrsixuGoDBTHTCwScRSH0O4wsoeUgLie2w==} + /jest/27.2.4_ts-node@10.2.1: + resolution: {integrity: sha512-h4uqb1EQLfPulWyUFFWv9e9Nn8sCqsJ/j3wk/KCY0p4s4s0ICCfP3iMf6hRf5hEhsDyvyrCgKiZXma63gMz16A==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} hasBin: true peerDependencies: @@ -5723,7 +5814,7 @@ packages: whatwg-encoding: 1.0.5 whatwg-mimetype: 2.3.0 whatwg-url: 8.7.0 - ws: 7.5.4 + ws: 7.5.5 xml-name-validator: 3.0.0 transitivePeerDependencies: - bufferutil @@ -5856,7 +5947,6 @@ packages: /kareem/2.3.2: resolution: {integrity: sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ==} - dev: false /kleur/3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} @@ -5894,25 +5984,14 @@ packages: immediate: 3.0.6 dev: false - /light-my-request/4.4.1: - resolution: {integrity: sha512-FDNRF2mYjthIRWE7O8d/X7AzDx4otQHl4/QXbu3Q/FRwBFcgb+ZoDaUd5HwN53uQXLAiw76osN+Va0NEaOW6rQ==} - dependencies: - ajv: 6.12.6 - cookie: 0.4.1 - fastify-warning: 0.2.0 - readable-stream: 3.6.0 - set-cookie-parser: 2.4.8 - dev: true - /light-my-request/4.4.4: resolution: {integrity: sha512-nxYLB+Lke3wGQ55HQIo/CjSS18xGyHRF0y/u7YxEwp1YsqQTxObteBXYHZY3ELSvYmqy0pRLTWbI5//zRYTXlg==} dependencies: - ajv: 8.6.2 + ajv: 8.6.3 cookie: 0.4.1 fastify-warning: 0.2.0 readable-stream: 3.6.0 set-cookie-parser: 2.4.8 - dev: false /lines-and-columns/1.1.6: resolution: {integrity: sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=} @@ -6068,10 +6147,6 @@ packages: resolution: {integrity: sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=} dev: false - /lodash.toarray/4.4.0: - resolution: {integrity: sha1-JMS/zWsvuji/0FlNsRedjptlZWE=} - dev: true - /lodash.truncate/4.4.2: resolution: {integrity: sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=} dev: true @@ -6145,7 +6220,7 @@ packages: /makeerror/1.0.11: resolution: {integrity: sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=} dependencies: - tmpl: 1.0.4 + tmpl: 1.0.5 dev: true /map-obj/4.2.1: @@ -6163,8 +6238,8 @@ packages: hasBin: true dev: false - /memfs/3.2.2: - resolution: {integrity: sha512-RE0CwmIM3CEvpcdK3rZ19BC4E6hv9kADkMN5rPduRak58cNArWLi/9jFLsa4rhsjfVxMP3v0jO7FHXq7SvFY5Q==} + /memfs/3.3.0: + resolution: {integrity: sha512-BEE62uMfKOavX3iG7GYX43QJ+hAeeWnwIAuJ/R6q96jaMtiLzhsxHJC8B1L7fK7Pt/vXDRwb3SG/yBpNGDPqzg==} engines: {node: '>= 4.0.0'} dependencies: fs-monkey: 1.0.3 @@ -6172,7 +6247,6 @@ packages: /memory-pager/1.5.0: resolution: {integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==} - dev: false optional: true /merge-stream/2.0.0: @@ -6203,12 +6277,22 @@ packages: resolution: {integrity: sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==} engines: {node: '>= 0.6'} + /mime-db/1.50.0: + resolution: {integrity: sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==} + engines: {node: '>= 0.6'} + /mime-types/2.1.32: resolution: {integrity: sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==} engines: {node: '>= 0.6'} dependencies: mime-db: 1.49.0 + /mime-types/2.1.33: + resolution: {integrity: sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.50.0 + /mime/1.6.0: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} engines: {node: '>=4'} @@ -6276,6 +6360,13 @@ packages: resolution: {integrity: sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==} dev: false + /mongodb-connection-string-url/2.1.0: + resolution: {integrity: sha512-Qf9Zw7KGiRljWvMrrUFDdVqo46KIEiDuCzvEN97rh/PcKzk2bd6n9KuzEwBwW9xo5glwx69y1mI6s+jFUD/aIQ==} + dependencies: + '@types/whatwg-url': 8.2.1 + whatwg-url: 9.1.0 + dev: true + /mongodb/3.6.11: resolution: {integrity: sha512-4Y4lTFHDHZZdgMaHmojtNAlqkvddX2QQBEN0K//GzxhGwlI9tZ9R0vhbjr1Decw+TF7qK0ZLjQT292XgHRRQgw==} engines: {node: '>=4'} @@ -6309,6 +6400,17 @@ packages: saslprep: 1.0.3 dev: false + /mongodb/4.1.1: + resolution: {integrity: sha512-fbACrWEyvr6yl0sSiCGV0sqEiBwTtDJ8iSojmkDjAfw9JnOZSAkUyv9seFSPYhPPKwxp1PDtyjvBNfMDz0WBLQ==} + engines: {node: '>=12.9.0'} + dependencies: + bson: 4.5.2 + denque: 1.5.1 + mongodb-connection-string-url: 2.1.0 + optionalDependencies: + saslprep: 1.0.3 + dev: true + /mongoose-lean-id/0.2.0_mongoose@5.13.8: resolution: {integrity: sha512-ioC++wVTfprE2wh7Baw4jdZ1mCIpK3uw74sWf53enNCKZHVhKsL7fMyB1ryb4SmGwOj4StebTGy7YwimjZ0Qlg==} peerDependencies: @@ -6366,6 +6468,23 @@ packages: - snappy dev: false + /mongoose/6.0.8: + resolution: {integrity: sha512-7XZ5TUoDtF8af7+mKfL58s8dN2BKmldQPTlmkb41PaRAleBVGeAck7Mj6JlIh9SOCi+64GT+afebiJaeyXe1Lw==} + engines: {node: '>=12.0.0'} + dependencies: + bson: 4.5.2 + kareem: 2.3.2 + mongodb: 4.1.1 + mpath: 0.8.4 + mquery: 4.0.0 + ms: 2.1.2 + regexp-clone: 1.0.0 + sift: 13.5.2 + sliced: 1.0.1 + transitivePeerDependencies: + - supports-color + dev: true + /mpath/0.8.3: resolution: {integrity: sha512-eb9rRvhDltXVNL6Fxd2zM9D4vKBxjVVQNLNijlj7uoXUy19zNDsIif5zR+pWmPCWNKwAtqyo4JveQm4nfD5+eA==} engines: {node: '>=4.0.0'} @@ -6374,7 +6493,6 @@ packages: /mpath/0.8.4: resolution: {integrity: sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g==} engines: {node: '>=4.0.0'} - dev: false /mquery/3.2.5: resolution: {integrity: sha512-VjOKHHgU84wij7IUoZzFRU07IAxd5kWJaDmyUzQlbjHjyoeK5TNeeo8ZsFDtTYnSgpW6n/nMNIHvE3u8Lbrf4A==} @@ -6387,6 +6505,17 @@ packages: sliced: 1.0.1 dev: false + /mquery/4.0.0: + resolution: {integrity: sha512-nGjm89lHja+T/b8cybAby6H0YgA4qYC/lx6UlwvHGqvTq8bDaNeCwl1sY8uRELrNbVWJzIihxVd+vphGGn1vBw==} + engines: {node: '>=12.0.0'} + dependencies: + debug: 4.3.2 + regexp-clone: 1.0.0 + sliced: 1.0.1 + transitivePeerDependencies: + - supports-color + dev: true + /ms/2.0.0: resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=} @@ -6403,6 +6532,10 @@ packages: /mute-stream/0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + /nanocolors/0.2.12: + resolution: {integrity: sha512-SFNdALvzW+rVlzqexid6epYdt8H9Zol7xDoQarioEFcFN0JHo4CYNztAxmtfgGTVRCmFlEOqqhBpoFGKqSAMug==} + dev: true + /nanoid/3.1.28: resolution: {integrity: sha512-gSu9VZ2HtmoKYe/lmyPFES5nknFrHa+/DT9muUFWFMi6Jh9E1I7bkvlQ8xxf1Kos9pi9o8lBnIOkatMhKX/YUw==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -6421,7 +6554,7 @@ packages: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} dev: true - /nestjs-typegoose/7.1.38_064905de188039c80c10ec90dab9f91a: + /nestjs-typegoose/7.1.38_31d2b1d6854c9430ca02ddc56cbbfaca: resolution: {integrity: sha512-hYgDliG2IS5CJkzRsTbbfwZk+IP0jEyCaxcRqqXvxZaP5miiH9UvGm3K0hg8X5DuVkmsgTzW3+MxOXmcLm9BOA==} engines: {node: '>=8.10.0'} peerDependencies: @@ -6430,8 +6563,8 @@ packages: '@typegoose/typegoose': ^6.2.1 || ^7.0.0 mongoose: ^5.10.6 dependencies: - '@nestjs/common': 8.0.7_82ca6e21bd08a51a509883dd533f031a - '@nestjs/core': 8.0.7_6d0fc1e203275f67fb2d27221b1f9511 + '@nestjs/common': 8.0.9_82ca6e21bd08a51a509883dd533f031a + '@nestjs/core': 8.0.9_52e70c4b6d0a880fc27d6b80ab23839a '@typegoose/typegoose': 8.3.0_mongoose@5.13.8 is-class: 0.0.9 mongoose: 5.13.8 @@ -6455,10 +6588,10 @@ packages: resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==} dev: false - /node-emoji/1.10.0: - resolution: {integrity: sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==} + /node-emoji/1.11.0: + resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} dependencies: - lodash.toarray: 4.4.0 + lodash: 4.17.21 dev: true /node-fetch/2.6.2: @@ -6466,6 +6599,13 @@ packages: engines: {node: 4.x || >=6.0.0} dev: false + /node-fetch/2.6.5: + resolution: {integrity: sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==} + engines: {node: 4.x || >=6.0.0} + dependencies: + whatwg-url: 5.0.0 + dev: false + /node-int64/0.4.0: resolution: {integrity: sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=} dev: true @@ -6475,8 +6615,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /node-releases/1.1.75: - resolution: {integrity: sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==} + /node-releases/1.1.76: + resolution: {integrity: sha512-9/IECtNr8dXNmPWmFXepT0/7o5eolGesHUa3mtr0KlgnCvnZxwh2qensKL42JJY2vQKC3nIBXetFAqR+PW1CmA==} dev: true /node-vibrant/3.2.1-alpha.1: @@ -6577,7 +6717,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - es-abstract: 1.18.6 + es-abstract: 1.19.0 dev: true /omggif/1.0.10: @@ -6619,7 +6759,7 @@ packages: resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} engines: {node: '>= 0.8.0'} dependencies: - deep-is: 0.1.3 + deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.3.0 prelude-ls: 1.1.2 @@ -6661,11 +6801,11 @@ packages: bl: 4.1.0 chalk: 4.1.2 cli-cursor: 3.1.0 - cli-spinners: 2.6.0 + cli-spinners: 2.6.1 is-interactive: 1.0.0 is-unicode-supported: 0.1.0 log-symbols: 4.1.0 - strip-ansi: 6.0.0 + strip-ansi: 6.0.1 wcwidth: 1.0.1 /os-name/4.0.1: @@ -6908,16 +7048,16 @@ packages: /pino-std-serializers/3.2.0: resolution: {integrity: sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==} - /pino/6.13.1: - resolution: {integrity: sha512-QQf67BU+cANnc/2U+wzUV20UjO5oBryWpnNyKshdLfT9BdeiXlh9wxLGmOjAuBWMYITdMs+BtJSQQNlGRNbWpA==} + /pino/6.13.3: + resolution: {integrity: sha512-tJy6qVgkh9MwNgqX1/oYi3ehfl2Y9H0uHyEEMsBe74KinESIjdMrMQDWpcZPpPicg3VV35d/GLQZmo4QgU2Xkg==} hasBin: true dependencies: fast-redact: 3.0.2 - fast-safe-stringify: 2.0.8 + fast-safe-stringify: 2.1.1 fastify-warning: 0.2.0 flatstr: 1.0.12 pino-std-serializers: 3.2.0 - quick-format-unescaped: 4.0.3 + quick-format-unescaped: 4.0.4 sonic-boom: 1.4.1 /pirates/4.0.1: @@ -6994,15 +7134,15 @@ packages: commander: 4.1.1 cosmiconfig: 7.0.1 fs-extra: 10.0.0 - glob: 7.1.7 + glob: 7.2.0 minimatch: 3.0.4 parse-author: 2.0.0 sort-object-keys: 1.1.3 sort-order: 1.0.1 dev: true - /prettier-plugin-organize-imports/2.3.3_prettier@2.4.1+typescript@4.4.3: - resolution: {integrity: sha512-PBOwQ8vEIB2b7B3gCuBG7D+dqsr1fsTR4TSAjNacRVdHJrD0yzgz9grOLPSyfwJm+NUTZLyWeHoZ+1mHaUrk+g==} + /prettier-plugin-organize-imports/2.3.4_prettier@2.4.1+typescript@4.4.3: + resolution: {integrity: sha512-R8o23sf5iVL/U71h9SFUdhdOEPsi3nm42FD/oDYIZ2PQa4TNWWuWecxln6jlIQzpZTDMUeO1NicJP6lLn2TtRw==} peerDependencies: prettier: '>=2.0' typescript: '>=2.9' @@ -7112,8 +7252,8 @@ packages: inherits: 2.0.4 dev: false - /quick-format-unescaped/4.0.3: - resolution: {integrity: sha512-MaL/oqh02mhEo5m5J2rwsVL23Iw2PEaGVHgT2vFt8AAsr0lfvQA5dpXo9TPu0rz7tSBdUPgkbam0j/fj5ZM8yg==} + /quick-format-unescaped/4.0.4: + resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} /quick-lru/5.1.1: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} @@ -7218,7 +7358,6 @@ packages: /regexp-clone/1.0.0: resolution: {integrity: sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==} - dev: false /regexpp/3.2.0: resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} @@ -7285,7 +7424,7 @@ packages: /resolve/1.20.0: resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==} dependencies: - is-core-module: 2.6.0 + is-core-module: 2.7.0 path-parse: 1.0.7 dev: true @@ -7294,7 +7433,7 @@ packages: engines: {node: '>=8'} dependencies: onetime: 5.1.2 - signal-exit: 3.0.3 + signal-exit: 3.0.5 /ret/0.2.2: resolution: {integrity: sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==} @@ -7342,7 +7481,6 @@ packages: resolution: {integrity: sha512-vNenx7gqjPyeKpRnM6S5Ksm/oFTRijWWzYlRON04KaehZ3YjDwEmVjGUGo0TKWVjeNXOujVRlh0K1drUbcdPkw==} dependencies: tslib: 2.1.0 - dev: false /safe-buffer/5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} @@ -7364,7 +7502,6 @@ packages: requiresBuild: true dependencies: sparse-bitfield: 3.0.3 - dev: false optional: true /sax/1.2.4: @@ -7487,7 +7624,7 @@ packages: engines: {node: '>=4'} hasBin: true dependencies: - glob: 7.1.7 + glob: 7.2.0 interpret: 1.4.0 rechoir: 0.6.2 dev: true @@ -7501,11 +7638,13 @@ packages: /sift/13.5.2: resolution: {integrity: sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA==} - dev: false /signal-exit/3.0.3: resolution: {integrity: sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==} + /signal-exit/3.0.5: + resolution: {integrity: sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==} + /sisteransi/1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} dev: true @@ -7540,7 +7679,6 @@ packages: /sliced/1.0.1: resolution: {integrity: sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=} - dev: false /snake-case/3.0.4: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} @@ -7626,8 +7764,8 @@ packages: resolution: {integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==} dev: true - /source-map-support/0.5.19: - resolution: {integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==} + /source-map-support/0.5.20: + resolution: {integrity: sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==} dependencies: buffer-from: 1.1.2 source-map: 0.6.1 @@ -7655,7 +7793,6 @@ packages: resolution: {integrity: sha1-/0rm5oZWBWuks+eSqzM004JzyhE=} dependencies: memory-pager: 1.5.0 - dev: false optional: true /spdx-correct/3.1.1: @@ -7706,8 +7843,8 @@ packages: tweetnacl: 0.14.5 dev: false - /stack-utils/2.0.3: - resolution: {integrity: sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==} + /stack-utils/2.0.5: + resolution: {integrity: sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==} engines: {node: '>=10'} dependencies: escape-string-regexp: 2.0.0 @@ -7747,7 +7884,7 @@ packages: engines: {node: '>=10'} dependencies: char-regex: 1.0.2 - strip-ansi: 6.0.0 + strip-ansi: 6.0.1 dev: true /string-similarity/4.0.4: @@ -7777,6 +7914,14 @@ packages: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.0 + /string-width/4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + /string.prototype.trimend/1.0.4: resolution: {integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==} dependencies: @@ -7828,6 +7973,12 @@ packages: dependencies: ansi-regex: 5.0.1 + /strip-ansi/6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + /strip-bom/3.0.0: resolution: {integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=} engines: {node: '>=4'} @@ -7927,6 +8078,11 @@ packages: engines: {node: '>=6'} dev: true + /tapable/2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + dev: true + /tar/6.1.11: resolution: {integrity: sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==} engines: {node: '>= 10'} @@ -7947,8 +8103,8 @@ packages: supports-hyperlinks: 2.2.0 dev: true - /terser-webpack-plugin/5.2.3_webpack@5.45.1: - resolution: {integrity: sha512-eDbuaDlXhVaaoKuLD3DTNTozKqln6xOG6Us0SzlKG5tNlazG+/cdl8pm9qiF1Di89iWScTI0HcO+CDcf2dkXiw==} + /terser-webpack-plugin/5.2.4_webpack@5.45.1: + resolution: {integrity: sha512-E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA==} engines: {node: '>= 10.13.0'} peerDependencies: '@swc/core': '*' @@ -7963,17 +8119,17 @@ packages: uglify-js: optional: true dependencies: - jest-worker: 27.1.1 + jest-worker: 27.2.4 p-limit: 3.1.0 schema-utils: 3.1.1 serialize-javascript: 6.0.0 source-map: 0.6.1 - terser: 5.7.2 + terser: 5.9.0 webpack: 5.45.1 dev: true - /terser-webpack-plugin/5.2.3_webpack@5.52.0: - resolution: {integrity: sha512-eDbuaDlXhVaaoKuLD3DTNTozKqln6xOG6Us0SzlKG5tNlazG+/cdl8pm9qiF1Di89iWScTI0HcO+CDcf2dkXiw==} + /terser-webpack-plugin/5.2.4_webpack@5.56.0: + resolution: {integrity: sha512-E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA==} engines: {node: '>= 10.13.0'} peerDependencies: '@swc/core': '*' @@ -7988,23 +8144,23 @@ packages: uglify-js: optional: true dependencies: - jest-worker: 27.1.1 + jest-worker: 27.2.4 p-limit: 3.1.0 schema-utils: 3.1.1 serialize-javascript: 6.0.0 source-map: 0.6.1 - terser: 5.7.2 - webpack: 5.52.0 + terser: 5.9.0 + webpack: 5.56.0 dev: true - /terser/5.7.2: - resolution: {integrity: sha512-0Omye+RD4X7X69O0eql3lC4Heh/5iLj3ggxR/B5ketZLOtLiOqukUgjw3q4PDnNQbsrkKr3UMypqStQG3XKRvw==} + /terser/5.9.0: + resolution: {integrity: sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ==} engines: {node: '>=10'} hasBin: true dependencies: commander: 2.20.3 source-map: 0.7.3 - source-map-support: 0.5.19 + source-map-support: 0.5.20 dev: true /test-exclude/6.0.0: @@ -8012,7 +8168,7 @@ packages: engines: {node: '>=8'} dependencies: '@istanbuljs/schema': 0.1.3 - glob: 7.1.7 + glob: 7.2.0 minimatch: 3.0.4 dev: true @@ -8045,8 +8201,8 @@ packages: dependencies: os-tmpdir: 1.0.2 - /tmpl/1.0.4: - resolution: {integrity: sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=} + /tmpl/1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} dev: true /to-fast-properties/2.0.0: @@ -8082,6 +8238,10 @@ packages: universalify: 0.1.2 dev: true + /tr46/0.0.3: + resolution: {integrity: sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=} + dev: false + /tr46/2.1.0: resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==} engines: {node: '>=8'} @@ -8094,7 +8254,7 @@ packages: hasBin: true dev: true - /ts-jest/27.0.5_3f00e57d4cc005a60af484dfb2e33bba: + /ts-jest/27.0.5_52a571d76319e63aeaa66dc9db9e90cc: resolution: {integrity: sha512-lIJApzfTaSSbtlksfFNHkWOzLJuuSm4faFAfo5kvzOiRAuoN4/eKxVJ2zEAho8aecE04qX6K1pAzfH5QHL1/8w==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} hasBin: true @@ -8115,7 +8275,7 @@ packages: '@types/jest': 27.0.2 bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 27.2.3_ts-node@10.2.1 + jest: 27.2.4_ts-node@10.2.1 jest-util: 27.1.0 json5: 2.2.0 lodash: 4.17.21 @@ -8125,7 +8285,7 @@ packages: yargs-parser: 20.2.9 dev: true - /ts-loader/9.2.6_typescript@4.4.3+webpack@5.52.0: + /ts-loader/9.2.6_typescript@4.4.3+webpack@5.56.0: resolution: {integrity: sha512-QMTC4UFzHmu9wU2VHZEmWWE9cUajjfcdcws+Gh7FhiO+Dy0RnR1bNz0YCHqhI0yRowCE9arVnNxYHqELOy9Hjw==} engines: {node: '>=12.0.0'} peerDependencies: @@ -8137,7 +8297,7 @@ packages: micromatch: 4.0.4 semver: 7.3.5 typescript: 4.4.3 - webpack: 5.52.0 + webpack: 5.56.0 dev: true /ts-morph/12.0.0: @@ -8182,18 +8342,10 @@ packages: resolution: {integrity: sha512-n5CMlUUj+N5pjBhBACLq4jdr9cPTitySCjIosoQm0zwK99gmrcTGAfY9CwxRFT9+9OleNWXPRUcxsKP4AYExxQ==} dependencies: chalk: 4.1.2 - enhanced-resolve: 5.8.2 + enhanced-resolve: 5.8.3 tsconfig-paths: 3.11.0 dev: true - /tsconfig-paths/3.10.1: - resolution: {integrity: sha512-rETidPDgCpltxF7MjBZlAFPUHv5aHH2MymyPvh+vEyWAED4Eb/WeMbsnD/JDr4OKPOA1TssDHgIcpTN5Kh0p6Q==} - dependencies: - json5: 2.2.0 - minimist: 1.2.5 - strip-bom: 3.0.0 - dev: true - /tsconfig-paths/3.11.0: resolution: {integrity: sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==} dependencies: @@ -8212,7 +8364,6 @@ packages: /tslib/2.1.0: resolution: {integrity: sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==} - dev: false /tslib/2.2.0: resolution: {integrity: sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==} @@ -8429,6 +8580,10 @@ packages: dependencies: defaults: 1.0.3 + /webidl-conversions/3.0.1: + resolution: {integrity: sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=} + dev: false + /webidl-conversions/5.0.0: resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==} engines: {node: '>=8'} @@ -8452,8 +8607,8 @@ packages: source-map: 0.6.1 dev: true - /webpack-sources/3.2.0: - resolution: {integrity: sha512-fahN08Et7P9trej8xz/Z7eRu8ltyiygEo/hnRi9KqBUs80KeDcnf96ZJo++ewWd84fEf3xSX9bp4ZS9hbw0OBw==} + /webpack-sources/3.2.1: + resolution: {integrity: sha512-t6BMVLQ0AkjBOoRTZgqrWm7xbXMBzD+XDq2EZ96+vMfn3qKgsvdXZhbPZ4ElUOpdv4u+iiGe+w3+J75iy/bYGA==} engines: {node: '>=10.13.0'} dev: true @@ -8473,9 +8628,9 @@ packages: '@webassemblyjs/wasm-edit': 1.11.1 '@webassemblyjs/wasm-parser': 1.11.1 acorn: 8.5.0 - browserslist: 4.17.0 + browserslist: 4.17.2 chrome-trace-event: 1.0.3 - enhanced-resolve: 5.8.2 + enhanced-resolve: 5.8.3 es-module-lexer: 0.7.1 eslint-scope: 5.1.1 events: 3.3.0 @@ -8483,11 +8638,11 @@ packages: graceful-fs: 4.2.8 json-parse-better-errors: 1.0.2 loader-runner: 4.2.0 - mime-types: 2.1.32 + mime-types: 2.1.33 neo-async: 2.6.2 schema-utils: 3.1.1 - tapable: 2.2.0 - terser-webpack-plugin: 5.2.3_webpack@5.45.1 + tapable: 2.2.1 + terser-webpack-plugin: 5.2.4_webpack@5.45.1 watchpack: 2.2.0 webpack-sources: 2.3.1 transitivePeerDependencies: @@ -8496,8 +8651,8 @@ packages: - uglify-js dev: true - /webpack/5.52.0: - resolution: {integrity: sha512-yRZOat8jWGwBwHpco3uKQhVU7HYaNunZiJ4AkAVQkPCUGoZk/tiIXiwG+8HIy/F+qsiZvSOa+GLQOj3q5RKRYg==} + /webpack/5.56.0: + resolution: {integrity: sha512-pJ7esw2AGkpZL0jqsEAKnDEfRZdrc9NVjAWA+d1mFkwj68ng9VQ6+Wnrl+kS5dlDHvrat5ASK5vd7wp6I7f53Q==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -8513,23 +8668,23 @@ packages: '@webassemblyjs/wasm-parser': 1.11.1 acorn: 8.5.0 acorn-import-assertions: 1.7.6_acorn@8.5.0 - browserslist: 4.17.0 + browserslist: 4.17.2 chrome-trace-event: 1.0.3 - enhanced-resolve: 5.8.2 - es-module-lexer: 0.7.1 + enhanced-resolve: 5.8.3 + es-module-lexer: 0.9.2 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 graceful-fs: 4.2.8 json-parse-better-errors: 1.0.2 loader-runner: 4.2.0 - mime-types: 2.1.32 + mime-types: 2.1.33 neo-async: 2.6.2 schema-utils: 3.1.1 - tapable: 2.2.0 - terser-webpack-plugin: 5.2.3_webpack@5.52.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.2.4_webpack@5.56.0 watchpack: 2.2.0 - webpack-sources: 3.2.0 + webpack-sources: 3.2.1 transitivePeerDependencies: - '@swc/core' - esbuild @@ -8546,6 +8701,13 @@ packages: resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==} dev: true + /whatwg-url/5.0.0: + resolution: {integrity: sha1-lmRU6HZUYuN2RNNib2dCzotwll0=} + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + dev: false + /whatwg-url/8.7.0: resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==} engines: {node: '>=10'} @@ -8555,6 +8717,14 @@ packages: webidl-conversions: 6.1.0 dev: true + /whatwg-url/9.1.0: + resolution: {integrity: sha512-CQ0UcrPHyomtlOCot1TL77WyMIm/bCwrJ2D6AOKGwEczU9EpyoqAokfqrf/MioU9kHcMsmJZcg1egXix2KYEsA==} + engines: {node: '>=12'} + dependencies: + tr46: 2.1.0 + webidl-conversions: 6.1.0 + dev: true + /which-boxed-primitive/1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: @@ -8614,7 +8784,7 @@ packages: dependencies: imurmurhash: 0.1.4 is-typedarray: 1.0.0 - signal-exit: 3.0.3 + signal-exit: 3.0.5 typedarray-to-buffer: 3.1.5 dev: true @@ -8641,6 +8811,20 @@ packages: optional: true utf-8-validate: optional: true + dev: false + + /ws/7.5.5: + resolution: {integrity: sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true /ws/8.2.2: resolution: {integrity: sha512-Q6B6H2oc8QY3llc3cB8kVmQ6pnJWVQbP7Q5algTcIxx7YEpc0oU4NBVHlztA7Ekzfhw2r0rPducMUiCGWKQRzw==} @@ -8727,7 +8911,7 @@ packages: escalade: 3.1.1 get-caller-file: 2.0.5 require-directory: 2.1.1 - string-width: 4.2.2 + string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 20.2.9 dev: true diff --git a/src/app.config.js b/src/app.config.js new file mode 100644 index 00000000..ae9fc5c3 --- /dev/null +++ b/src/app.config.js @@ -0,0 +1,63 @@ +const yargs = require('yargs') +const isDev = process.env.NODE_ENV === 'development' + +Object.defineProperty(exports, '__esModule', { value: true }) + +/** + * @type {any} + */ +const argv = yargs.argv +console.log(argv) + +exports.API_VERSION = 2 +exports.CROSS_DOMAIN = { + allowedOrigins: argv.allowedOrigins + ? argv.allowedOrigins?.split?.(',') + : [ + 'innei.ren', + 'shizuri.net', + 'localhost:9528', + 'localhost:2323', + '127.0.0.1', + 'mbp.cc', + 'local.innei.test', + '22333322.xyz', + ], + // allowedReferer: 'innei.ren', +} + +exports.MONGO_DB = { + collectionName: argv.collection_name || 'mx-space', + host: argv.db_host || '127.0.0.1', + port: argv.db_port || 27017, + get uri() { + return `mongodb://${this.host}:${this.port}/${ + process.env.TEST ? 'mx-space_unitest' : this.collectionName + }` + }, +} + +exports.REDIS = { + host: argv.redis_host || 'localhost', + port: argv.redis_port || 6379, + password: argv.redis_password || null, + ttl: null, + httpCacheTTL: 5, + max: 5, + disableApiCache: + (isDev || argv.disableCache) && !process.env['ENABLE_CACHE_DEBUG'], +} + +/** + * @type {import('axios').AxiosRequestConfig} + */ +exports.AXIOS_CONFIG = { + timeout: 10000, +} + +exports.SECURITY = { + jwtSecret: argv.jwtSecret || 'asjhczxiucipoiopiqm2376', + jwtExpire: '7d', + // 跳过登陆鉴权 + skipAuth: argv.skipAuth ?? false, +} diff --git a/src/app.config.ts b/src/app.config.ts deleted file mode 100644 index db2cd824..00000000 --- a/src/app.config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import type { AxiosRequestConfig } from 'axios' -import yargs from 'yargs' -const argv = yargs.argv as any -console.log(argv) - -export const API_VERSION = 2 -export const CROSS_DOMAIN = { - allowedOrigins: [ - 'innei.ren', - 'shizuri.net', - 'localhost:9528', - 'localhost:2323', - '127.0.0.1', - 'mbp.cc', - 'local.innei.test', - '22333322.xyz', - ], - allowedReferer: 'innei.ren', -} - -export const MONGO_DB = { - collectionName: (argv.collection_name as string) || 'mx-space', - host: argv.db_host || '127.0.0.1', - port: argv.db_port || 27017, - get uri() { - return `mongodb://${this.host}:${this.port}/${ - process.env.TEST ? 'mx-space_unitest' : this.collectionName - }` - }, -} - -export const REDIS = { - host: argv.redis_host || 'localhost', - port: argv.redis_port || 6379, - password: (argv.redis_password || null) as string, - ttl: null, - httpCacheTTL: 5, - max: 5, - disableApiCache: - (isDev || argv.disableCache) && !process.env['ENABLE_CACHE_DEBUG'], -} - -export const AXIOS_CONFIG: AxiosRequestConfig = { - timeout: 10000, -} - -export const SECURITY = { - jwtSecret: argv.jwtSecret || 'asjhczxiucipoiopiqm2376', - jwtExpire: '7d', - // 跳过登陆鉴权 - skipAuth: argv.skipAuth ?? false, -} diff --git a/src/app.module.ts b/src/app.module.ts index f41b26f0..3bcc0812 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -82,6 +82,7 @@ mkdirs() playground: isDev, autoSchemaFile: join(process.cwd(), 'schema.gql'), context: ({ req }) => ({ req }), + cors: false, }), AggregateModule, diff --git a/src/common/interceptors/analyze.interceptor.ts b/src/common/interceptors/analyze.interceptor.ts index 3b981dce..4a098783 100644 --- a/src/common/interceptors/analyze.interceptor.ts +++ b/src/common/interceptors/analyze.interceptor.ts @@ -102,41 +102,45 @@ export class AnalyzeInterceptor implements NestInterceptor { const url = request.url - try { - this.parser.setUA(request.headers['user-agent']) + process.nextTick(async () => { + try { + this.parser.setUA(request.headers['user-agent']) - const ua = this.parser.getResult() + const ua = this.parser.getResult() - await this.model.create({ - ip, - ua, - path: new URL('http://a.com' + url).pathname, - }) - const apiCallTimeRecord = await this.options.findOne({ - name: 'apiCallTime', - }) - if (!apiCallTimeRecord) { - await this.options.create({ - name: 'apiCallTime', - value: 1, + await this.model.create({ + ip, + ua, + path: new URL('http://a.com' + url).pathname, }) - } else { - await this.options.updateOne( - { name: 'apiCallTime' }, - { - $inc: { - value: 1, + const apiCallTimeRecord = await this.options.findOne({ + name: 'apiCallTime', + }) + if (!apiCallTimeRecord) { + await this.options.create({ + name: 'apiCallTime', + value: 1, + }) + } else { + await this.options.updateOne( + { name: 'apiCallTime' }, + { + $inc: { + value: 1, + }, }, - }, - ) - } - // ip access in redis - const client = this.cacheService.getClient() + ) + } + // ip access in redis + const client = this.cacheService.getClient() + + const count = await client.sadd( + getRedisKey(RedisKeys.Access, 'ips'), + ip, + ) + if (count) { + // record uv to db - const count = await client.sadd(getRedisKey(RedisKeys.Access, 'ips'), ip) - if (count) { - // record uv to db - process.nextTick(async () => { const uvRecord = await this.options.findOne({ name: 'uv' }) if (uvRecord) { await uvRecord.updateOne({ @@ -150,11 +154,11 @@ export class AnalyzeInterceptor implements NestInterceptor { value: 1, }) } - }) + } + } catch (e) { + console.error(e) } - } catch (e) { - console.error(e) - } + }) return call$ } diff --git a/src/processors/cache/cache.config.service.ts b/src/processors/cache/cache.config.service.ts index 6182ff45..4606c0ff 100755 --- a/src/processors/cache/cache.config.service.ts +++ b/src/processors/cache/cache.config.service.ts @@ -24,7 +24,7 @@ export class CacheConfigService implements CacheOptionsFactory { port: REDIS.port as number, } if (REDIS.password) { - redisOptions.password = REDIS.password + redisOptions.password = REDIS.password as any } return { store: redisStore, diff --git a/test/src/gql.resolver.e2e-spec.ts b/test/src/gql.resolver.e2e-spec.ts new file mode 100644 index 00000000..3eca9f89 --- /dev/null +++ b/test/src/gql.resolver.e2e-spec.ts @@ -0,0 +1,52 @@ +import { GraphQLModule } from '@nestjs/graphql' +import { NestFastifyApplication } from '@nestjs/platform-fastify' +import { Test } from '@nestjs/testing' +import { join } from 'path' +import { AppResolver } from '~/app.resolver' +import { fastifyApp } from '~/common/adapt/fastify' + +describe('GQL test (e2e)', () => { + let app: NestFastifyApplication + + beforeAll(async () => { + const moduleRef = await Test.createTestingModule({ + imports: [ + GraphQLModule.forRoot({ + autoSchemaFile: join(process.cwd(), 'schema.gql'), + context: ({ req }) => ({ req }), + }), + AppResolver, + ], + }).compile() + app = moduleRef.createNestApplication(fastifyApp) + await app.init() + await app.getHttpAdapter().getInstance().ready() + }) + + it('GET /graphql', () => { + return app + .inject({ + method: 'post', + url: '/graphql', + payload: { + operationName: null, + variables: {}, + query: ` { + sayHello + }`, + }, + }) + .then((res) => { + expect(res.statusCode).toBe(200) + expect(res.json()).toStrictEqual({ + data: { + sayHello: 'Hello World!', + }, + }) + }) + }) + + afterAll(async () => { + await app.close() + }) +}) diff --git a/tsconfig.build.json b/tsconfig.build.json index 64f86c6b..37816248 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -1,4 +1,9 @@ { "extends": "./tsconfig.json", - "exclude": ["node_modules", "test", "dist", "**/*spec.ts"] -} + "exclude": [ + "node_modules", + "test", + "dist", + "**/*spec.ts" + ] +} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 8352a120..7101ee33 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -10,6 +10,7 @@ "target": "ES2019", "sourceMap": true, "outDir": "./dist", + "allowJs": true, "baseUrl": ".", "noImplicitAny": false, "incremental": true,