From fce475fcd3852eca7fc1ffd997a3fea5f6724465 Mon Sep 17 00:00:00 2001 From: Rubin Bhandari Date: Tue, 26 Sep 2023 19:40:51 +0545 Subject: [PATCH] feat: eslint flat config --- eslint.config.mjs | 41 + package.json | 24 +- pnpm-lock.yaml | 1650 ++++++++++------- src/_mocks_/index.ts | 6 +- src/common/@types/classes/offset.response.ts | 3 +- src/common/@types/enums/misc.enum.ts | 10 +- src/common/@types/global.d.ts | 150 +- .../@types/interfaces/crud.interface.ts | 6 +- .../@types/interfaces/pagination.interface.ts | 3 +- src/common/database/base.repository.spec.ts | 44 +- src/common/database/base.repository.ts | 6 +- src/common/database/seeders/admin.seeder.ts | 3 +- .../decorators/custom-cache.decorator.ts | 3 +- .../validation/is-after.validator.spec.ts | 68 +- .../validation/is-after.validator.ts | 2 - .../is-date-format.validator.spec.ts | 36 +- .../validation/is-date-format.validator.ts | 1 - .../validation/is-equal-to.validator.spec.ts | 48 +- .../validation/is-equal-to.validator.ts | 2 - .../is-greater-than.validator.spec.ts | 68 +- .../validation/is-password.validator.spec.ts | 48 +- .../validation/is-password.validator.ts | 3 +- .../validation/is-profane.validator.spec.ts | 42 +- .../validation/is-string-field.decorator.ts | 5 +- .../validation/is-unique.validator.spec.ts | 87 +- .../validation/is-username.validator.spec.ts | 46 +- .../validation/is-username.validator.ts | 4 +- .../validation/validation-field.generator.ts | 2 +- src/common/dtos/cursor-pagination.dto.ts | 2 +- src/common/dtos/offset-pagination.dto.ts | 2 +- src/common/guards/auth.guard.spec.ts | 78 +- src/common/guards/jwt.guard.spec.ts | 57 +- src/common/helpers/app.utils.ts | 4 +- src/common/helpers/helpers.utils.ts | 1 - .../interceptors/app-exit.interceptor.spec.ts | 26 +- .../request-sanitizer.interceptor.spec.ts | 67 +- .../interceptors/timeout.interceptor.spec.ts | 26 +- .../middlewares/cache.middleware.spec.ts | 52 +- src/common/middlewares/ip.middleware.spec.ts | 41 +- src/common/misc/pool.ts | 7 +- src/entities/category.entity.ts | 3 +- src/entities/comment.entity.ts | 3 +- src/entities/conversation.entity.ts | 3 +- src/entities/message.entity.ts | 3 +- src/entities/otp-log.entity.ts | 3 +- src/entities/points-redemption-log.entity.ts | 3 +- src/entities/post.entity.ts | 5 +- src/entities/referral.entity.ts | 2 +- src/entities/refresh-token.entity.ts | 3 +- src/entities/tag.entity.ts | 3 +- src/generated/i18n.generated.ts | 92 +- src/lib/casl/casl-ability.factory.spec.ts | 10 +- src/lib/casl/generic.policy.ts | 6 +- src/lib/casl/policies.decorator.ts | 3 +- src/lib/casl/policies.guard.spec.ts | 40 +- src/lib/casl/policies.guard.ts | 4 +- src/lib/config/config.module.ts | 3 +- src/lib/crud/crud.controller.ts | 2 +- src/lib/mailer/index.ts | 3 +- src/lib/mailer/mailer.service.ts | 3 +- src/lib/twilio/twilio.service.ts | 3 +- src/main.ts | 5 +- src/modules/auth/auth.controller.ts | 18 +- src/modules/auth/auth.module.ts | 6 +- src/modules/auth/auth.service.spec.ts | 215 +-- src/modules/auth/auth.service.ts | 14 +- .../auth/strategies/jwt-2fa.strategy.ts | 3 +- src/modules/auth/strategies/jwt.strategy.ts | 3 +- .../auth/strategies/magic-login.strategy.ts | 2 +- src/modules/category/category.controller.ts | 4 +- src/modules/category/category.service.ts | 2 +- src/modules/chat/chat.controller.ts | 2 +- src/modules/chat/chat.gateway.ts | 6 +- src/modules/chat/chat.module.ts | 6 +- .../newsletter/newsletter.controller.ts | 4 +- src/modules/newsletter/newsletter.service.ts | 2 +- src/modules/post/post.controller.ts | 4 +- src/modules/post/post.service.spec.ts | 186 +- src/modules/post/post.service.ts | 2 +- src/modules/profile/profile.controller.ts | 2 +- src/modules/profile/profile.service.spec.ts | 84 +- src/modules/tags/tags.controller.ts | 4 +- .../token/refresh-tokens.repository.spec.ts | 104 +- src/modules/token/tokens.service.spec.ts | 208 +-- src/modules/token/tokens.service.ts | 2 +- src/modules/twofa/twofa.controller.ts | 4 +- src/modules/twofa/twofa.module.ts | 4 +- src/modules/twofa/twofa.service.spec.ts | 146 +- src/modules/user/user.controller.ts | 4 +- src/modules/user/user.service.spec.ts | 177 +- src/modules/user/user.service.ts | 2 +- test/e2e/user.e2e-spec.ts | 3 +- tsconfig.json | 2 +- 93 files changed, 2221 insertions(+), 1983 deletions(-) create mode 100644 eslint.config.mjs diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 00000000..7719a957 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,41 @@ +import rubiin from "@rubiin/eslint-config"; + +export default rubiin({ + stylistic: true, // enable stylistic rules + typescript: { + tsconfigPath: "tsconfig.json", // path to tsconfig.json + }, +}, +{ + rules: { + "ts/no-floating-promises": "off", + "ts/no-extraneous-class": "off", + "ts/unbound-method": "off", + "ts/require-await": "off", // optimize this + "ts/no-unsafe-assignment": "off", // optimize this + "ts/no-unsafe-member-access": "off", // optimize this + "unicorn/prefer-top-level-await": "off", + "ts/no-misused-promises": [ + "error", + { + checksVoidReturn: false, + }, + ], + "unicorn/prevent-abbreviations": [ + "error", + { + ignore: [ + "\\.e2e*", + "\\.spec*", + "\\.decorator*", + "\\*idx*", + ], + allowList: { + ProcessEnv: true, + UUIDParam: true, + }, + }, + ], + }, +}, +); diff --git a/package.json b/package.json index 164b7211..57452c29 100644 --- a/package.json +++ b/package.json @@ -34,8 +34,8 @@ ], "scripts": { "build": "nest build", - "lint": "eslint '{src,test}/**/*.ts' --cache", - "lint:fix": "eslint '{src,test}/**/*.ts' --cache --fix", + "lint": "ESLINT_USE_FLAT_CONFIG=true eslint -c eslint.config.mjs '{src,test}/**/*.ts' --cache", + "lint:fix": "ESLINT_USE_FLAT_CONFIG=true eslint -c eslint.config.mjs '{src,test}/**/*.ts' --cache --fix", "orm": "npx mikro-orm", "prebuild": "rimraf dist", "sample": "cd env; npx sample-env --env .env.dev", @@ -52,7 +52,7 @@ "test:e2e": "jest --config ./test/jest-e2e.json --runInBand --forceExit" }, "dependencies": { - "@aws-sdk/client-s3": "^3.418.0", + "@aws-sdk/client-s3": "^3.420.0", "@aws-sdk/client-ses": "^3.418.0", "@casl/ability": "^6.5.0", "@golevelup/nestjs-rabbitmq": "^4.0.0", @@ -82,8 +82,8 @@ "@nestjs/websockets": "^10.2.6", "@ntegral/nestjs-sentry": "^4.0.0", "@paralleldrive/cuid2": "^2.2.2", - "@sentry/hub": "^7.71.0", - "@sentry/node": "^7.71.0", + "@sentry/hub": "^7.72.0", + "@sentry/node": "^7.72.0", "@socket.io/redis-adapter": "^8.2.1", "@supercharge/request-ip": "^1.2.0", "argon2": "^0.31.1", @@ -146,19 +146,19 @@ "@nestjs/cli": "10.1.18", "@nestjs/schematics": "10.0.2", "@nestjs/testing": "10.2.6", - "@rubiin/eslint-config-ts": "^1.5.1", + "@rubiin/eslint-config": "^1.8.2", "@rubiin/tsconfig": "^1.1.0", - "@sentry/types": "^7.71.0", + "@sentry/types": "^7.72.0", "@side/jest-runtime": "^1.1.0", - "@swc/core": "^1.3.89", + "@swc/core": "^1.3.90", "@swc/jest": "^0.2.29", "@total-typescript/ts-reset": "^0.5.1", "@types/cache-manager": "^4.0.3", "@types/cache-manager-redis-store": "^2.0.2", "@types/compression": "^1.7.3", "@types/jest": "^29.5.5", - "@types/mime-types": "^2.1.1", - "@types/multer": "^1.4.7", + "@types/mime-types": "^2.1.2", + "@types/multer": "^1.4.8", "@types/node": "^20.7.0", "@types/nodemailer": "^6.4.11", "@types/passport": "^1.0.13", @@ -172,13 +172,9 @@ "@types/supertest": "2.0.13", "@types/swagger-stats": "^0.95.9", "@types/swagger-ui-express": "^4.1.4", - "@typescript-eslint/eslint-plugin": "^6.7.3", - "@typescript-eslint/parser": "^6.7.3", "cross-env": "^7.0.3", "cz-conventional-changelog": "3.3.0", "eslint": "^8.50.0", - "eslint-define-config": "^1.23.0", - "eslint-import-resolver-typescript": "^3.6.1", "eslint_d": "^12.2.1", "husky": "^8.0.3", "jest": "29.7.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2cdee016..5f8a11eb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,8 +6,8 @@ settings: dependencies: '@aws-sdk/client-s3': - specifier: ^3.418.0 - version: 3.418.0 + specifier: ^3.420.0 + version: 3.420.0 '@aws-sdk/client-ses': specifier: ^3.418.0 version: 3.418.0 @@ -43,7 +43,7 @@ dependencies: version: 1.0.1 '@nestjs/axios': specifier: ^3.0.0 - version: 3.0.0(@nestjs/common@10.2.6)(axios@1.5.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + version: 3.0.0(@nestjs/common@10.2.6)(axios@1.5.1)(reflect-metadata@0.1.13)(rxjs@7.8.1) '@nestjs/cache-manager': specifier: ^2.1.0 version: 2.1.0(@nestjs/common@10.2.6)(@nestjs/core@10.2.6)(cache-manager@5.2.3)(reflect-metadata@0.1.13)(rxjs@7.8.1) @@ -91,16 +91,16 @@ dependencies: version: 10.2.6(@nestjs/common@10.2.6)(@nestjs/core@10.2.6)(@nestjs/platform-socket.io@10.2.6)(reflect-metadata@0.1.13)(rxjs@7.8.1) '@ntegral/nestjs-sentry': specifier: ^4.0.0 - version: 4.0.0(@nestjs/common@10.2.6)(@nestjs/core@10.2.6)(@sentry/hub@7.71.0)(@sentry/node@7.71.0)(class-transformer@0.5.1)(class-validator@0.14.0)(graphql@16.8.1)(reflect-metadata@0.1.13)(rimraf@3.0.2)(rxjs@7.8.1) + version: 4.0.0(@nestjs/common@10.2.6)(@nestjs/core@10.2.6)(@sentry/hub@7.72.0)(@sentry/node@7.72.0)(class-transformer@0.5.1)(class-validator@0.14.0)(graphql@16.8.1)(reflect-metadata@0.1.13)(rimraf@3.0.2)(rxjs@7.8.1) '@paralleldrive/cuid2': specifier: ^2.2.2 version: 2.2.2 '@sentry/hub': - specifier: ^7.71.0 - version: 7.71.0 + specifier: ^7.72.0 + version: 7.72.0 '@sentry/node': - specifier: ^7.71.0 - version: 7.71.0 + specifier: ^7.72.0 + version: 7.72.0 '@socket.io/redis-adapter': specifier: ^8.2.1 version: 8.2.1(socket.io-adapter@2.5.2) @@ -276,31 +276,31 @@ devDependencies: version: 5.8.3(@mikro-orm/core@5.8.3) '@nestjs/cli': specifier: 10.1.18 - version: 10.1.18(@swc/core@1.3.89) + version: 10.1.18(@swc/core@1.3.90) '@nestjs/schematics': specifier: 10.0.2 version: 10.0.2(chokidar@3.5.3)(typescript@5.2.2) '@nestjs/testing': specifier: 10.2.6 version: 10.2.6(@nestjs/common@10.2.6)(@nestjs/core@10.2.6)(@nestjs/platform-express@10.2.6) - '@rubiin/eslint-config-ts': - specifier: ^1.5.1 - version: 1.5.1(eslint-import-resolver-typescript@3.6.1)(jest@29.7.0)(typescript@5.2.2) + '@rubiin/eslint-config': + specifier: ^1.8.2 + version: 1.8.2(eslint@8.50.0)(typescript@5.2.2) '@rubiin/tsconfig': specifier: ^1.1.0 version: 1.1.0 '@sentry/types': - specifier: ^7.71.0 - version: 7.71.0 + specifier: ^7.72.0 + version: 7.72.0 '@side/jest-runtime': specifier: ^1.1.0 version: 1.1.0(@jest/transform@29.7.0)(jest-runtime@29.7.0)(jest@29.7.0) '@swc/core': - specifier: ^1.3.89 - version: 1.3.89 + specifier: ^1.3.90 + version: 1.3.90 '@swc/jest': specifier: ^0.2.29 - version: 0.2.29(@swc/core@1.3.89) + version: 0.2.29(@swc/core@1.3.90) '@total-typescript/ts-reset': specifier: ^0.5.1 version: 0.5.1 @@ -317,11 +317,11 @@ devDependencies: specifier: ^29.5.5 version: 29.5.5 '@types/mime-types': - specifier: ^2.1.1 - version: 2.1.1 + specifier: ^2.1.2 + version: 2.1.2 '@types/multer': - specifier: ^1.4.7 - version: 1.4.7 + specifier: ^1.4.8 + version: 1.4.8 '@types/node': specifier: ^20.7.0 version: 20.7.0 @@ -361,27 +361,15 @@ devDependencies: '@types/swagger-ui-express': specifier: ^4.1.4 version: 4.1.4 - '@typescript-eslint/eslint-plugin': - specifier: ^6.7.3 - version: 6.7.3(@typescript-eslint/parser@6.7.3)(eslint@8.50.0)(typescript@5.2.2) - '@typescript-eslint/parser': - specifier: ^6.7.3 - version: 6.7.3(eslint@8.50.0)(typescript@5.2.2) cross-env: specifier: ^7.0.3 version: 7.0.3 cz-conventional-changelog: specifier: 3.3.0 - version: 3.3.0(@swc/core@1.3.89) + version: 3.3.0(@swc/core@1.3.90) eslint: specifier: ^8.50.0 version: 8.50.0 - eslint-define-config: - specifier: ^1.23.0 - version: 1.23.0 - eslint-import-resolver-typescript: - specifier: ^3.6.1 - version: 3.6.1(@typescript-eslint/parser@6.7.3)(eslint-plugin-import@2.28.1)(eslint@8.50.0) eslint_d: specifier: ^12.2.1 version: 12.2.1 @@ -408,7 +396,7 @@ devDependencies: version: 9.4.4(typescript@5.2.2)(webpack@5.88.2) ts-node: specifier: 10.9.1 - version: 10.9.1(@swc/core@1.3.89)(@types/node@20.7.0)(typescript@5.2.2) + version: 10.9.1(@swc/core@1.3.90)(@types/node@20.7.0)(typescript@5.2.2) tsconfig-paths: specifier: 4.2.0 version: 4.2.0 @@ -417,7 +405,7 @@ devDependencies: version: 5.2.2 webpack: specifier: ^5.88.2 - version: 5.88.2(@swc/core@1.3.89) + version: 5.88.2(@swc/core@1.3.90) webpack-node-externals: specifier: ^3.0.0 version: 3.0.0 @@ -582,8 +570,8 @@ packages: tslib: 1.14.1 dev: false - /@aws-sdk/client-s3@3.418.0: - resolution: {integrity: sha512-VdDM9xS84t8W1B2/QJTK6mYVCnf7Hovg8Aum9NHm+bD7F0Ni2NTLVjm8+qq9STi4YSeXAy3Pe+FBUP9Wthw7Iw==} + /@aws-sdk/client-s3@3.420.0: + resolution: {integrity: sha512-fmU0b8tM8vPCrEW8kNcY2yhFQBGuN4asYUAqybiSpzyF9Xy3Q0diQQE9WmoJVTO+DXB8tOhZZqUC1kxHCUDjww==} engines: {node: '>=14.0.0'} dependencies: '@aws-crypto/sha1-browser': 3.0.0 @@ -623,18 +611,18 @@ packages: '@smithy/middleware-endpoint': 2.0.9 '@smithy/middleware-retry': 2.0.12 '@smithy/middleware-serde': 2.0.9 - '@smithy/middleware-stack': 2.0.2 + '@smithy/middleware-stack': 2.0.3 '@smithy/node-config-provider': 2.0.12 '@smithy/node-http-handler': 2.1.5 '@smithy/protocol-http': 3.0.5 - '@smithy/smithy-client': 2.1.6 + '@smithy/smithy-client': 2.1.7 '@smithy/types': 2.3.3 '@smithy/url-parser': 2.0.9 '@smithy/util-base64': 2.0.0 '@smithy/util-body-length-browser': 2.0.0 '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.10 - '@smithy/util-defaults-mode-node': 2.0.12 + '@smithy/util-defaults-mode-browser': 2.0.11 + '@smithy/util-defaults-mode-node': 2.0.13 '@smithy/util-retry': 2.0.2 '@smithy/util-stream': 2.0.12 '@smithy/util-utf8': 2.0.0 @@ -671,18 +659,18 @@ packages: '@smithy/middleware-endpoint': 2.0.9 '@smithy/middleware-retry': 2.0.12 '@smithy/middleware-serde': 2.0.9 - '@smithy/middleware-stack': 2.0.2 + '@smithy/middleware-stack': 2.0.3 '@smithy/node-config-provider': 2.0.12 '@smithy/node-http-handler': 2.1.5 '@smithy/protocol-http': 3.0.5 - '@smithy/smithy-client': 2.1.6 + '@smithy/smithy-client': 2.1.7 '@smithy/types': 2.3.3 '@smithy/url-parser': 2.0.9 '@smithy/util-base64': 2.0.0 '@smithy/util-body-length-browser': 2.0.0 '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.10 - '@smithy/util-defaults-mode-node': 2.0.12 + '@smithy/util-defaults-mode-browser': 2.0.11 + '@smithy/util-defaults-mode-node': 2.0.13 '@smithy/util-retry': 2.0.2 '@smithy/util-utf8': 2.0.0 '@smithy/util-waiter': 2.0.9 @@ -715,18 +703,18 @@ packages: '@smithy/middleware-endpoint': 2.0.9 '@smithy/middleware-retry': 2.0.12 '@smithy/middleware-serde': 2.0.9 - '@smithy/middleware-stack': 2.0.2 + '@smithy/middleware-stack': 2.0.3 '@smithy/node-config-provider': 2.0.12 '@smithy/node-http-handler': 2.1.5 '@smithy/protocol-http': 3.0.5 - '@smithy/smithy-client': 2.1.6 + '@smithy/smithy-client': 2.1.7 '@smithy/types': 2.3.3 '@smithy/url-parser': 2.0.9 '@smithy/util-base64': 2.0.0 '@smithy/util-body-length-browser': 2.0.0 '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.10 - '@smithy/util-defaults-mode-node': 2.0.12 + '@smithy/util-defaults-mode-browser': 2.0.11 + '@smithy/util-defaults-mode-node': 2.0.13 '@smithy/util-retry': 2.0.2 '@smithy/util-utf8': 2.0.0 tslib: 2.6.2 @@ -760,18 +748,18 @@ packages: '@smithy/middleware-endpoint': 2.0.9 '@smithy/middleware-retry': 2.0.12 '@smithy/middleware-serde': 2.0.9 - '@smithy/middleware-stack': 2.0.2 + '@smithy/middleware-stack': 2.0.3 '@smithy/node-config-provider': 2.0.12 '@smithy/node-http-handler': 2.1.5 '@smithy/protocol-http': 3.0.5 - '@smithy/smithy-client': 2.1.6 + '@smithy/smithy-client': 2.1.7 '@smithy/types': 2.3.3 '@smithy/url-parser': 2.0.9 '@smithy/util-base64': 2.0.0 '@smithy/util-body-length-browser': 2.0.0 '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.10 - '@smithy/util-defaults-mode-node': 2.0.12 + '@smithy/util-defaults-mode-browser': 2.0.11 + '@smithy/util-defaults-mode-node': 2.0.13 '@smithy/util-retry': 2.0.2 '@smithy/util-utf8': 2.0.0 fast-xml-parser: 4.2.5 @@ -945,7 +933,7 @@ packages: '@aws-sdk/types': 3.418.0 '@aws-sdk/util-arn-parser': 3.310.0 '@smithy/protocol-http': 3.0.5 - '@smithy/smithy-client': 2.1.6 + '@smithy/smithy-client': 2.1.7 '@smithy/types': 2.3.3 tslib: 2.6.2 dev: false @@ -1037,20 +1025,20 @@ packages: '@smithy/middleware-endpoint': 2.0.9 '@smithy/middleware-retry': 2.0.12 '@smithy/middleware-serde': 2.0.9 - '@smithy/middleware-stack': 2.0.2 + '@smithy/middleware-stack': 2.0.3 '@smithy/node-config-provider': 2.0.12 '@smithy/node-http-handler': 2.1.5 '@smithy/property-provider': 2.0.10 '@smithy/protocol-http': 3.0.5 '@smithy/shared-ini-file-loader': 2.0.11 - '@smithy/smithy-client': 2.1.6 + '@smithy/smithy-client': 2.1.7 '@smithy/types': 2.3.3 '@smithy/url-parser': 2.0.9 '@smithy/util-base64': 2.0.0 '@smithy/util-body-length-browser': 2.0.0 '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.10 - '@smithy/util-defaults-mode-node': 2.0.12 + '@smithy/util-defaults-mode-browser': 2.0.11 + '@smithy/util-defaults-mode-node': 2.0.13 '@smithy/util-retry': 2.0.2 '@smithy/util-utf8': 2.0.0 tslib: 2.6.2 @@ -1137,21 +1125,21 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.22.20: - resolution: {integrity: sha512-Y6jd1ahLubuYweD/zJH+vvOY141v4f9igNQAQ+MBgq9JlHS2iTsZKn1aMsb3vGccZsXI16VzTBw52Xx0DWmtnA==} + /@babel/core@7.23.0: + resolution: {integrity: sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.22.13 - '@babel/generator': 7.22.15 + '@babel/generator': 7.23.0 '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-module-transforms': 7.22.20(@babel/core@7.22.20) - '@babel/helpers': 7.22.15 - '@babel/parser': 7.22.16 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.0) + '@babel/helpers': 7.23.1 + '@babel/parser': 7.23.0 '@babel/template': 7.22.15 - '@babel/traverse': 7.22.20 - '@babel/types': 7.22.19 - convert-source-map: 1.9.0 + '@babel/traverse': 7.23.0 + '@babel/types': 7.23.0 + convert-source-map: 2.0.0 debug: 4.3.4 gensync: 1.0.0-beta.2 json5: 2.2.3 @@ -1160,11 +1148,11 @@ packages: - supports-color dev: true - /@babel/generator@7.22.15: - resolution: {integrity: sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==} + /@babel/generator@7.23.0: + resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.19 + '@babel/types': 7.23.0 '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.19 jsesc: 2.5.2 @@ -1176,7 +1164,7 @@ packages: dependencies: '@babel/compat-data': 7.22.20 '@babel/helper-validator-option': 7.22.15 - browserslist: 4.21.10 + browserslist: 4.22.0 lru-cache: 5.1.1 semver: 6.3.1 dev: true @@ -1186,35 +1174,35 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-function-name@7.22.5: - resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==} + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.22.19 + '@babel/types': 7.23.0 dev: true /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.19 + '@babel/types': 7.23.0 dev: true /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.19 + '@babel/types': 7.23.0 dev: true - /@babel/helper-module-transforms@7.22.20(@babel/core@7.22.20): - resolution: {integrity: sha512-dLT7JVWIUUxKOs1UnJUBR3S70YK+pKX6AbJgB2vMIvEkZkrfJDbYDJesnPshtKV4LhDOR3Oc5YULeDizRek+5A==} + /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.0): + resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.20 + '@babel/core': 7.23.0 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 @@ -1231,14 +1219,14 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.19 + '@babel/types': 7.23.0 dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.19 + '@babel/types': 7.23.0 dev: true /@babel/helper-string-parser@7.22.5: @@ -1254,13 +1242,13 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helpers@7.22.15: - resolution: {integrity: sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==} + /@babel/helpers@7.23.1: + resolution: {integrity: sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/traverse': 7.22.20 - '@babel/types': 7.22.19 + '@babel/traverse': 7.23.0 + '@babel/types': 7.23.0 transitivePeerDependencies: - supports-color dev: true @@ -1273,144 +1261,144 @@ packages: chalk: 2.4.2 js-tokens: 4.0.0 - /@babel/parser@7.22.16: - resolution: {integrity: sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==} + /@babel/parser@7.23.0: + resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.22.19 + '@babel/types': 7.23.0 - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.22.20): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.0): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.20 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.22.20): + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.0): resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.20 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.20): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.0): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.20 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.22.20): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.0): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.20 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.22.20): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.0): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.20 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.22.20): + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.20 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.22.20): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.0): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.20 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.22.20): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.0): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.20 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.22.20): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.0): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.20 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.20): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.0): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.20 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.22.20): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.0): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.20 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.22.20): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.0): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.20 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.22.20): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.0): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.20 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.22.20): + /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.23.0): resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.20 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/runtime@7.22.15: - resolution: {integrity: sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==} + /@babel/runtime@7.23.1: + resolution: {integrity: sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.0 @@ -1421,30 +1409,30 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.22.13 - '@babel/parser': 7.22.16 - '@babel/types': 7.22.19 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 dev: true - /@babel/traverse@7.22.20: - resolution: {integrity: sha512-eU260mPZbU7mZ0N+X10pxXhQFMGTeLb9eFS0mxehS8HZp9o1uSnFeWQuG1UPrlxgA7QoUzFhOnilHDp0AXCyHw==} + /@babel/traverse@7.23.0: + resolution: {integrity: sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.22.13 - '@babel/generator': 7.22.15 + '@babel/generator': 7.23.0 '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.22.5 + '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.22.16 - '@babel/types': 7.22.19 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types@7.22.19: - resolution: {integrity: sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg==} + /@babel/types@7.23.0: + resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.22.5 @@ -1485,7 +1473,7 @@ packages: dev: true optional: true - /@commitlint/load@17.7.1(@swc/core@1.3.89): + /@commitlint/load@17.7.1(@swc/core@1.3.90): resolution: {integrity: sha512-S/QSOjE1ztdogYj61p6n3UbkUvweR17FQ0zDbNtoTLc+Hz7vvfS7ehoTMQ27hPSjVBpp7SzEcOQu081RLjKHJQ==} engines: {node: '>=v14'} requiresBuild: true @@ -1502,7 +1490,7 @@ packages: lodash.merge: 4.6.2 lodash.uniq: 4.5.0 resolve-from: 5.0.0 - ts-node: 10.9.1(@swc/core@1.3.89)(@types/node@20.4.7)(typescript@5.2.2) + ts-node: 10.9.1(@swc/core@1.3.90)(@types/node@20.4.7)(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: - '@swc/core' @@ -1559,8 +1547,8 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@eslint-community/regexpp@4.8.1: - resolution: {integrity: sha512-PWiOzLIUAjN/w5K17PoF4n6sKBw0gqLHPhywmYHP4t1VFQQVYeb1yWsJwnMVEMl3tUHME7X/SJPZLmtG7XBDxQ==} + /@eslint-community/regexpp@4.9.0: + resolution: {integrity: sha512-zJmuCWj2VLBt4c25CfBIbMZLGLyhkvs7LznyVX5HfpzeocThgIj5XQK4L+g3U36mMcx8bPMhGyPpwCATamC4jQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true @@ -1818,7 +1806,7 @@ packages: duplexify: 4.1.2 ent: 2.2.0 extend: 3.0.2 - fast-xml-parser: 4.3.0 + fast-xml-parser: 4.3.1 gaxios: 5.1.3 google-auth-library: 8.9.0 mime: 3.0.0 @@ -1841,7 +1829,7 @@ packages: dependencies: '@graphql-tools/utils': 9.2.1(graphql@16.8.1) graphql: 16.8.1 - tslib: 2.6.2 + tslib: 2.5.0 dev: false optional: true @@ -1854,7 +1842,7 @@ packages: '@graphql-tools/merge': 8.3.18(graphql@16.8.1) '@graphql-tools/utils': 9.2.1(graphql@16.8.1) graphql: 16.8.1 - tslib: 2.6.2 + tslib: 2.5.0 value-or-promise: 1.0.12 dev: false optional: true @@ -1867,7 +1855,7 @@ packages: dependencies: '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) graphql: 16.8.1 - tslib: 2.6.2 + tslib: 2.5.0 dev: false optional: true @@ -2379,7 +2367,7 @@ packages: resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.22.20 + '@babel/core': 7.23.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.19 babel-plugin-istanbul: 6.1.1 @@ -2403,9 +2391,9 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@types/istanbul-lib-coverage': 2.0.4 - '@types/istanbul-reports': 3.0.1 + '@types/istanbul-reports': 3.0.2 '@types/node': 20.7.0 - '@types/yargs': 16.0.5 + '@types/yargs': 16.0.6 chalk: 4.1.2 dev: true @@ -2415,9 +2403,9 @@ packages: dependencies: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 - '@types/istanbul-reports': 3.0.1 + '@types/istanbul-reports': 3.0.2 '@types/node': 20.7.0 - '@types/yargs': 17.0.24 + '@types/yargs': 17.0.25 chalk: 4.1.2 dev: true @@ -2744,7 +2732,7 @@ packages: ansi-colors: 4.1.3 dev: false - /@nestjs/axios@3.0.0(@nestjs/common@10.2.6)(axios@1.5.0)(reflect-metadata@0.1.13)(rxjs@7.8.1): + /@nestjs/axios@3.0.0(@nestjs/common@10.2.6)(axios@1.5.1)(reflect-metadata@0.1.13)(rxjs@7.8.1): resolution: {integrity: sha512-ULdH03jDWkS5dy9X69XbUVbhC+0pVnrRcj7bIK/ytTZ76w7CgvTZDJqsIyisg3kNOiljRW/4NIjSf3j6YGvl+g==} peerDependencies: '@nestjs/common': ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 @@ -2753,7 +2741,7 @@ packages: rxjs: ^6.0.0 || ^7.0.0 dependencies: '@nestjs/common': 10.2.6(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) - axios: 1.5.0(debug@4.3.4) + axios: 1.5.1(debug@4.3.4) reflect-metadata: 0.1.13 rxjs: 7.8.1 dev: false @@ -2774,7 +2762,7 @@ packages: rxjs: 7.8.1 dev: false - /@nestjs/cli@10.1.18(@swc/core@1.3.89): + /@nestjs/cli@10.1.18(@swc/core@1.3.90): resolution: {integrity: sha512-jQtG47keLsACt7b4YwJbTBYRm90n82gJpMaiR1HGAyQ9pccbctjSYu592eT4bxqkUWxPgBE3mpNynXj7dWAfrw==} engines: {node: '>= 16'} hasBin: true @@ -2791,7 +2779,7 @@ packages: '@angular-devkit/schematics': 16.2.3(chokidar@3.5.3) '@angular-devkit/schematics-cli': 16.2.3(chokidar@3.5.3) '@nestjs/schematics': 10.0.2(chokidar@3.5.3)(typescript@5.2.2) - '@swc/core': 1.3.89 + '@swc/core': 1.3.90 chalk: 4.1.2 chokidar: 3.5.3 cli-table3: 0.6.3 @@ -2808,7 +2796,7 @@ packages: tsconfig-paths: 4.2.0 tsconfig-paths-webpack-plugin: 4.1.0 typescript: 5.2.2 - webpack: 5.88.2(@swc/core@1.3.89) + webpack: 5.88.2(@swc/core@1.3.90) webpack-node-externals: 3.0.0 transitivePeerDependencies: - esbuild @@ -3153,7 +3141,7 @@ packages: dependencies: '@mikro-orm/core': 5.8.3(@mikro-orm/migrations@5.8.3)(@mikro-orm/postgresql@5.8.3)(@mikro-orm/seeder@5.8.3) '@mikro-orm/nestjs': 5.2.2(@mikro-orm/core@5.8.3)(@nestjs/common@10.2.6)(@nestjs/core@10.2.6) - '@nestjs/axios': 3.0.0(@nestjs/common@10.2.6)(axios@1.5.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/axios': 3.0.0(@nestjs/common@10.2.6)(axios@1.5.1)(reflect-metadata@0.1.13)(rxjs@7.8.1) '@nestjs/common': 10.2.6(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) '@nestjs/core': 10.2.6(@nestjs/common@10.2.6)(@nestjs/platform-express@10.2.6)(@nestjs/websockets@10.2.6)(reflect-metadata@0.1.13)(rxjs@7.8.1) boxen: 5.1.2 @@ -3238,7 +3226,7 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 - /@ntegral/nestjs-sentry@4.0.0(@nestjs/common@10.2.6)(@nestjs/core@10.2.6)(@sentry/hub@7.71.0)(@sentry/node@7.71.0)(class-transformer@0.5.1)(class-validator@0.14.0)(graphql@16.8.1)(reflect-metadata@0.1.13)(rimraf@3.0.2)(rxjs@7.8.1): + /@ntegral/nestjs-sentry@4.0.0(@nestjs/common@10.2.6)(@nestjs/core@10.2.6)(@sentry/hub@7.72.0)(@sentry/node@7.72.0)(class-transformer@0.5.1)(class-validator@0.14.0)(graphql@16.8.1)(reflect-metadata@0.1.13)(rimraf@3.0.2)(rxjs@7.8.1): resolution: {integrity: sha512-6WHZcK7NLeg7ue1y3Z61msEBzCGZeXQ0hWhliH1ddQH0kPbZ6lXLxduGMWYb0N/fPjXAX1Astz8urqnoTOZBQw==} peerDependencies: '@nestjs/common': ^9.0.4 @@ -3251,8 +3239,8 @@ packages: dependencies: '@nestjs/common': 10.2.6(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) '@nestjs/core': 10.2.6(@nestjs/common@10.2.6)(@nestjs/platform-express@10.2.6)(@nestjs/websockets@10.2.6)(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@sentry/hub': 7.71.0 - '@sentry/node': 7.71.0 + '@sentry/hub': 7.72.0 + '@sentry/node': 7.72.0 reflect-metadata: 0.1.13 rimraf: 3.0.2 rxjs: 7.8.1 @@ -3435,42 +3423,38 @@ packages: '@redis/client': 1.5.11 dev: false - /@rubiin/eslint-config-basic@1.5.1(typescript@5.2.2): - resolution: {integrity: sha512-m8uqcdcXFawIvk4q9Y2yziaHdE0KpmQBlHSaXNPi45nLG4cCNaYibv7/xO1omuS/9AxggV0GUkCy5eE0hfEPLA==} + /@rubiin/eslint-config@1.8.2(eslint@8.50.0)(typescript@5.2.2): + resolution: {integrity: sha512-tqaPadD3xkfQ1zFWBLptlAsAP8jhXP9NpwTTEy2XGq1XQmxhP6hSoxI0rR7gCMrK5Yo5+fu7tPwswAAjnWn7zQ==} + peerDependencies: + eslint: '>=8.0.0' dependencies: - '@stylistic/eslint-plugin-js': 0.0.3 + '@stylistic/eslint-plugin': 0.0.5(eslint@8.50.0)(typescript@5.2.2) '@typescript-eslint/eslint-plugin': 6.7.3(@typescript-eslint/parser@6.7.3)(eslint@8.50.0)(typescript@5.2.2) '@typescript-eslint/parser': 6.7.3(eslint@8.50.0)(typescript@5.2.2) eslint: 8.50.0 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.7.3)(eslint-plugin-import@2.28.1)(eslint@8.50.0) - eslint-plugin-deprecation: 1.6.0(eslint@8.50.0)(typescript@5.2.2) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.7.3)(eslint-import-resolver-typescript@3.6.1)(eslint@8.50.0) + eslint-config-flat-gitignore: 0.1.0 + eslint-define-config: 1.23.0 + eslint-plugin-deprecation: 2.0.0(eslint@8.50.0)(typescript@5.2.2) + eslint-plugin-eslint-comments: 3.2.0(eslint@8.50.0) + eslint-plugin-i: 2.28.1(@typescript-eslint/parser@6.7.3)(eslint@8.50.0) eslint-plugin-jsdoc: 46.8.2(eslint@8.50.0) + eslint-plugin-jsonc: 2.9.0(eslint@8.50.0) + eslint-plugin-markdown: 3.0.1(eslint@8.50.0) + eslint-plugin-n: 16.1.0(eslint@8.50.0) + eslint-plugin-no-only-tests: 3.1.0 + eslint-plugin-react: 7.33.2(eslint@8.50.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.50.0) eslint-plugin-unicorn: 48.0.1(eslint@8.50.0) eslint-plugin-unused-imports: 3.0.0(@typescript-eslint/eslint-plugin@6.7.3)(eslint@8.50.0) + eslint-plugin-vue: 9.17.0(eslint@8.50.0) + eslint-plugin-yml: 1.9.0(eslint@8.50.0) + globals: 13.22.0 + jsonc-eslint-parser: 2.3.0 + local-pkg: 0.4.3 + yaml-eslint-parser: 1.2.2 transitivePeerDependencies: - - eslint-import-resolver-node - - eslint-import-resolver-webpack - - supports-color - - typescript - dev: true - - /@rubiin/eslint-config-ts@1.5.1(eslint-import-resolver-typescript@3.6.1)(jest@29.7.0)(typescript@5.2.2): - resolution: {integrity: sha512-S2Bef6E9xNh5C7Edu6XC8ZrsLNVrJdx9LveS4e/AvVmcZG2d518O2rDV4JG/27ypW09pckjztl+fl+8KDKS+Ow==} - dependencies: - '@rubiin/eslint-config-basic': 1.5.1(typescript@5.2.2) - '@stylistic/eslint-plugin-ts': 0.0.3(eslint@8.50.0)(typescript@5.2.2) - '@typescript-eslint/eslint-plugin': 6.7.3(@typescript-eslint/parser@6.7.3)(eslint@8.50.0)(typescript@5.2.2) - '@typescript-eslint/parser': 6.7.3(eslint@8.50.0)(typescript@5.2.2) - eslint: 8.50.0 - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.7.3)(eslint-import-resolver-typescript@3.6.1)(eslint@8.50.0) - eslint-plugin-jest: 27.4.0(@typescript-eslint/eslint-plugin@6.7.3)(eslint@8.50.0)(jest@29.7.0)(typescript@5.2.2) - eslint-plugin-jsdoc: 46.8.2(eslint@8.50.0) - transitivePeerDependencies: - - eslint-import-resolver-node - eslint-import-resolver-typescript - eslint-import-resolver-webpack - - jest - supports-color - typescript dev: true @@ -3480,8 +3464,8 @@ packages: engines: {node: '>=18'} dev: true - /@rushstack/ts-command-line@4.16.0: - resolution: {integrity: sha512-WJKhdR9ThK9Iy7t78O3at7I3X4Ssp5RRZay/IQa8NywqkFy/DQbT3iLouodMMdUwLZD9n8n++xLubVd3dkmpkg==} + /@rushstack/ts-command-line@4.16.1: + resolution: {integrity: sha512-+OCsD553GYVLEmz12yiFjMOzuPeCiZ3f8wTiFHL30ZVXexTyPmgjwXEhg2K2P0a2lVf+8YBy7WtPoflB2Fp8/A==} dependencies: '@types/argparse': 1.0.38 argparse: 1.0.10 @@ -3495,43 +3479,43 @@ packages: selderee: 0.11.0 dev: false - /@sentry-internal/tracing@7.71.0: - resolution: {integrity: sha512-HRGsQOrA2Y3Ga+NTgCkTWO+qtU2SFTJ7t9pt/LR8Har9cvVcjLIlHNwPoDx6bVkICK3cGOF8ZtXVmLizVbXoAg==} + /@sentry-internal/tracing@7.72.0: + resolution: {integrity: sha512-DToryaRSHk9R5RLgN4ktYEXZjQdqncOAWPqyyIurji8lIobXFRfmLtGL1wjoCK6sQNgWsjhSM9kXxwGnva1DNw==} engines: {node: '>=8'} dependencies: - '@sentry/core': 7.71.0 - '@sentry/types': 7.71.0 - '@sentry/utils': 7.71.0 + '@sentry/core': 7.72.0 + '@sentry/types': 7.72.0 + '@sentry/utils': 7.72.0 tslib: 2.6.2 dev: false - /@sentry/core@7.71.0: - resolution: {integrity: sha512-kZcWnzxzMxyNuCwq65owu0yGbY+C9QJhWFMDBsqmKK1/dSt0bdhNjf3VQW1dJLnWaQTk7rUTHEHGH8JSdV5EAg==} + /@sentry/core@7.72.0: + resolution: {integrity: sha512-G03JdQ5ZsFNRjcNNi+QvCjqOuBvYqU92Gs1T2iK3GE8dSBTu2khThydMpG4xrKZQLIpHOyiIhlFZiuPtZ66W8w==} engines: {node: '>=8'} dependencies: - '@sentry/types': 7.71.0 - '@sentry/utils': 7.71.0 + '@sentry/types': 7.72.0 + '@sentry/utils': 7.72.0 tslib: 2.6.2 dev: false - /@sentry/hub@7.71.0: - resolution: {integrity: sha512-fvnNELNCCMlptDe6oCr40VYAEaTqWgfhjGps+ezqaE6Prb8y5XrEaZI3x7WrzQ2t/0GdR2hjoM4R43ZcSpudVg==} + /@sentry/hub@7.72.0: + resolution: {integrity: sha512-d160f2UMQPDnazVdPiUN39N7Bi7ulPKsB8YbUGEzVgnqMNSIkp4l98Ti3blE7sFMw4E3JeI9sKx1aaBHubItNg==} engines: {node: '>=8'} dependencies: - '@sentry/core': 7.71.0 - '@sentry/types': 7.71.0 - '@sentry/utils': 7.71.0 + '@sentry/core': 7.72.0 + '@sentry/types': 7.72.0 + '@sentry/utils': 7.72.0 tslib: 2.6.2 dev: false - /@sentry/node@7.71.0: - resolution: {integrity: sha512-rvCzfLWAeX+16mOJeb08xDlpBdn/H/G8dj9mENQAom8O0SgMkkRyfYc9pnvsmU5gjuS7C9u+e4ZlOLLr1xZ+zQ==} + /@sentry/node@7.72.0: + resolution: {integrity: sha512-R5kNCIdaDa92EN6oCLiGJehw5wxayOM53WF60Ap6EJHZb5U8dM2BnODmQ6SCRLNB677p+620oSV6CCU286IleQ==} engines: {node: '>=8'} dependencies: - '@sentry-internal/tracing': 7.71.0 - '@sentry/core': 7.71.0 - '@sentry/types': 7.71.0 - '@sentry/utils': 7.71.0 + '@sentry-internal/tracing': 7.72.0 + '@sentry/core': 7.72.0 + '@sentry/types': 7.72.0 + '@sentry/utils': 7.72.0 cookie: 0.5.0 https-proxy-agent: 5.0.1 lru_map: 0.3.3 @@ -3540,15 +3524,15 @@ packages: - supports-color dev: false - /@sentry/types@7.71.0: - resolution: {integrity: sha512-30PRLZI1RoeWbLE9K7AHsRPWDH22CqC4WcLNeVmRfLC5m1vE1FHb53r98QSKFhLoONMPMVzDhZZgl4ZcC5mptQ==} + /@sentry/types@7.72.0: + resolution: {integrity: sha512-g6u0mk62yGshx02rfFADIfyR/S9VXcf3RG2qQPuvykrWtOfN/BOTrZypF7I+MiqKwRW76r3Pcu2C/AB+6z9XQA==} engines: {node: '>=8'} - /@sentry/utils@7.71.0: - resolution: {integrity: sha512-aS53l/E/5XsSJMOXHKvS0GlX4gZHBgNAMfhEB3f8rUIn5iLF2uu8lCA1uEvX6VB8b7q/Cg4WFTi6BiJ0hvJHQg==} + /@sentry/utils@7.72.0: + resolution: {integrity: sha512-o/MtqI7WJXuswidH0bSgBP40KN2lrnyQEIx5uoyJUJi/QEaboIsqbxU62vaFJpde8SYrbA+rTnP3J3ujF2gUag==} engines: {node: '>=8'} dependencies: - '@sentry/types': 7.71.0 + '@sentry/types': 7.72.0 tslib: 2.6.2 dev: false @@ -3781,8 +3765,8 @@ packages: tslib: 2.6.2 dev: false - /@smithy/middleware-stack@2.0.2: - resolution: {integrity: sha512-6BNfPVp/8gcmkKdJhNJK3HEkUNNTrY3hM9vuWXIUSoLk9FZo1L2QuGLGB6S124D9ySInn8PzEdOtguCF5Ao4KA==} + /@smithy/middleware-stack@2.0.3: + resolution: {integrity: sha512-AlhPmbwpkC4lQBVaVHXczmjFvsAhDHhrakqLt038qFLotnJcvDLhmMzAtu23alBeOSkKxkTQq0LsAt2N0WpAbw==} engines: {node: '>=14.0.0'} dependencies: '@smithy/types': 2.3.3 @@ -3872,11 +3856,11 @@ packages: tslib: 2.6.2 dev: false - /@smithy/smithy-client@2.1.6: - resolution: {integrity: sha512-+F26b8U7C6ydJgj5Y+OZ94NL54HQUPF1LrFiZjMAIX3OlgZjDhiT3m6VOZo6+hge3sEFOrupwdjB5V24JOCpQw==} + /@smithy/smithy-client@2.1.7: + resolution: {integrity: sha512-r6T/oiBQ8vCbGqObH4/h0YqD0jFB1hAS9KFRmuTfaNJueu/L2hjmjqFjv3PV5lkbNHTgUYraSv4cFQ1naxiELQ==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/middleware-stack': 2.0.2 + '@smithy/middleware-stack': 2.0.3 '@smithy/types': 2.3.3 '@smithy/util-stream': 2.0.12 tslib: 2.6.2 @@ -3933,26 +3917,26 @@ packages: tslib: 2.6.2 dev: false - /@smithy/util-defaults-mode-browser@2.0.10: - resolution: {integrity: sha512-M5eaPn961jU2glZkqvmrVd6H4Tz4j1CJ2Kt8kjqMfcWZ4IQFgwPYbRkgND0W93dZXDmFU2GtuJGatwSmWIqxrA==} + /@smithy/util-defaults-mode-browser@2.0.11: + resolution: {integrity: sha512-0syV1Mz/mCQ7CG/MHKQfH+w86xq59jpD0EOXv5oe0WBXLmq2lWPpVHl2Y6+jQ+/9fYzyZ5NF+NC/WEIuiv690A==} engines: {node: '>= 10.0.0'} dependencies: '@smithy/property-provider': 2.0.10 - '@smithy/smithy-client': 2.1.6 + '@smithy/smithy-client': 2.1.7 '@smithy/types': 2.3.3 bowser: 2.11.0 tslib: 2.6.2 dev: false - /@smithy/util-defaults-mode-node@2.0.12: - resolution: {integrity: sha512-fwAVus2YBTU5u4KFmmEZDdgx3HpUUg8f6SEUetJFsNL+6AzoGBIhCZX0yMrVCLJEZe6tUfMbL5TZHXMw2q6MaA==} + /@smithy/util-defaults-mode-node@2.0.13: + resolution: {integrity: sha512-6BtCHYdw5Z8r6KpW8tRCc3yURgvcQwfIEeHhR70BeSOfx8T/TXPPjb8A+K45+KASspa3fzrsSxeIwB0sAeMoHA==} engines: {node: '>= 10.0.0'} dependencies: '@smithy/config-resolver': 2.0.10 '@smithy/credential-provider-imds': 2.0.12 '@smithy/node-config-provider': 2.0.12 '@smithy/property-provider': 2.0.10 - '@smithy/smithy-client': 2.1.6 + '@smithy/smithy-client': 2.1.7 '@smithy/types': 2.3.3 tslib: 2.6.2 dev: false @@ -4036,8 +4020,8 @@ packages: - supports-color dev: false - /@stylistic/eslint-plugin-js@0.0.3: - resolution: {integrity: sha512-yC9tsmFxlgoDyD/B+93IH2TSe1Ca46s2uf+oUfkCLWTXFKTmPPy0YLDcme9Ha1Qydx5U+1lehe1jwG9VxtIdtw==} + /@stylistic/eslint-plugin-js@0.0.5: + resolution: {integrity: sha512-Ca3DAk4lHGELPHnHIOUc/SF3Pg58xd/AATqNMSTSoxjoadRk6MGDblriURXjEg7gif4ygiB3+EcIuphAceFYvQ==} dependencies: acorn: 8.10.0 escape-string-regexp: 4.0.0 @@ -4047,30 +4031,41 @@ packages: graphemer: 1.4.0 dev: true - /@stylistic/eslint-plugin-ts@0.0.3(eslint@8.50.0)(typescript@5.2.2): - resolution: {integrity: sha512-G/jZ+XHlZtkxABOXswJNTmN4h8qNmECTjPLkWPMykPlfQeD1RSpBMEQHiJHZ3GAxnEcqAgi7CNA1FTvGWz6qwQ==} + /@stylistic/eslint-plugin-ts@0.0.5(eslint@8.50.0)(typescript@5.2.2): + resolution: {integrity: sha512-Ei/arToTJEF2nxxJLsXqK9qMxPgZi8IyM2X+1q8HRA11Q3zRMut8u1B1zwE8q9EhorBwZsgnmphgzmDG0Mot+w==} peerDependencies: eslint: '*' - typescript: '*' dependencies: - '@stylistic/eslint-plugin-js': 0.0.3 - '@typescript-eslint/scope-manager': 6.7.2 - '@typescript-eslint/type-utils': 6.7.2(eslint@8.50.0)(typescript@5.2.2) - '@typescript-eslint/utils': 6.7.2(eslint@8.50.0)(typescript@5.2.2) + '@stylistic/eslint-plugin-js': 0.0.5 + '@typescript-eslint/scope-manager': 6.7.3 + '@typescript-eslint/type-utils': 6.7.3(eslint@8.50.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.7.3(eslint@8.50.0)(typescript@5.2.2) eslint: 8.50.0 graphemer: 1.4.0 - semver: 7.5.4 - typescript: 5.2.2 transitivePeerDependencies: - supports-color + - typescript + dev: true + + /@stylistic/eslint-plugin@0.0.5(eslint@8.50.0)(typescript@5.2.2): + resolution: {integrity: sha512-8InMNsdJrQqdKxCxd7Zc8HCYg2p5a4XXkqxRzjG7Soy+RWQdj7bAGfTmaDWB0i28CffYabOfOsAgRlfG9oe3Wg==} + peerDependencies: + eslint: '*' + dependencies: + '@stylistic/eslint-plugin-js': 0.0.5 + '@stylistic/eslint-plugin-ts': 0.0.5(eslint@8.50.0)(typescript@5.2.2) + eslint: 8.50.0 + transitivePeerDependencies: + - supports-color + - typescript dev: true /@supercharge/request-ip@1.2.0: resolution: {integrity: sha512-wlt6JW69MHqLY2M6Sm/jVyCojNRKq2CBvwH0Hbx24SFhDQQGkgEjeKxVutDxHSyrWixFaOSLXC27euzxijhyMQ==} dev: false - /@swc/core-darwin-arm64@1.3.89: - resolution: {integrity: sha512-LVCZQ2yGrX2678uMvW66IF1bzcOMqiABi+ioNDnJtAIsE/zRVMEYp1ivbOrH32FmPplBby6CGgJIOT3P4VaP1g==} + /@swc/core-darwin-arm64@1.3.90: + resolution: {integrity: sha512-he0w74HvcoufE6CZrB/U/VGVbc7021IQvYrn1geMACnq/OqMBqjdczNtdNfJAy87LZ4AOUjHDKEIjsZZu7o8nQ==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] @@ -4078,8 +4073,8 @@ packages: dev: true optional: true - /@swc/core-darwin-x64@1.3.89: - resolution: {integrity: sha512-IwKlX65YrPBF3urOxBJia0PjnZeaICnCkSwGLiYyV1RhM8XwZ/XyEDTBEsdph3WxUM5wCZQSk8UY/d0saIsX9w==} + /@swc/core-darwin-x64@1.3.90: + resolution: {integrity: sha512-hKNM0Ix0qMlAamPe0HUfaAhQVbZEL5uK6Iw8v9ew0FtVB4v7EifQ9n41wh+yCj0CjcHBPEBbQU0P6mNTxJu/RQ==} engines: {node: '>=10'} cpu: [x64] os: [darwin] @@ -4087,8 +4082,8 @@ packages: dev: true optional: true - /@swc/core-linux-arm-gnueabihf@1.3.89: - resolution: {integrity: sha512-u5qAPh7NkKoDJYwfaB5zuRvzW2+A89CQQHp5xcYjpctRsk3sUrPmC7vNeE12xipBNKLujIG59ppbrf6Pkp5XIg==} + /@swc/core-linux-arm-gnueabihf@1.3.90: + resolution: {integrity: sha512-HumvtrqTWE8rlFuKt7If0ZL7145H/jVc4AeziVjcd+/ajpqub7IyfrLCYd5PmKMtfeSVDMsxjG0BJ0HLRxrTJA==} engines: {node: '>=10'} cpu: [arm] os: [linux] @@ -4096,8 +4091,8 @@ packages: dev: true optional: true - /@swc/core-linux-arm64-gnu@1.3.89: - resolution: {integrity: sha512-eykuO7XtPltk600HvnnRr1nU5qGk7PeqLmztHA7R2bu2SbtcbCGsewPNcAX5eP8by2VwpGcLPdxaKyqeUwCgoA==} + /@swc/core-linux-arm64-gnu@1.3.90: + resolution: {integrity: sha512-tA7DqCS7YCwngwXZQeqQhhMm8BbydpaABw8Z/EDQ7KPK1iZ1rNjZw+aWvSpmNmEGmH1RmQ9QDS9mGRDp0faAeg==} engines: {node: '>=10'} cpu: [arm64] os: [linux] @@ -4105,8 +4100,8 @@ packages: dev: true optional: true - /@swc/core-linux-arm64-musl@1.3.89: - resolution: {integrity: sha512-i/65Vt3ljfd6EyR+WWZ5aAjZLTQMIHoR+Ay97jE0kysRn8MEOINu0SWyiEwcdXzRGlt+zkrKYfOxp745sWPDAw==} + /@swc/core-linux-arm64-musl@1.3.90: + resolution: {integrity: sha512-p2Vtid5BZA36fJkNUwk5HP+HJlKgTru+Ghna7pRe45ghKkkRIUk3fhkgudEvfKfhT+3AvP+GTVQ+T9k0gc9S8w==} engines: {node: '>=10'} cpu: [arm64] os: [linux] @@ -4114,8 +4109,8 @@ packages: dev: true optional: true - /@swc/core-linux-x64-gnu@1.3.89: - resolution: {integrity: sha512-ERETXe68CJRdNkL3EIN62gErh3p6+/6hmz4C0epnYJ4F7QspdW/EOluL1o9bl4dux4Xz0nmBPSZsqfHq/nl1KA==} + /@swc/core-linux-x64-gnu@1.3.90: + resolution: {integrity: sha512-J6pDtWaulYGXuANERuvv4CqmUbZOQrRZBCRQGZQJ6a86RWpesZqckBelnYx48wYmkgvMkF95Y3xbI3WTfoSHzw==} engines: {node: '>=10'} cpu: [x64] os: [linux] @@ -4123,8 +4118,8 @@ packages: dev: true optional: true - /@swc/core-linux-x64-musl@1.3.89: - resolution: {integrity: sha512-EXiwgU5E/yC5zuJtOXXWv+wMwpe5DR380XhVxIOBG6nFi6MR3O2X37KxeEdQZX8RwN7/KU6kNHeifzEiSvixfA==} + /@swc/core-linux-x64-musl@1.3.90: + resolution: {integrity: sha512-3Gh6EA3+0K+l3MqnRON7h5bZ32xLmfcVM6QiHHJ9dBttq7YOEeEoMOCdIPMaQxJmK1VfLgZCsPYRd66MhvUSkw==} engines: {node: '>=10'} cpu: [x64] os: [linux] @@ -4132,8 +4127,8 @@ packages: dev: true optional: true - /@swc/core-win32-arm64-msvc@1.3.89: - resolution: {integrity: sha512-j7GvkgeOrZlB55MpEwX+6E6KjxwOmwRXpIqMjF11JDIZ0wEwHlBxZhlnQQ58iuI6jL6AJgDH/ktDhMyELoBiHw==} + /@swc/core-win32-arm64-msvc@1.3.90: + resolution: {integrity: sha512-BNaw/iJloDyaNOFV23Sr53ULlnbmzSoerTJ10v0TjSZOEIpsS0Rw6xOK1iI0voDJnRXeZeWRSxEC9DhefNtN/g==} engines: {node: '>=10'} cpu: [arm64] os: [win32] @@ -4141,8 +4136,8 @@ packages: dev: true optional: true - /@swc/core-win32-ia32-msvc@1.3.89: - resolution: {integrity: sha512-n57nE7d3FXBa3Y2+VoJdPulcUAS0ZGAGVGxFpeM/tZt1MBEN5OvpOSOIp35dK5HAAxAzTPlmqj9KUYnVxLMVKw==} + /@swc/core-win32-ia32-msvc@1.3.90: + resolution: {integrity: sha512-SiyTethWAheE/JbxXCukAAciU//PLcmVZ2ME92MRuLMLmOhrwksjbaa7ukj9WEF3LWrherhSqTXnpj3VC1l/qw==} engines: {node: '>=10'} cpu: [ia32] os: [win32] @@ -4150,8 +4145,8 @@ packages: dev: true optional: true - /@swc/core-win32-x64-msvc@1.3.89: - resolution: {integrity: sha512-6yMAmqgseAwEXFIwurP7CL8yIH8n7/Rg62ooOVSLSWL5O/Pwlpy1WrpoA0eKhgMLLkIrPvNuKaE/rG7c2iNQHA==} + /@swc/core-win32-x64-msvc@1.3.90: + resolution: {integrity: sha512-OpWAW5ljKcPJ3SQ0pUuKqYfwXv7ssIhVgrH9XP9ONtdgXKWZRL9hqJQkcL55FARw/gDjKanoCM47wsTNQL+ZZA==} engines: {node: '>=10'} cpu: [x64] os: [win32] @@ -4159,8 +4154,8 @@ packages: dev: true optional: true - /@swc/core@1.3.89: - resolution: {integrity: sha512-+FchWateF57g50ChX6++QQDwgVd6iWZX5HA6m9LRIdJIB56bIqbwRQDwVL3Q8Rlbry4kmw+RxiOW2FjAx9mQOQ==} + /@swc/core@1.3.90: + resolution: {integrity: sha512-wptBxP4PldOnhmyDVj8qUcn++GRqyw1qc9wOTGtPNHz8cpuTfdfIgYGlhI4La0UYqecuaaIfLfokyuNePOMHPg==} engines: {node: '>=10'} requiresBuild: true peerDependencies: @@ -4172,30 +4167,30 @@ packages: '@swc/counter': 0.1.1 '@swc/types': 0.1.5 optionalDependencies: - '@swc/core-darwin-arm64': 1.3.89 - '@swc/core-darwin-x64': 1.3.89 - '@swc/core-linux-arm-gnueabihf': 1.3.89 - '@swc/core-linux-arm64-gnu': 1.3.89 - '@swc/core-linux-arm64-musl': 1.3.89 - '@swc/core-linux-x64-gnu': 1.3.89 - '@swc/core-linux-x64-musl': 1.3.89 - '@swc/core-win32-arm64-msvc': 1.3.89 - '@swc/core-win32-ia32-msvc': 1.3.89 - '@swc/core-win32-x64-msvc': 1.3.89 + '@swc/core-darwin-arm64': 1.3.90 + '@swc/core-darwin-x64': 1.3.90 + '@swc/core-linux-arm-gnueabihf': 1.3.90 + '@swc/core-linux-arm64-gnu': 1.3.90 + '@swc/core-linux-arm64-musl': 1.3.90 + '@swc/core-linux-x64-gnu': 1.3.90 + '@swc/core-linux-x64-musl': 1.3.90 + '@swc/core-win32-arm64-msvc': 1.3.90 + '@swc/core-win32-ia32-msvc': 1.3.90 + '@swc/core-win32-x64-msvc': 1.3.90 dev: true /@swc/counter@0.1.1: resolution: {integrity: sha512-xVRaR4u9hcYjFvcSg71Lz5Bo4//CyjAAfMxa7UsaDSYxAshflUkVJWiyVWrfxC59z2kP1IzI4/1BEpnhI9o3Mw==} dev: true - /@swc/jest@0.2.29(@swc/core@1.3.89): + /@swc/jest@0.2.29(@swc/core@1.3.90): resolution: {integrity: sha512-8reh5RvHBsSikDC3WGCd5ZTd2BXKkyOdK7QwynrCH58jk2cQFhhHhFBg/jvnWZehUQe/EoOImLENc9/DwbBFow==} engines: {npm: '>= 7.0.0'} peerDependencies: '@swc/core': '*' dependencies: '@jest/create-cache-key-function': 27.5.1 - '@swc/core': 1.3.89 + '@swc/core': 1.3.90 jsonc-parser: 3.2.0 dev: true @@ -4243,8 +4238,8 @@ packages: /@types/babel__core@7.20.2: resolution: {integrity: sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA==} dependencies: - '@babel/parser': 7.22.16 - '@babel/types': 7.22.19 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 '@types/babel__generator': 7.6.5 '@types/babel__template': 7.4.2 '@types/babel__traverse': 7.20.2 @@ -4253,20 +4248,20 @@ packages: /@types/babel__generator@7.6.5: resolution: {integrity: sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w==} dependencies: - '@babel/types': 7.22.19 + '@babel/types': 7.23.0 dev: true /@types/babel__template@7.4.2: resolution: {integrity: sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ==} dependencies: - '@babel/parser': 7.22.16 - '@babel/types': 7.22.19 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 dev: true /@types/babel__traverse@7.20.2: resolution: {integrity: sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw==} dependencies: - '@babel/types': 7.22.19 + '@babel/types': 7.23.0 dev: true /@types/body-parser@1.19.3: @@ -4289,7 +4284,7 @@ packages: /@types/compression@1.7.3: resolution: {integrity: sha512-rKquEGjebqizyHNMOpaE/4FdYR5VQiWFeesqYfvJU0seSEyB4625UGhNOO/qIkH10S3wftiV7oefc8WdLZ/gCQ==} dependencies: - '@types/express': 4.17.17 + '@types/express': 4.17.18 dev: true /@types/connect@3.4.36: @@ -4309,45 +4304,45 @@ packages: dependencies: '@types/node': 20.7.0 - /@types/dompurify@3.0.2: - resolution: {integrity: sha512-YBL4ziFebbbfQfH5mlC+QTJsvh0oJUrWbmxKMyEdL7emlHJqGR2Qb34TEFKj+VCayBvjKy3xczMFNhugThUsfQ==} + /@types/dompurify@3.0.3: + resolution: {integrity: sha512-odiGr/9/qMqjcBOe5UhcNLOFHSYmKFOyr+bJ/Xu3Qp4k1pNPAlNLUVNNLcLfjQI7+W7ObX58EdD3H+3p3voOvA==} dependencies: '@types/trusted-types': 2.0.4 dev: false - /@types/eslint-scope@3.7.4: - resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==} + /@types/eslint-scope@3.7.5: + resolution: {integrity: sha512-JNvhIEyxVW6EoMIFIvj93ZOywYFatlpu9deeH6eSx6PE3WHYvHaQtmHmQeNw7aA81bYGBPPQqdtBm6b1SsQMmA==} dependencies: - '@types/eslint': 8.44.2 - '@types/estree': 1.0.1 + '@types/eslint': 8.44.3 + '@types/estree': 1.0.2 dev: true - /@types/eslint@8.44.2: - resolution: {integrity: sha512-sdPRb9K6iL5XZOmBubg8yiFp5yS/JdUDQsq5e6h95km91MCYMuvp7mh1fjPEYUhvHepKpZOjnEaMBR4PxjWDzg==} + /@types/eslint@8.44.3: + resolution: {integrity: sha512-iM/WfkwAhwmPff3wZuPLYiHX18HI24jU8k1ZSH7P8FHwxTjZ2P6CoX2wnF43oprR+YXJM6UUxATkNvyv/JHd+g==} dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.2 '@types/json-schema': 7.0.13 dev: true - /@types/estree@1.0.1: - resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} + /@types/estree@1.0.2: + resolution: {integrity: sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==} dev: true - /@types/express-serve-static-core@4.17.36: - resolution: {integrity: sha512-zbivROJ0ZqLAtMzgzIUC4oNqDG9iF0lSsAqpOD9kbs5xcIM3dTiyuHvBc7R8MtWBp3AAWGaovJa+wzWPjLYW7Q==} + /@types/express-serve-static-core@4.17.37: + resolution: {integrity: sha512-ZohaCYTgGFcOP7u6aJOhY9uIZQgZ2vxC2yWoArY+FeDXlqeH66ZVBjgvg+RLVAS/DWNq4Ap9ZXu1+SUQiiWYMg==} dependencies: '@types/node': 20.7.0 '@types/qs': 6.9.8 '@types/range-parser': 1.2.4 - '@types/send': 0.17.1 + '@types/send': 0.17.2 - /@types/express@4.17.17: - resolution: {integrity: sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==} + /@types/express@4.17.18: + resolution: {integrity: sha512-Sxv8BSLLgsBYmcnGdGjjEjqET2U+AKAdCRODmMiq02FgjwuV75Ut85DRpvFjyw/Mk0vgUOliGRU0UUmuuZHByQ==} dependencies: '@types/body-parser': 1.19.3 - '@types/express-serve-static-core': 4.17.36 + '@types/express-serve-static-core': 4.17.37 '@types/qs': 6.9.8 - '@types/serve-static': 1.15.2 + '@types/serve-static': 1.15.3 /@types/glob@8.1.0: resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} @@ -4371,16 +4366,16 @@ packages: resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} dev: true - /@types/istanbul-lib-report@3.0.0: - resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==} + /@types/istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-gPQuzaPR5h/djlAv2apEG1HVOyj1IUs7GpfMZixU0/0KXT3pm64ylHuMUI1/Akh+sq/iikxg6Z2j+fcMDXaaTQ==} dependencies: '@types/istanbul-lib-coverage': 2.0.4 dev: true - /@types/istanbul-reports@3.0.1: - resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==} + /@types/istanbul-reports@3.0.2: + resolution: {integrity: sha512-kv43F9eb3Lhj+lr/Hn6OcLCs/sSM8bt+fIaP11rCYngfV6NVjzWXJ17owQtDQTL9tQ8WSLUrGsSJ6rJz0F1w1A==} dependencies: - '@types/istanbul-lib-report': 3.0.0 + '@types/istanbul-lib-report': 3.0.1 dev: true /@types/jest@29.5.5: @@ -4394,10 +4389,6 @@ packages: resolution: {integrity: sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==} dev: true - /@types/json5@0.0.29: - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - dev: true - /@types/jsonwebtoken@9.0.2: resolution: {integrity: sha512-drE6uz7QBKq1fYqqoFKTDRdFCPHd5TCub75BM+D+cMx7NU9hUz7SESLfC2fSCXVFMO5Yj8sOWHuGqPgjc+fz0Q==} dependencies: @@ -4441,14 +4432,20 @@ packages: dev: false optional: true + /@types/mdast@3.0.12: + resolution: {integrity: sha512-DT+iNIRNX884cx0/Q1ja7NyUPpZuv0KPyL5rGNxm1WC1OtHstl7n4Jb7nk+xacNShQMbczJjt8uFzznpp6kYBg==} + dependencies: + '@types/unist': 2.0.8 + dev: true + /@types/mdurl@1.0.2: resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==} requiresBuild: true dev: false optional: true - /@types/mime-types@2.1.1: - resolution: {integrity: sha512-vXOTGVSLR2jMw440moWTC7H19iUyLtP3Z1YTj7cSsubOICinjMxFeb/V57v9QdyyPGbbWolUFSSmSiRSn94tFw==} + /@types/mime-types@2.1.2: + resolution: {integrity: sha512-q9QGHMGCiBJCHEvd4ZLdasdqXv570agPsUW0CeIm/B8DzhxsYMerD0l3IlI+EQ1A2RWHY2mmM9x1YIuuWxisCg==} dev: true /@types/mime@1.3.2: @@ -4463,14 +4460,14 @@ packages: dev: false optional: true - /@types/multer@1.4.7: - resolution: {integrity: sha512-/SNsDidUFCvqqcWDwxv2feww/yqhNeTRL5CVoL3jU4Goc4kKEL10T7Eye65ZqPNi4HRx8sAEX59pV1aEH7drNA==} + /@types/multer@1.4.8: + resolution: {integrity: sha512-VMZOW6mnmMMhA5m3fsCdXBwFwC+a+27/8gctNMuQC4f7UtWcF79KAFGoIfKZ4iqrElgWIa3j5vhMJDp0iikQ1g==} dependencies: - '@types/express': 4.17.17 + '@types/express': 4.17.18 dev: true - /@types/node@14.18.62: - resolution: {integrity: sha512-53Fhb08qfKwSNCIUtysIqw0ye+v1d5QCdL2kl8liKQFlOZTAo+nEYr/FztzMaHBFwB5H0ugF0PF0gmtojaNNiQ==} + /@types/node@14.18.63: + resolution: {integrity: sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==} dev: false /@types/node@20.4.7: @@ -4488,8 +4485,8 @@ packages: '@types/node': 20.7.0 dev: true - /@types/normalize-package-data@2.4.1: - resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} + /@types/normalize-package-data@2.4.2: + resolution: {integrity: sha512-lqa4UEhhv/2sjjIQgjX8B+RBjj47eo0mzGasklVJ78UKGQY1r0VpB9XHDaZZO9qzEFDdy4MrXLuEaSmPrPSe/A==} /@types/oauth@0.9.2: resolution: {integrity: sha512-Nu3/abQ6yR9VlsCdX3aiGsWFkj6OJvJqDvg/36t8Gwf2mFXdBZXPDN3K+2yfeA6Lo2m1Q12F8Qil9TZ48nWhOQ==} @@ -4504,46 +4501,46 @@ packages: /@types/passport-facebook@3.0.1: resolution: {integrity: sha512-+wksCaYVbLPd+VhF0yWRt+fcmuYBfAWF0PrVPPy7gxy5kD92P/8G1erxJWVneP8rvPaiqNiBbVQFcDTSLbeK2g==} dependencies: - '@types/express': 4.17.17 + '@types/express': 4.17.18 '@types/passport': 1.0.13 - '@types/passport-oauth2': 1.4.12 + '@types/passport-oauth2': 1.4.13 dev: true /@types/passport-google-oauth20@2.0.12: resolution: {integrity: sha512-+MBVB8uYd8mMZYvTwYChCa2LBGVK9FMwdK5TtcNHMeTL6qBZ3QW0HeUtZiAlwgkw2LYM0Btlzyb19EA8ysm13g==} dependencies: - '@types/express': 4.17.17 + '@types/express': 4.17.18 '@types/passport': 1.0.13 - '@types/passport-oauth2': 1.4.12 + '@types/passport-oauth2': 1.4.13 dev: true /@types/passport-jwt@3.0.10: resolution: {integrity: sha512-D2A911g2uiFsq/XXFBxQjcBcK4c6zPF2gAx9blEfz2AOXx5UUwsd8ZcMTcPe8z9dhW8LQBYLjv+vug2dvnRevA==} dependencies: - '@types/express': 4.17.17 + '@types/express': 4.17.18 '@types/jsonwebtoken': 9.0.3 - '@types/passport-strategy': 0.2.35 + '@types/passport-strategy': 0.2.36 dev: true - /@types/passport-oauth2@1.4.12: - resolution: {integrity: sha512-RZg6cYTyEGinrZn/7REYQds6zrTxoBorX1/fdaz5UHzkG8xdFE7QQxkJagCr2ETzGII58FAFDmnmbTUVMrltNA==} + /@types/passport-oauth2@1.4.13: + resolution: {integrity: sha512-SKjbAFSgV2ys7Vf8+BbQ2Fq09CZGi72xaHqbWPEKhi7czPSC0ff4gXuQEY3XXAuTynPjwj6dlL3YAta9M2K0AQ==} dependencies: - '@types/express': 4.17.17 + '@types/express': 4.17.18 '@types/oauth': 0.9.2 '@types/passport': 1.0.13 dev: true - /@types/passport-strategy@0.2.35: - resolution: {integrity: sha512-o5D19Jy2XPFoX2rKApykY15et3Apgax00RRLf0RUotPDUsYrQa7x4howLYr9El2mlUApHmCMv5CZ1IXqKFQ2+g==} + /@types/passport-strategy@0.2.36: + resolution: {integrity: sha512-hotVZuaCt04LJYXfZD5B+5UeCcRVG8IjKaLLGTJ1eFp0wiFQA2XfsqslGGInWje+OysNNLPH/ducce5GXHDC1Q==} dependencies: - '@types/express': 4.17.17 + '@types/express': 4.17.18 '@types/passport': 1.0.13 dev: true /@types/passport@1.0.13: resolution: {integrity: sha512-XXURryL+EZAWtbQFOHX1eNB+RJwz5XMPPz1xrGpEKr2xUZCXM4NCPkHMtZQ3B2tTSG/1IRaAcTHjczRA4sSFCw==} dependencies: - '@types/express': 4.17.17 + '@types/express': 4.17.18 dev: true /@types/preview-email@3.0.2: @@ -4591,18 +4588,18 @@ packages: dev: false optional: true - /@types/semver@7.5.2: - resolution: {integrity: sha512-7aqorHYgdNO4DM36stTiGO3DvKoex9TQRwsJU6vMaFGyqpBA1MNZkz+PG3gaNUPpTAOYhT1WR7M1JyA3fbS9Cw==} + /@types/semver@7.5.3: + resolution: {integrity: sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==} dev: true - /@types/send@0.17.1: - resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==} + /@types/send@0.17.2: + resolution: {integrity: sha512-aAG6yRf6r0wQ29bkS+x97BIs64ZLxeE/ARwyS6wrldMm3C1MdKwCcnnEwMC1slI8wuxJOpiUH9MioC0A0i+GJw==} dependencies: '@types/mime': 1.3.2 '@types/node': 20.7.0 - /@types/serve-static@1.15.2: - resolution: {integrity: sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==} + /@types/serve-static@1.15.3: + resolution: {integrity: sha512-yVRvFsEMrv7s0lGhzrggJjNOSmZCdgCjw9xWrPr/kNNLp6FaDfMC1KaYl3TSJ0c58bECwNBMoQrZJ8hA8E1eFg==} dependencies: '@types/http-errors': 2.0.2 '@types/mime': 3.0.1 @@ -4612,8 +4609,8 @@ packages: resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} dev: true - /@types/superagent@4.1.18: - resolution: {integrity: sha512-LOWgpacIV8GHhrsQU+QMZuomfqXiqzz3ILLkCtKx3Us6AmomFViuzKT9D693QTKgyut2oCytMG8/efOop+DB+w==} + /@types/superagent@4.1.19: + resolution: {integrity: sha512-McM1mlc7PBZpCaw0fw/36uFqo0YeA6m8JqoyE4OfqXsZCIg0hPP2xdE6FM7r6fdprDZHlJwDpydUj1R++93hCA==} dependencies: '@types/cookiejar': 2.1.2 '@types/node': 20.7.0 @@ -4622,14 +4619,14 @@ packages: /@types/supertest@2.0.13: resolution: {integrity: sha512-Vc/5/pRwSC055fU7Wu8erTj4gLpID9SdG2zRMuqaHLni3GTsrJ8gyB6MbFZZGLW6vQaGPhiUWRB6uWglv87MEg==} dependencies: - '@types/superagent': 4.1.18 + '@types/superagent': 4.1.19 dev: true /@types/swagger-stats@0.95.9: resolution: {integrity: sha512-u61LUh2sv34Bvv3n2yNM7BHCJPOOITMHL+dK9aOUdeIHJYdL142iknrPbnidnOAYGhoEesTZcKT+GIZnrm46JA==} dependencies: '@hapi/hapi': 21.1.0 - '@types/express': 4.17.17 + '@types/express': 4.17.18 '@types/node': 20.7.0 fastify: 3.29.5 joi: 17.10.2 @@ -4641,31 +4638,35 @@ packages: /@types/swagger-ui-express@4.1.4: resolution: {integrity: sha512-h6dfIPFveCJKpStDtjrB+4pig4DAf9Uu2Z51RB7Fj3s6AifexmqhZxBoG50K/k3Afz7wyXsIAY5ZIDTlC2VjrQ==} dependencies: - '@types/express': 4.17.17 - '@types/serve-static': 1.15.2 + '@types/express': 4.17.18 + '@types/serve-static': 1.15.3 dev: true /@types/trusted-types@2.0.4: resolution: {integrity: sha512-IDaobHimLQhjwsQ/NMwRVfa/yL7L/wriQPMhw1ZJall0KX6E1oxk29XMDeilW5qTIg5aoiqf5Udy8U/51aNoQQ==} dev: false - /@types/validator@13.11.1: - resolution: {integrity: sha512-d/MUkJYdOeKycmm75Arql4M5+UuXmf4cHdHKsyw1GcvnNgL6s77UkgSgJ8TE/rI5PYsnwYq5jkcWBLuN/MpQ1A==} + /@types/unist@2.0.8: + resolution: {integrity: sha512-d0XxK3YTObnWVp6rZuev3c49+j4Lo8g4L1ZRm9z5L0xpoZycUPshHgczK5gsUMaZOstjVYYi09p5gYvUtfChYw==} + dev: true + + /@types/validator@13.11.2: + resolution: {integrity: sha512-nIKVVQKT6kGKysnNt+xLobr+pFJNssJRi2s034wgWeFBUx01fI8BeHTW2TcRp7VcFu9QCYG8IlChTuovcm0oKQ==} - /@types/yargs-parser@21.0.0: - resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} + /@types/yargs-parser@21.0.1: + resolution: {integrity: sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ==} dev: true - /@types/yargs@16.0.5: - resolution: {integrity: sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==} + /@types/yargs@16.0.6: + resolution: {integrity: sha512-oTP7/Q13GSPrgcwEwdlnkoZSQ1Hg9THe644qq8PG6hhJzjZ3qj1JjEFPIwWV/IXVs5XGIVqtkNOS9kh63WIJ+A==} dependencies: - '@types/yargs-parser': 21.0.0 + '@types/yargs-parser': 21.0.1 dev: true - /@types/yargs@17.0.24: - resolution: {integrity: sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==} + /@types/yargs@17.0.25: + resolution: {integrity: sha512-gy7iPgwnzNvxgAEi2bXOHWCVOG6f7xsprVJH4MjlAWeBmJ7vh/Y1kwMtUrs64ztf24zVIRCpr3n/z6gm9QIkgg==} dependencies: - '@types/yargs-parser': 21.0.0 + '@types/yargs-parser': 21.0.1 dev: true /@typescript-eslint/eslint-plugin@6.7.3(@typescript-eslint/parser@6.7.3)(eslint@8.50.0)(typescript@5.2.2): @@ -4679,7 +4680,7 @@ packages: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.8.1 + '@eslint-community/regexpp': 4.9.0 '@typescript-eslint/parser': 6.7.3(eslint@8.50.0)(typescript@5.2.2) '@typescript-eslint/scope-manager': 6.7.3 '@typescript-eslint/type-utils': 6.7.3(eslint@8.50.0)(typescript@5.2.2) @@ -4718,22 +4719,6 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@5.62.0: - resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - dev: true - - /@typescript-eslint/scope-manager@6.7.2: - resolution: {integrity: sha512-bgi6plgyZjEqapr7u2mhxGR6E8WCzKNUFWNh6fkpVe9+yzRZeYtDTbsIBzKbcxI+r1qVWt6VIoMSNZ4r2A+6Yw==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.7.2 - '@typescript-eslint/visitor-keys': 6.7.2 - dev: true - /@typescript-eslint/scope-manager@6.7.3: resolution: {integrity: sha512-wOlo0QnEou9cHO2TdkJmzF7DFGvAKEnB82PuPNHpT8ZKKaZu6Bm63ugOTn9fXNJtvuDPanBc78lGUGGytJoVzQ==} engines: {node: ^16.0.0 || >=18.0.0} @@ -4742,26 +4727,6 @@ packages: '@typescript-eslint/visitor-keys': 6.7.3 dev: true - /@typescript-eslint/type-utils@6.7.2(eslint@8.50.0)(typescript@5.2.2): - resolution: {integrity: sha512-36F4fOYIROYRl0qj95dYKx6kybddLtsbmPIYNK0OBeXv2j9L5nZ17j9jmfy+bIDHKQgn2EZX+cofsqi8NPATBQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/typescript-estree': 6.7.2(typescript@5.2.2) - '@typescript-eslint/utils': 6.7.2(eslint@8.50.0)(typescript@5.2.2) - debug: 4.3.4 - eslint: 8.50.0 - ts-api-utils: 1.0.3(typescript@5.2.2) - typescript: 5.2.2 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/type-utils@6.7.3(eslint@8.50.0)(typescript@5.2.2): resolution: {integrity: sha512-Fc68K0aTDrKIBvLnKTZ5Pf3MXK495YErrbHb1R6aTpfK5OdSFj0rVN7ib6Tx6ePrZ2gsjLqr0s98NG7l96KSQw==} engines: {node: ^16.0.0 || >=18.0.0} @@ -4782,63 +4747,11 @@ packages: - supports-color dev: true - /@typescript-eslint/types@5.62.0: - resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /@typescript-eslint/types@6.7.2: - resolution: {integrity: sha512-flJYwMYgnUNDAN9/GAI3l8+wTmvTYdv64fcH8aoJK76Y+1FCZ08RtI5zDerM/FYT5DMkAc+19E4aLmd5KqdFyg==} - engines: {node: ^16.0.0 || >=18.0.0} - dev: true - /@typescript-eslint/types@6.7.3: resolution: {integrity: sha512-4g+de6roB2NFcfkZb439tigpAMnvEIg3rIjWQ+EM7IBaYt/CdJt6em9BJ4h4UpdgaBWdmx2iWsafHTrqmgIPNw==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@5.62.0(typescript@5.2.2): - resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.5.4 - tsutils: 3.21.0(typescript@5.2.2) - typescript: 5.2.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/typescript-estree@6.7.2(typescript@5.2.2): - resolution: {integrity: sha512-kiJKVMLkoSciGyFU0TOY0fRxnp9qq1AzVOHNeN1+B9erKFCJ4Z8WdjAkKQPP+b1pWStGFqezMLltxO+308dJTQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 6.7.2 - '@typescript-eslint/visitor-keys': 6.7.2 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.2.2) - typescript: 5.2.2 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/typescript-estree@6.7.3(typescript@5.2.2): resolution: {integrity: sha512-YLQ3tJoS4VxLFYHTw21oe1/vIZPRqAO91z6Uv0Ss2BKm/Ag7/RVQBcXTGcXhgJMdA4U+HrKuY5gWlJlvoaKZ5g==} engines: {node: ^16.0.0 || >=18.0.0} @@ -4860,45 +4773,6 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.50.0)(typescript@5.2.2): - resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0) - '@types/json-schema': 7.0.13 - '@types/semver': 7.5.2 - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) - eslint: 8.50.0 - eslint-scope: 5.1.1 - semver: 7.5.4 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/utils@6.7.2(eslint@8.50.0)(typescript@5.2.2): - resolution: {integrity: sha512-ZCcBJug/TS6fXRTsoTkgnsvyWSiXwMNiPzBUani7hDidBdj1779qwM1FIAmpH4lvlOZNF3EScsxxuGifjpLSWQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0) - '@types/json-schema': 7.0.13 - '@types/semver': 7.5.2 - '@typescript-eslint/scope-manager': 6.7.2 - '@typescript-eslint/types': 6.7.2 - '@typescript-eslint/typescript-estree': 6.7.2(typescript@5.2.2) - eslint: 8.50.0 - semver: 7.5.4 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - /@typescript-eslint/utils@6.7.3(eslint@8.50.0)(typescript@5.2.2): resolution: {integrity: sha512-vzLkVder21GpWRrmSR9JxGZ5+ibIUSudXlW52qeKpzUEQhRSmyZiVDDj3crAth7+5tmN1ulvgKaCU2f/bPRCzg==} engines: {node: ^16.0.0 || >=18.0.0} @@ -4907,7 +4781,7 @@ packages: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0) '@types/json-schema': 7.0.13 - '@types/semver': 7.5.2 + '@types/semver': 7.5.3 '@typescript-eslint/scope-manager': 6.7.3 '@typescript-eslint/types': 6.7.3 '@typescript-eslint/typescript-estree': 6.7.3(typescript@5.2.2) @@ -4918,22 +4792,6 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@5.62.0: - resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.3 - dev: true - - /@typescript-eslint/visitor-keys@6.7.2: - resolution: {integrity: sha512-uVw9VIMFBUTz8rIeaUT3fFe8xIUx8r4ywAdlQv1ifH+6acn/XF8Y6rwJ7XNmkNMDrTW+7+vxFFPIF40nJCVsMQ==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.7.2 - eslint-visitor-keys: 3.4.3 - dev: true - /@typescript-eslint/visitor-keys@6.7.3: resolution: {integrity: sha512-HEVXkU9IB+nk9o63CeICMHxFWbHWr3E1mpilIQBe9+7L/lH97rleFLVtYsfnWB+JVMaiFnEaxvknvmIzX+CqVg==} engines: {node: ^16.0.0 || >=18.0.0} @@ -5370,19 +5228,18 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - /array.prototype.findlastindex@1.2.3: - resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.1 es-abstract: 1.22.2 es-shim-unscopables: 1.0.0 - get-intrinsic: 1.2.1 dev: true - /array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 @@ -5391,14 +5248,14 @@ packages: es-shim-unscopables: 1.0.0 dev: true - /array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} + /array.prototype.tosorted@1.1.2: + resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} dependencies: call-bind: 1.0.2 define-properties: 1.2.1 es-abstract: 1.22.2 es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.1 dev: true /arraybuffer.prototype.slice@1.0.2: @@ -5449,6 +5306,12 @@ packages: resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} dev: false + /asynciterator.prototype@1.0.0: + resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} + dependencies: + has-symbols: 1.0.3 + dev: true + /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -5490,8 +5353,8 @@ packages: - debug dev: false - /axios@1.5.0(debug@4.3.4): - resolution: {integrity: sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==} + /axios@1.5.1(debug@4.3.4): + resolution: {integrity: sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==} dependencies: follow-redirects: 1.15.3(debug@4.3.4) form-data: 4.0.0 @@ -5504,17 +5367,17 @@ packages: resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==} dev: false - /babel-jest@29.7.0(@babel/core@7.22.20): + /babel-jest@29.7.0(@babel/core@7.23.0): resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: - '@babel/core': 7.22.20 + '@babel/core': 7.23.0 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.2 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.22.20) + babel-preset-jest: 29.6.3(@babel/core@7.23.0) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -5540,47 +5403,47 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.22.19 + '@babel/types': 7.23.0 '@types/babel__core': 7.20.2 '@types/babel__traverse': 7.20.2 dev: true - /babel-preset-current-node-syntax@1.0.1(@babel/core@7.22.20): + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.0): resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.20 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.20) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.22.20) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.20) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.20) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.20) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.20) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.20) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.20) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.20) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.20) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.20) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.20) - dev: true - - /babel-preset-jest@29.6.3(@babel/core@7.22.20): + '@babel/core': 7.23.0 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.0) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.0) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.0) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.0) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.0) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.0) + dev: true + + /babel-preset-jest@29.6.3(@babel/core@7.23.0): resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.20 + '@babel/core': 7.23.0 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.22.20) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.0) dev: true /babel-walk@3.0.0-canary-5: resolution: {integrity: sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==} engines: {node: '>= 10.0.0'} dependencies: - '@babel/types': 7.22.19 + '@babel/types': 7.23.0 dev: false /backo2@1.0.2: @@ -5701,6 +5564,10 @@ packages: transitivePeerDependencies: - supports-color + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + dev: true + /bowser@2.11.0: resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} dev: false @@ -5740,15 +5607,15 @@ packages: resolution: {integrity: sha512-8CVjaLJGuSKMVTxJ2DpBl5XnlNDiT4cQFeuCJJrvJmts9YrTZDizTX7PjC2s6W4x+MBGZeEY6dGMrF04/6Hgqg==} dev: false - /browserslist@4.21.10: - resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==} + /browserslist@4.22.0: + resolution: {integrity: sha512-v+Jcv64L2LbfTC6OnRcaxtqJNJuQAVhZKSJfR/6hn7lhnChUXl4amwVviqN1k411BB+3rRoKMitELRn1CojeRA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001538 - electron-to-chromium: 1.4.526 + caniuse-lite: 1.0.30001539 + electron-to-chromium: 1.4.530 node-releases: 2.0.13 - update-browserslist-db: 1.0.12(browserslist@4.21.10) + update-browserslist-db: 1.0.13(browserslist@4.22.0) dev: true /bser@2.1.1: @@ -5800,6 +5667,12 @@ packages: engines: {node: '>=6'} dev: true + /builtins@5.0.1: + resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} + dependencies: + semver: 7.5.4 + dev: true + /busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} @@ -5856,8 +5729,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - /caniuse-lite@1.0.30001538: - resolution: {integrity: sha512-HWJnhnID+0YMtGlzcp3T9drmBJUVDchPJ08tpUGFLs9CYlwWPH2uLgpHn8fND5pCgXVtnGS3H4QR9XLMHVNkHw==} + /caniuse-lite@1.0.30001539: + resolution: {integrity: sha512-hfS5tE8bnNiNvEOEkm8HElUHroYwlqMMENEzELymy77+tJ6m+gA2krtHl5hxJaj71OlpC2cHZbdSMX1/YEqEkA==} dev: true /canvg@3.0.10: @@ -5865,7 +5738,7 @@ packages: engines: {node: '>=10.0.0'} requiresBuild: true dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.23.1 '@types/raf': 3.4.0 core-js: 3.32.2 raf: 3.4.1 @@ -5918,12 +5791,24 @@ packages: engines: {node: '>=10'} dev: true + /character-entities-legacy@1.1.4: + resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} + dev: true + + /character-entities@1.2.4: + resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} + dev: true + /character-parser@2.2.0: resolution: {integrity: sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==} dependencies: is-regex: 1.1.4 dev: false + /character-reference-invalid@1.1.4: + resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} + dev: true + /chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: true @@ -5979,7 +5864,7 @@ packages: /class-validator@0.14.0: resolution: {integrity: sha512-ct3ltplN8I9fOwUd8GrP8UQixwff129BkEtuWDKL5W45cQuLd19xqmTLu5ge78YDm/fdje6FMt0hGOhl0lii3A==} dependencies: - '@types/validator': 13.11.1 + '@types/validator': 13.11.2 libphonenumber-js: 1.10.44 validator: 13.11.0 @@ -6065,8 +5950,8 @@ packages: lodash: 4.17.21 dev: false - /cloudinary@1.40.0: - resolution: {integrity: sha512-Fifkl8NRw/M+Enw4cKCXc6e0Or28c5y6RVGYS3OCLzT1W8EfBt416FURhLuuL/S4BCVv8bSilmnM746kCtth3g==} + /cloudinary@1.41.0: + resolution: {integrity: sha512-qFf2McjvILJITePf4VF1PrY/8c2zy+/q5FVV6V3VWrP/gpIZsusPqXL4QZ6ZKXibPRukzMYqsQEhaSQgJHKKow==} engines: {node: '>=0.6'} dependencies: cloudinary-core: 2.13.0(lodash@4.17.21) @@ -6180,13 +6065,13 @@ packages: engines: {node: '>= 12.0.0'} dev: true - /commitizen@4.3.0(@swc/core@1.3.89): + /commitizen@4.3.0(@swc/core@1.3.90): resolution: {integrity: sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==} engines: {node: '>= 12'} hasBin: true dependencies: cachedir: 2.3.0 - cz-conventional-changelog: 3.3.0(@swc/core@1.3.89) + cz-conventional-changelog: 3.3.0(@swc/core@1.3.90) dedent: 0.7.0 detect-indent: 6.1.0 find-node-modules: 2.1.3 @@ -6252,8 +6137,8 @@ packages: /constantinople@4.0.1: resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==} dependencies: - '@babel/parser': 7.22.16 - '@babel/types': 7.22.19 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 dev: false /content-disposition@0.5.4: @@ -6334,7 +6219,7 @@ packages: dependencies: '@types/node': 20.4.7 cosmiconfig: 8.3.6(typescript@5.2.2) - ts-node: 10.9.1(@swc/core@1.3.89)(@types/node@20.4.7)(typescript@5.2.2) + ts-node: 10.9.1(@swc/core@1.3.90)(@types/node@20.4.7)(typescript@5.2.2) typescript: 5.2.2 dev: true optional: true @@ -6438,6 +6323,12 @@ packages: dev: false optional: true + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: true + /cssstyle@3.0.0: resolution: {integrity: sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==} engines: {node: '>=14'} @@ -6445,18 +6336,18 @@ packages: rrweb-cssom: 0.6.0 dev: false - /cz-conventional-changelog@3.3.0(@swc/core@1.3.89): + /cz-conventional-changelog@3.3.0(@swc/core@1.3.90): resolution: {integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==} engines: {node: '>= 10'} dependencies: chalk: 2.4.2 - commitizen: 4.3.0(@swc/core@1.3.89) + commitizen: 4.3.0(@swc/core@1.3.90) conventional-commit-types: 3.0.0 lodash.map: 4.6.0 longest: 2.0.1 word-wrap: 1.2.5 optionalDependencies: - '@commitlint/load': 17.7.1(@swc/core@1.3.89) + '@commitlint/load': 17.7.1(@swc/core@1.3.90) transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -6483,7 +6374,7 @@ packages: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.23.1 dev: false /dateformat@4.6.3: @@ -6765,8 +6656,8 @@ packages: /ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - /electron-to-chromium@1.4.526: - resolution: {integrity: sha512-tjjTMjmZAx1g6COrintLTa2/jcafYKxKoiEkdQOrVdbLaHh2wCt2nsAF8ZHweezkrP+dl/VG9T5nabcYoo0U5Q==} + /electron-to-chromium@1.4.530: + resolution: {integrity: sha512-rsJ9O8SCI4etS8TBsXuRfHa2eZReJhnGf5MHZd3Vo05PukWHKXhk3VQGbHHnDLa8nZz9woPCpLCMQpLGgkGNRA==} dev: true /emittery@0.13.1: @@ -6896,6 +6787,25 @@ packages: which-typed-array: 1.1.11 dev: true + /es-iterator-helpers@1.0.15: + resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} + dependencies: + asynciterator.prototype: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-set-tostringtag: 2.0.1 + function-bind: 1.1.1 + get-intrinsic: 1.2.1 + globalthis: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + iterator.prototype: 1.1.2 + safe-array-concat: 1.0.1 + dev: true + /es-module-lexer@1.3.1: resolution: {integrity: sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==} dev: true @@ -6964,6 +6874,12 @@ packages: dev: false optional: true + /eslint-config-flat-gitignore@0.1.0: + resolution: {integrity: sha512-5nQMQFRkkhCb+ejFhKSATn/41I7ot9oRcnEDzfqwMlBE9036qM9ioYBDtKLpwmlICXr/J7naMFfb39pa4v4sGA==} + dependencies: + parse-gitignore: 2.0.0 + dev: true + /eslint-define-config@1.23.0: resolution: {integrity: sha512-4mMyu0JuBkQHsCtR+42irIQdFLmLIW+pMAVcyOV/gZRL4O1R8iuH0eMG3oL3Cbi1eo9fDAfT5CIHVHgdyxcf6w==} engines: {node: ^16.13.0 || >=18.0.0, npm: '>=7.0.0', pnpm: '>= 8.6.0'} @@ -6979,30 +6895,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.7.3)(eslint-plugin-import@2.28.1)(eslint@8.50.0): - resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' - dependencies: - debug: 4.3.4 - enhanced-resolve: 5.15.0 - eslint: 8.50.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.3)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.50.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.7.3)(eslint-import-resolver-typescript@3.6.1)(eslint@8.50.0) - fast-glob: 3.3.1 - get-tsconfig: 4.7.1 - is-core-module: 2.13.0 - is-glob: 4.0.3 - transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-node - - eslint-import-resolver-webpack - - supports-color - dev: true - - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.7.3)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.50.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.7.3)(eslint-import-resolver-node@0.3.9)(eslint@8.50.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -7027,19 +6920,17 @@ packages: debug: 3.2.7 eslint: 8.50.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.7.3)(eslint-plugin-import@2.28.1)(eslint@8.50.0) transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-deprecation@1.6.0(eslint@8.50.0)(typescript@5.2.2): - resolution: {integrity: sha512-rld+Vrneh/NXRtDB0vQifOvgUy0HJYoejaxWlVnsk/LK7iij2tCWQIFcCKG4uzQb+Ef86bDke39w1lh4wnon4Q==} - deprecated: this package has been deprecated, please use v2.0.0 + /eslint-plugin-deprecation@2.0.0(eslint@8.50.0)(typescript@5.2.2): + resolution: {integrity: sha512-OAm9Ohzbj11/ZFyICyR5N6LbOIvQMp7ZU2zI7Ej0jIc8kiGUERXPNMfw2QqqHD1ZHtjMub3yPZILovYEYucgoQ==} peerDependencies: eslint: ^7.0.0 || ^8.0.0 typescript: ^4.2.4 || ^5.0.0 dependencies: - '@typescript-eslint/utils': 6.7.2(eslint@8.50.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.7.3(eslint@8.50.0)(typescript@5.2.2) eslint: 8.50.0 tslib: 2.6.2 tsutils: 3.21.0(typescript@5.2.2) @@ -7048,66 +6939,54 @@ packages: - supports-color dev: true - /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.7.3)(eslint-import-resolver-typescript@3.6.1)(eslint@8.50.0): - resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} - engines: {node: '>=4'} + /eslint-plugin-es-x@7.2.0(eslint@8.50.0): + resolution: {integrity: sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true + eslint: '>=8' + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0) + '@eslint-community/regexpp': 4.9.0 + eslint: 8.50.0 + dev: true + + /eslint-plugin-eslint-comments@3.2.0(eslint@8.50.0): + resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} + engines: {node: '>=6.5.0'} + peerDependencies: + eslint: '>=4.19.1' + dependencies: + escape-string-regexp: 1.0.5 + eslint: 8.50.0 + ignore: 5.2.4 + dev: true + + /eslint-plugin-i@2.28.1(@typescript-eslint/parser@6.7.3)(eslint@8.50.0): + resolution: {integrity: sha512-a4oVt0j3ixNhGhvV4XF6NS7OWRFK2rrJ0Q5C4S2dSRb8FxZi31J0uUd5WJLL58wnVJ/OiQ1BxiXnFA4dWQO1Cg==} + engines: {node: '>=12'} + peerDependencies: + eslint: ^7.2.0 || ^8 dependencies: - '@typescript-eslint/parser': 6.7.3(eslint@8.50.0)(typescript@5.2.2) - array-includes: 3.1.7 - array.prototype.findlastindex: 1.2.3 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 eslint: 8.50.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.3)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.50.0) - has: 1.0.3 - is-core-module: 2.13.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.3)(eslint-import-resolver-node@0.3.9)(eslint@8.50.0) + get-tsconfig: 4.7.2 is-glob: 4.0.3 minimatch: 3.1.2 - object.fromentries: 2.0.7 - object.groupby: 1.0.1 - object.values: 1.1.7 - semver: 6.3.1 - tsconfig-paths: 3.14.2 + resolve: 1.22.6 + semver: 7.5.4 transitivePeerDependencies: + - '@typescript-eslint/parser' - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color dev: true - /eslint-plugin-jest@27.4.0(@typescript-eslint/eslint-plugin@6.7.3)(eslint@8.50.0)(jest@29.7.0)(typescript@5.2.2): - resolution: {integrity: sha512-ukVeKmMPAUA5SWjHenvyyXnirKfHKMdOsTZdn5tZx5EW05HGVQwBohigjFZGGj3zuv1cV6hc82FvWv6LdIbkgg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@typescript-eslint/eslint-plugin': ^5.0.0 || ^6.0.0 - eslint: ^7.0.0 || ^8.0.0 - jest: '*' - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true - jest: - optional: true - dependencies: - '@typescript-eslint/eslint-plugin': 6.7.3(@typescript-eslint/parser@6.7.3)(eslint@8.50.0)(typescript@5.2.2) - '@typescript-eslint/utils': 5.62.0(eslint@8.50.0)(typescript@5.2.2) - eslint: 8.50.0 - jest: 29.7.0(@types/node@20.7.0)(ts-node@10.9.1) - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /eslint-plugin-jsdoc@46.8.2(eslint@8.50.0): - resolution: {integrity: sha512-5TSnD018f3tUJNne4s4gDWQflbsgOycIKEUBoCLn6XtBMgNHxQFmV8vVxUtiPxAQq8lrX85OaSG/2gnctxw9uQ==} - engines: {node: '>=16'} + /eslint-plugin-jsdoc@46.8.2(eslint@8.50.0): + resolution: {integrity: sha512-5TSnD018f3tUJNne4s4gDWQflbsgOycIKEUBoCLn6XtBMgNHxQFmV8vVxUtiPxAQq8lrX85OaSG/2gnctxw9uQ==} + engines: {node: '>=16'} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: @@ -7125,6 +7004,87 @@ packages: - supports-color dev: true + /eslint-plugin-jsonc@2.9.0(eslint@8.50.0): + resolution: {integrity: sha512-RK+LeONVukbLwT2+t7/OY54NJRccTXh/QbnXzPuTLpFMVZhPuq1C9E07+qWenGx7rrQl0kAalAWl7EmB+RjpGA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0) + eslint: 8.50.0 + jsonc-eslint-parser: 2.3.0 + natural-compare: 1.4.0 + dev: true + + /eslint-plugin-markdown@3.0.1(eslint@8.50.0): + resolution: {integrity: sha512-8rqoc148DWdGdmYF6WSQFT3uQ6PO7zXYgeBpHAOAakX/zpq+NvFYbDA/H7PYzHajwtmaOzAwfxyl++x0g1/N9A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + eslint: 8.50.0 + mdast-util-from-markdown: 0.8.5 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-n@16.1.0(eslint@8.50.0): + resolution: {integrity: sha512-3wv/TooBst0N4ND+pnvffHuz9gNPmk/NkLwAxOt2JykTl/hcuECe6yhTtLJcZjIxtZwN+GX92ACp/QTLpHA3Hg==} + engines: {node: '>=16.0.0'} + peerDependencies: + eslint: '>=7.0.0' + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0) + builtins: 5.0.1 + eslint: 8.50.0 + eslint-plugin-es-x: 7.2.0(eslint@8.50.0) + get-tsconfig: 4.7.2 + ignore: 5.2.4 + is-core-module: 2.13.0 + minimatch: 3.1.2 + resolve: 1.22.6 + semver: 7.5.4 + dev: true + + /eslint-plugin-no-only-tests@3.1.0: + resolution: {integrity: sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==} + engines: {node: '>=5.0.0'} + dev: true + + /eslint-plugin-react-hooks@4.6.0(eslint@8.50.0): + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.50.0 + dev: true + + /eslint-plugin-react@7.33.2(eslint@8.50.0): + resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + array.prototype.tosorted: 1.1.2 + doctrine: 2.1.0 + es-iterator-helpers: 1.0.15 + eslint: 8.50.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + object.hasown: 1.1.3 + object.values: 1.1.7 + prop-types: 15.8.1 + resolve: 2.0.0-next.4 + semver: 6.3.1 + string.prototype.matchall: 4.0.10 + dev: true + /eslint-plugin-unicorn@48.0.1(eslint@8.50.0): resolution: {integrity: sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==} engines: {node: '>=16'} @@ -7164,6 +7124,39 @@ packages: eslint-rule-composer: 0.3.0 dev: true + /eslint-plugin-vue@9.17.0(eslint@8.50.0): + resolution: {integrity: sha512-r7Bp79pxQk9I5XDP0k2dpUC7Ots3OSWgvGZNu3BxmKK6Zg7NgVtcOB6OCna5Kb9oQwJPl5hq183WD0SY5tZtIQ==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0) + eslint: 8.50.0 + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 6.0.13 + semver: 7.5.4 + vue-eslint-parser: 9.3.1(eslint@8.50.0) + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-yml@1.9.0(eslint@8.50.0): + resolution: {integrity: sha512-ayuC57WyVQ5+QZ02y62GiB//5+zsiyzUGxUX/mrhLni+jfsKA4KoITjkbR65iUdjjhWpyTJHPcAIFLKQIOwgsw==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + debug: 4.3.4 + eslint: 8.50.0 + lodash: 4.17.21 + natural-compare: 1.4.0 + yaml-eslint-parser: 1.2.2 + transitivePeerDependencies: + - supports-color + dev: true + /eslint-rule-composer@0.3.0: resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} engines: {node: '>=4.0.0'} @@ -7195,7 +7188,7 @@ packages: hasBin: true dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0) - '@eslint-community/regexpp': 4.8.1 + '@eslint-community/regexpp': 4.9.0 '@eslint/eslintrc': 2.1.2 '@eslint/js': 8.50.0 '@humanwhocodes/config-array': 0.11.11 @@ -7479,8 +7472,8 @@ packages: tmp: 0.0.33 dev: true - /fast-content-type-parse@1.0.0: - resolution: {integrity: sha512-Xbc4XcysUXcsP5aHUU7Nq3OwvHq97C+WnbkeIefpeYLX+ryzFJlU6OStFJhs6Ol0LkUGpcK+wL0JwfM+FCU5IA==} + /fast-content-type-parse@1.1.0: + resolution: {integrity: sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ==} dev: true /fast-copy@3.0.1: @@ -7568,8 +7561,8 @@ packages: strnum: 1.0.5 dev: false - /fast-xml-parser@4.3.0: - resolution: {integrity: sha512-5Wln/SBrtlN37aboiNNFHfSALwLzpUx1vJhDgDVPKKG3JrNe8BWTUoNKqkeKk/HqNbKxC8nEAJaBydq30yHoLA==} + /fast-xml-parser@4.3.1: + resolution: {integrity: sha512-viVv3xb8D+SiS1W4cv4tva3bni08kAkx0gQnWrykMM8nXPc1FxqZPU00dCEVjkiCg4HoXd2jC4x29Nzg/l2DAA==} hasBin: true dependencies: strnum: 1.0.5 @@ -7582,7 +7575,7 @@ packages: '@fastify/error': 2.0.0 abstract-logging: 2.0.1 avvio: 7.2.5 - fast-content-type-parse: 1.0.0 + fast-content-type-parse: 1.1.0 fast-json-stringify: 2.7.13 find-my-way: 4.5.1 flatstr: 1.0.12 @@ -7797,7 +7790,7 @@ packages: semver: 7.5.4 tapable: 2.2.1 typescript: 5.2.2 - webpack: 5.88.2(@swc/core@1.3.89) + webpack: 5.88.2(@swc/core@1.3.90) dev: true /form-data@4.0.0: @@ -7863,8 +7856,8 @@ packages: minipass: 3.3.6 dev: false - /fs-monkey@1.0.4: - resolution: {integrity: sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ==} + /fs-monkey@1.0.5: + resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} dev: true /fs.realpath@1.0.0: @@ -7999,8 +7992,8 @@ packages: get-intrinsic: 1.2.1 dev: true - /get-tsconfig@4.7.1: - resolution: {integrity: sha512-sLtd6Bcwbi9IrAow/raCOTE9pmhvo5ksQo5v2lApUGJMzja64MUYhBp0G6X1S+f7IrBPn1HP+XkS2w2meoGcjg==} + /get-tsconfig@4.7.2: + resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} dependencies: resolve-pkg-maps: 1.0.0 dev: true @@ -8195,7 +8188,7 @@ packages: graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: graphql: 16.8.1 - tslib: 2.6.2 + tslib: 2.5.0 dev: false optional: true @@ -8600,6 +8593,17 @@ packages: engines: {node: '>= 10'} dev: false + /is-alphabetical@1.0.4: + resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} + dev: true + + /is-alphanumerical@1.0.4: + resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} + dependencies: + is-alphabetical: 1.0.4 + is-decimal: 1.0.4 + dev: true + /is-arguments@1.1.1: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} @@ -8618,12 +8622,18 @@ packages: /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - requiresBuild: true /is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} dev: false + /is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + /is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: @@ -8671,6 +8681,10 @@ packages: has-tostringtag: 1.0.0 dev: true + /is-decimal@1.0.4: + resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} + dev: true + /is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} @@ -8688,6 +8702,12 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} + /is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + dependencies: + call-bind: 1.0.2 + dev: true + /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -8707,7 +8727,6 @@ packages: engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 - dev: false /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} @@ -8715,11 +8734,19 @@ packages: dependencies: is-extglob: 2.1.1 + /is-hexadecimal@1.0.4: + resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} + dev: true + /is-interactive@1.0.0: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} dev: true + /is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: true + /is-negative-zero@2.0.2: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} engines: {node: '>= 0.4'} @@ -8756,6 +8783,10 @@ packages: call-bind: 1.0.2 has-tostringtag: 1.0.0 + /is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: true + /is-shared-array-buffer@1.0.2: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: @@ -8811,12 +8842,23 @@ packages: resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} dev: true + /is-weakmap@2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: true + /is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: call-bind: 1.0.2 dev: true + /is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + dev: true + /is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} @@ -8846,7 +8888,7 @@ packages: /isomorphic-dompurify@1.8.0: resolution: {integrity: sha512-qvNsRVUQIArrn7/TNDw0+0wQgtvRxAkSzfe0pGpX1+OYeGhrAWELxZIb6x+KFFRS6mb4OUe+zAK9yp0WDZHUdQ==} dependencies: - '@types/dompurify': 3.0.2 + '@types/dompurify': 3.0.3 dompurify: 3.0.5 jsdom: 22.1.0 transitivePeerDependencies: @@ -8865,8 +8907,8 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.22.20 - '@babel/parser': 7.22.16 + '@babel/core': 7.23.0 + '@babel/parser': 7.23.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.1 @@ -8878,8 +8920,8 @@ packages: resolution: {integrity: sha512-x58orMzEVfzPUKqlbLd1hXCnySCxKdDKa6Rjg97CwuLLRI4g3FHTdnExu1OqffVFay6zeMW+T6/DowFLndWnIw==} engines: {node: '>=10'} dependencies: - '@babel/core': 7.22.20 - '@babel/parser': 7.22.16 + '@babel/core': 7.23.0 + '@babel/parser': 7.23.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 7.5.4 @@ -8925,6 +8967,16 @@ packages: resolution: {integrity: sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==} engines: {node: '>=6'} + /iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.4 + set-function-name: 2.0.1 + dev: true + /jest-changed-files@29.7.0: resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -9003,11 +9055,11 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.22.20 + '@babel/core': 7.23.0 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 '@types/node': 20.7.0 - babel-jest: 29.7.0(@babel/core@7.22.20) + babel-jest: 29.7.0(@babel/core@7.23.0) chalk: 4.1.2 ci-info: 3.8.0 deepmerge: 4.3.1 @@ -9026,7 +9078,7 @@ packages: pretty-format: 29.7.0 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 10.9.1(@swc/core@1.3.89)(@types/node@20.7.0)(typescript@5.2.2) + ts-node: 10.9.1(@swc/core@1.3.90)(@types/node@20.7.0)(typescript@5.2.2) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -9243,15 +9295,15 @@ packages: resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.22.20 - '@babel/generator': 7.22.15 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.20) - '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.20) - '@babel/types': 7.22.19 + '@babel/core': 7.23.0 + '@babel/generator': 7.23.0 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.0) + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.23.0) + '@babel/types': 7.23.0 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.22.20) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.0) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -9403,7 +9455,7 @@ packages: hasBin: true requiresBuild: true dependencies: - '@babel/parser': 7.22.16 + '@babel/parser': 7.23.0 '@jsdoc/salty': 0.2.5 '@types/markdown-it': 12.2.3 bluebird: 3.7.2 @@ -9513,19 +9565,22 @@ packages: resolution: {integrity: sha512-H/ZGY0nIAg3QcOwE1QN/rK/Fa7gJn7Ii5obwp6zyPO4xiPNwpIMjqy2gwjBEGqzkF/vSWEIBQCBuN19hYiL6Qg==} dev: false - /json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - dependencies: - minimist: 1.2.8 - dev: true - /json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} hasBin: true dev: true + /jsonc-eslint-parser@2.3.0: + resolution: {integrity: sha512-9xZPKVYp9DxnM3sd1yAsh/d59iIaswDkai8oTxbursfKYbg/ibjX0IzFt35+VZ8iEW453TVTXztnRvYUQlAfUQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.10.0 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + semver: 7.5.4 + dev: true + /jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} dev: true @@ -9566,7 +9621,7 @@ packages: /jspdf@2.5.1: resolution: {integrity: sha512-hXObxz7ZqoyhxET78+XR34Xu2qFGrJJ2I2bE5w4SM8eFaFEkW2xcGRVUss360fYelwRSid/jT078kbNvmoW0QA==} dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.23.1 atob: 2.1.2 btoa: 1.2.1 fflate: 0.4.8 @@ -9584,6 +9639,16 @@ packages: promise: 7.3.1 dev: false + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.7 + array.prototype.flat: 1.3.2 + object.assign: 4.1.4 + object.values: 1.1.7 + dev: true + /jwa@1.4.1: resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} dependencies: @@ -9606,7 +9671,7 @@ packages: resolution: {integrity: sha512-UUOZ0CVReK1QVU3rbi9bC7N5/le8ziUj0A2ef1Q0M7OPD2KvjEYizptqIxGIo6fSLYDkqBrazILS18tYuRc8gw==} engines: {node: '>=14'} dependencies: - '@types/express': 4.17.17 + '@types/express': 4.17.18 '@types/jsonwebtoken': 9.0.3 debug: 4.3.4 jose: 4.14.6 @@ -9780,7 +9845,6 @@ packages: /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - requiresBuild: true dev: true /lines-and-columns@2.0.3: @@ -9844,6 +9908,11 @@ packages: engines: {node: '>=6.11.5'} dev: true + /local-pkg@0.4.3: + resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} + engines: {node: '>=14'} + dev: true + /locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -9955,6 +10024,13 @@ packages: engines: {node: '>=0.10.0'} dev: true + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + dev: true + /lru-cache@10.0.1: resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} engines: {node: 14 || >=16.14} @@ -10105,6 +10181,22 @@ packages: is-buffer: 1.1.6 dev: false + /mdast-util-from-markdown@0.8.5: + resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} + dependencies: + '@types/mdast': 3.0.12 + mdast-util-to-string: 2.0.0 + micromark: 2.11.4 + parse-entities: 2.0.0 + unist-util-stringify-position: 2.0.3 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-to-string@2.0.0: + resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} + dev: true + /mdurl@1.0.1: resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} requiresBuild: true @@ -10119,7 +10211,7 @@ packages: resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} engines: {node: '>= 4.0.0'} dependencies: - fs-monkey: 1.0.4 + fs-monkey: 1.0.5 dev: true /merge-descriptors@1.0.1: @@ -10141,6 +10233,15 @@ packages: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} + /micromark@2.11.4: + resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} + dependencies: + debug: 4.3.4 + parse-entities: 2.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} @@ -10245,7 +10346,7 @@ packages: block-stream2: 2.1.0 browser-or-node: 2.1.1 buffer-crc32: 0.2.13 - fast-xml-parser: 4.3.0 + fast-xml-parser: 4.3.1 ipaddr.js: 2.1.0 json-stream: 1.0.0 lodash: 4.17.21 @@ -10376,7 +10477,7 @@ packages: '@nestjs/common': '>7.0.0' dependencies: '@nestjs/common': 10.2.6(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) - cloudinary: 1.40.0 + cloudinary: 1.41.0 sharp: 0.31.3 dev: false @@ -10584,6 +10685,12 @@ packages: set-blocking: 2.0.0 dev: false + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + dependencies: + boolbase: 1.0.0 + dev: true + /nwsapi@2.2.7: resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} dev: false @@ -10618,6 +10725,15 @@ packages: object-keys: 1.1.1 dev: true + /object.entries@1.1.7: + resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: true + /object.fromentries@2.0.7: resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} engines: {node: '>= 0.4'} @@ -10627,13 +10743,11 @@ packages: es-abstract: 1.22.2 dev: true - /object.groupby@1.0.1: - resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} + /object.hasown@1.1.3: + resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} dependencies: - call-bind: 1.0.2 define-properties: 1.2.1 es-abstract: 1.22.2 - get-intrinsic: 1.2.1 dev: true /object.values@1.1.7: @@ -10814,7 +10928,6 @@ packages: /parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - requiresBuild: true dependencies: callsites: 3.1.0 dev: true @@ -10824,6 +10937,22 @@ packages: engines: {node: '>= 0.4.0'} dev: true + /parse-entities@2.0.0: + resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} + dependencies: + character-entities: 1.2.4 + character-entities-legacy: 1.1.4 + character-reference-invalid: 1.1.4 + is-alphanumerical: 1.0.4 + is-decimal: 1.0.4 + is-hexadecimal: 1.0.4 + dev: true + + /parse-gitignore@2.0.0: + resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==} + engines: {node: '>=14'} + dev: true + /parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} @@ -10892,7 +11021,7 @@ packages: resolution: {integrity: sha512-KBzxei/qvt2UDkS1qXz2VR2XajbWB5808W+oDpeMsfGqMgBKicaDX7HOrgAVpvw2q+fWOuh21LWe+kYyZPogDA==} engines: {node: '>=10'} dependencies: - '@types/node': 14.18.62 + '@types/node': 14.18.63 jsonwebtoken: 9.0.2 dev: false @@ -11096,7 +11225,7 @@ packages: pump: 3.0.0 readable-stream: 4.4.2 secure-json-parse: 2.7.0 - sonic-boom: 3.3.0 + sonic-boom: 3.4.0 strip-json-comments: 3.1.1 dev: false @@ -11134,7 +11263,7 @@ packages: quick-format-unescaped: 4.0.4 real-require: 0.2.0 safe-stable-stringify: 2.4.3 - sonic-boom: 3.3.0 + sonic-boom: 3.4.0 thread-stream: 2.4.0 dev: false @@ -11170,6 +11299,14 @@ packages: requiresBuild: true dev: false + /postcss-selector-parser@6.0.13: + resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + /postgres-array@2.0.0: resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} engines: {node: '>=4'} @@ -11285,6 +11422,14 @@ packages: sisteransi: 1.0.5 dev: true + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: true + /proto3-json-serializer@1.1.1: resolution: {integrity: sha512-AwAuY4g9nxx0u52DnSMkqqgyLHaW/XaPLtaAo3y/ZCfeaQB/g4YDH4kb8Wc/mWzWvu0YjOznVnfn373MVZZrgw==} engines: {node: '>=12.0.0'} @@ -11578,6 +11723,10 @@ packages: strip-json-comments: 2.0.1 dev: false + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + dev: true + /react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: true @@ -11595,7 +11744,7 @@ packages: resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} engines: {node: '>=8'} dependencies: - '@types/normalize-package-data': 2.4.1 + '@types/normalize-package-data': 2.4.2 normalize-package-data: 2.5.0 parse-json: 5.2.0 type-fest: 0.6.0 @@ -11605,10 +11754,10 @@ packages: resolution: {integrity: sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==} engines: {node: '>=16'} dependencies: - '@types/normalize-package-data': 2.4.1 + '@types/normalize-package-data': 2.4.2 normalize-package-data: 6.0.0 parse-json: 7.1.0 - type-fest: 4.3.1 + type-fest: 4.3.2 dev: false /readable-stream@1.1.14: @@ -11700,6 +11849,18 @@ packages: /reflect-metadata@0.1.13: resolution: {integrity: sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==} + /reflect.getprototypeof@1.0.4: + resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + globalthis: 1.0.3 + which-builtin-type: 1.1.3 + dev: true + /regenerator-runtime@0.13.11: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} requiresBuild: true @@ -11779,7 +11940,6 @@ packages: /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} - requiresBuild: true dev: true /resolve-from@5.0.0: @@ -11812,6 +11972,15 @@ packages: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + /resolve@2.0.0-next.4: + resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} + hasBin: true + dependencies: + is-core-module: 2.13.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + /restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} @@ -11957,8 +12126,8 @@ packages: yargs: 17.7.2 dev: true - /sax@1.2.4: - resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} + /sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} dev: false /saxes@6.0.0: @@ -12214,8 +12383,8 @@ packages: flatstr: 1.0.12 dev: true - /sonic-boom@3.3.0: - resolution: {integrity: sha512-LYxp34KlZ1a2Jb8ZQgFCK3niIHzibdwtwNUWKg0qQRzsDoJ3Gfgkf8KdBTFU3SkejDEIlWwnSnpVdOZIhFMl/g==} + /sonic-boom@3.4.0: + resolution: {integrity: sha512-zSe9QQW30nPzjkSJ0glFQO5T9lHsk39tz+2bAAwCj8CNgEG8ItZiX7Wb2ZgA8I04dwRGCcf1m3ABJa8AYm12Fw==} dependencies: atomic-sleep: 1.0.0 dev: false @@ -12367,6 +12536,20 @@ packages: strip-ansi: 7.1.0 dev: true + /string.prototype.matchall@4.0.10: + resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + regexp.prototype.flags: 1.5.1 + set-function-name: 2.0.1 + side-channel: 1.0.4 + dev: true + /string.prototype.trim@1.2.8: resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} engines: {node: '>= 0.4'} @@ -12560,7 +12743,7 @@ packages: peerDependencies: prom-client: '>= 10 <= 14' dependencies: - axios: 1.5.0(debug@4.3.4) + axios: 1.5.1(debug@4.3.4) basic-auth: 2.0.1 cookies: 0.8.0 debug: 4.3.4 @@ -12672,7 +12855,7 @@ packages: dev: false optional: true - /terser-webpack-plugin@5.3.9(@swc/core@1.3.89)(webpack@5.88.2): + /terser-webpack-plugin@5.3.9(@swc/core@1.3.90)(webpack@5.88.2): resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -12689,12 +12872,12 @@ packages: optional: true dependencies: '@jridgewell/trace-mapping': 0.3.19 - '@swc/core': 1.3.89 + '@swc/core': 1.3.90 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.1 terser: 5.20.0 - webpack: 5.88.2(@swc/core@1.3.89) + webpack: 5.88.2(@swc/core@1.3.90) dev: true /terser@5.20.0: @@ -12852,7 +13035,7 @@ packages: micromatch: 4.0.5 semver: 7.5.4 typescript: 5.2.2 - webpack: 5.88.2(@swc/core@1.3.89) + webpack: 5.88.2(@swc/core@1.3.90) dev: true /ts-morph@20.0.0: @@ -12862,7 +13045,7 @@ packages: code-block-writer: 12.0.0 dev: false - /ts-node@10.9.1(@swc/core@1.3.89)(@types/node@20.4.7)(typescript@5.2.2): + /ts-node@10.9.1(@swc/core@1.3.90)(@types/node@20.4.7)(typescript@5.2.2): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -12877,7 +13060,7 @@ packages: optional: true dependencies: '@cspotcode/source-map-support': 0.8.1 - '@swc/core': 1.3.89 + '@swc/core': 1.3.90 '@tsconfig/node10': 1.0.9 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 @@ -12895,7 +13078,7 @@ packages: dev: true optional: true - /ts-node@10.9.1(@swc/core@1.3.89)(@types/node@20.7.0)(typescript@5.2.2): + /ts-node@10.9.1(@swc/core@1.3.90)(@types/node@20.7.0)(typescript@5.2.2): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -12910,7 +13093,7 @@ packages: optional: true dependencies: '@cspotcode/source-map-support': 0.8.1 - '@swc/core': 1.3.89 + '@swc/core': 1.3.90 '@tsconfig/node10': 1.0.9 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 @@ -12936,15 +13119,6 @@ packages: tsconfig-paths: 4.2.0 dev: true - /tsconfig-paths@3.14.2: - resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} - dependencies: - '@types/json5': 0.0.29 - json5: 1.0.2 - minimist: 1.2.8 - strip-bom: 3.0.0 - dev: true - /tsconfig-paths@4.2.0: resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} engines: {node: '>=6'} @@ -13053,8 +13227,8 @@ packages: resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} engines: {node: '>=14.16'} - /type-fest@4.3.1: - resolution: {integrity: sha512-pphNW/msgOUSkJbH58x8sqpq8uQj6b0ZKGxEsLKMUnGorRcDjrUaLS+39+/ub41JNTwrrMyJcUB8+YZs3mbwqw==} + /type-fest@4.3.2: + resolution: {integrity: sha512-VpwuOgnTsQUUWi0id8Hl4/xiQ+OoaeJGe8dnFjzubJYe/lOc2/d1Qx/d3FqWR0FlpOG/cvukAXfB12A49Y4iiA==} engines: {node: '>=16'} dev: false @@ -13143,7 +13317,7 @@ packages: resolution: {integrity: sha512-jG3C35jti1YnCuH/k3fJEfHbnIG9c3Q9ITZ0B9eWwnXngh/AUd0mRHv8OdpE2Q9VoK7tB6xL990JrMCr0LtfNA==} engines: {node: '>=12'} dependencies: - '@rushstack/ts-command-line': 4.16.0 + '@rushstack/ts-command-line': 4.16.1 emittery: 0.13.1 glob: 8.1.0 pony-cause: 2.1.10 @@ -13164,6 +13338,12 @@ packages: dev: false optional: true + /unist-util-stringify-position@2.0.3: + resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} + dependencies: + '@types/unist': 2.0.8 + dev: true + /universalify@0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} @@ -13181,13 +13361,13 @@ packages: resolution: {integrity: sha512-0bIL5n6asS9hIXZWKK/4SP0u4awdCdkfLoEIvp2+WTDPCx2nfE2zxj5VWIrxF5kwymqh8DwVTGrgQqKoOLFBqQ==} dev: false - /update-browserslist-db@1.0.12(browserslist@4.21.10): - resolution: {integrity: sha512-tE1smlR58jxbFMtrMpFNRmsrOXlpNXss965T1CrpwuZUzUAg/TBQc94SpyhDLSzrqrJS9xTRBthnZAGcE1oaxg==} + /update-browserslist-db@1.0.13(browserslist@4.22.0): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.21.10 + browserslist: 4.22.0 escalade: 3.1.1 picocolors: 1.0.0 dev: true @@ -13201,7 +13381,7 @@ packages: /url-minify@2.8.4: resolution: {integrity: sha512-z65Z5vTTzJEA8GPCYcC2SJ3+rr+rH08F77xEU0QVLELo/8iJJ5WBVpjtJMzLLhqTGxCCpZWSeHEMYQ4JjwN/Gg==} dependencies: - axios: 1.5.0(debug@4.3.4) + axios: 1.5.1(debug@4.3.4) transitivePeerDependencies: - debug dev: false @@ -13292,6 +13472,24 @@ packages: engines: {node: '>=0.10.0'} dev: false + /vue-eslint-parser@9.3.1(eslint@8.50.0): + resolution: {integrity: sha512-Clr85iD2XFZ3lJ52/ppmUDG/spxQu6+MAeHXjjyI4I1NUYZ9xmenQp4N0oaHJhrA8OOxltCVxMRfANGa70vU0g==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + debug: 4.3.4 + eslint: 8.50.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + lodash: 4.17.21 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + dev: true + /w3c-xmlserializer@4.0.0: resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} engines: {node: '>=14'} @@ -13345,7 +13543,7 @@ packages: engines: {node: '>=10.13.0'} dev: true - /webpack@5.88.2(@swc/core@1.3.89): + /webpack@5.88.2(@swc/core@1.3.90): resolution: {integrity: sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==} engines: {node: '>=10.13.0'} hasBin: true @@ -13355,14 +13553,14 @@ packages: webpack-cli: optional: true dependencies: - '@types/eslint-scope': 3.7.4 - '@types/estree': 1.0.1 + '@types/eslint-scope': 3.7.5 + '@types/estree': 1.0.2 '@webassemblyjs/ast': 1.11.6 '@webassemblyjs/wasm-edit': 1.11.6 '@webassemblyjs/wasm-parser': 1.11.6 acorn: 8.10.0 acorn-import-assertions: 1.9.0(acorn@8.10.0) - browserslist: 4.21.10 + browserslist: 4.22.0 chrome-trace-event: 1.0.3 enhanced-resolve: 5.15.0 es-module-lexer: 1.3.1 @@ -13376,7 +13574,7 @@ packages: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.9(@swc/core@1.3.89)(webpack@5.88.2) + terser-webpack-plugin: 5.3.9(@swc/core@1.3.90)(webpack@5.88.2) watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -13435,6 +13633,33 @@ packages: is-symbol: 1.0.4 dev: true + /which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + engines: {node: '>= 0.4'} + dependencies: + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.0 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.11 + dev: true + + /which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 + dev: true + /which-module@2.0.1: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} dev: false @@ -13487,8 +13712,8 @@ packages: resolution: {integrity: sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==} engines: {node: '>= 10.0.0'} dependencies: - '@babel/parser': 7.22.16 - '@babel/types': 7.22.19 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 assert-never: 1.2.1 babel-walk: 3.0.0-canary-5 dev: false @@ -13595,13 +13820,12 @@ packages: /xml-name-validator@4.0.0: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} engines: {node: '>=12'} - dev: false /xml2js@0.5.0: resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} engines: {node: '>=4.0.0'} dependencies: - sax: 1.2.4 + sax: 1.3.0 xmlbuilder: 11.0.1 dev: false @@ -13652,6 +13876,15 @@ packages: /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + /yaml-eslint-parser@1.2.2: + resolution: {integrity: sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==} + engines: {node: ^14.17.0 || >=16.0.0} + dependencies: + eslint-visitor-keys: 3.4.3 + lodash: 4.17.21 + yaml: 2.3.2 + dev: true + /yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} @@ -13662,6 +13895,11 @@ packages: engines: {node: '>= 14'} dev: true + /yaml@2.3.2: + resolution: {integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==} + engines: {node: '>= 14'} + dev: true + /yargs-parser@18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} engines: {node: '>=6'} diff --git a/src/_mocks_/index.ts b/src/_mocks_/index.ts index cded197d..156ec77d 100644 --- a/src/_mocks_/index.ts +++ b/src/_mocks_/index.ts @@ -1,4 +1,5 @@ -/* eslint-disable @typescript-eslint/no-unsafe-return */ +/* eslint-disable ts/no-unsafe-return */ +import path from "node:path"; import type { Request, Response } from "express"; import type { AmqpConnection } from "@golevelup/nestjs-rabbitmq"; import { createMock } from "@golevelup/ts-jest"; @@ -70,11 +71,12 @@ export const mockFile = { fieldname: "file", originalname: "test.png", mimetype: "text/png", - buffer: Buffer.from(`${__dirname}/../../test/test.png`, "utf8"), + buffer: Buffer.from(path.join(__dirname, "/../../test/test.png"), "utf8"), size: 13_148, } as File; export const mockedOtpLog = { + id: 1, expiresIn: new Date(), otpCode: "12344", isUsed: false, diff --git a/src/common/@types/classes/offset.response.ts b/src/common/@types/classes/offset.response.ts index e4611273..c3fae13d 100644 --- a/src/common/@types/classes/offset.response.ts +++ b/src/common/@types/classes/offset.response.ts @@ -1,8 +1,7 @@ import { ApiProperty } from "@nestjs/swagger"; import { IsArray } from "class-validator"; -import type { PaginationAbstractResponse } from "../interfaces"; - import type { OffsetPaginationDto } from "@common/dtos/offset-pagination.dto"; +import type { PaginationAbstractResponse } from "../interfaces"; export class OffsetMeta { /** diff --git a/src/common/@types/enums/misc.enum.ts b/src/common/@types/enums/misc.enum.ts index b2dcf769..04f03345 100644 --- a/src/common/@types/enums/misc.enum.ts +++ b/src/common/@types/enums/misc.enum.ts @@ -1,7 +1,5 @@ import type { TEmailSubject } from "../interfaces"; -const BITS_TO_MB = 1024 * 1024; - export enum EmailTemplate { RESET_PASSWORD_TEMPLATE = "reset", WELCOME_TEMPLATE = "welcome", @@ -16,10 +14,10 @@ export const EmailSubject: Record = { NEWSLETTER: "Newsletter", }; -export enum FileSize { - IMAGE = 5 * BITS_TO_MB, // 5MB - DOC = 10 * BITS_TO_MB, // 10MB -} +export const FileSize = { + IMAGE: 5 * 1024 * 1024, // 5MB + DOC: 10 * 1024 * 1024, // 10MB +}; export enum PostStateEnum { DRAFT = "DRAFT", diff --git a/src/common/@types/global.d.ts b/src/common/@types/global.d.ts index a7347b6b..c8580475 100644 --- a/src/common/@types/global.d.ts +++ b/src/common/@types/global.d.ts @@ -1,95 +1,95 @@ -import {User as UserEntity} from "@entities"; -import {I18nTranslations as I18nTranslationTypes} from "@generated"; -import {Config as ConfigInterface} from "@lib/config/config.interface"; +import type { User as UserEntity } from "@entities"; +import type { I18nTranslations as I18nTranslationTypes } from "@generated"; +import type { Config as ConfigInterface } from "@lib/config/config.interface"; export {}; declare global { - namespace Express { - export interface Request { - user?: UserEntity; - realIp: string; - body: Record; - ip: string; - ips: string[]; - } + namespace Express { + export interface Request { + user?: UserEntity + realIp: string + body: Record + ip: string + ips: string[] } + } - namespace NodeJS { - interface ProcessEnv { - APP_PORT: number; - APP_PREFIX: string; - APP_NAME: string; - NODE_ENV: - | "dev" - | "development" - | "stage" - | "staging" - | "test" - | "testing" - | "prod" - | "production"; - API_URL: string; - CLIENT_URL: string; - SWAGGER_USER: string; - ALLOWED_ORIGINS?: string; - SWAGGER_PASSWORD: string; + namespace NodeJS { + interface ProcessEnv { + APP_PORT: number + APP_PREFIX: string + APP_NAME: string + NODE_ENV: + | "dev" + | "development" + | "stage" + | "staging" + | "test" + | "testing" + | "prod" + | "production" + API_URL: string + CLIENT_URL: string + SWAGGER_USER: string + ALLOWED_ORIGINS?: string + SWAGGER_PASSWORD: string - DB_HOST: string; - DB_PORT: number; - DB_USERNAME: string; - DB_PASSWORD: string; - DB_DATABASE: string; + DB_HOST: string + DB_PORT: number + DB_USERNAME: string + DB_PASSWORD: string + DB_DATABASE: string - ENC_IV: string; - ENC_KEY: string; + ENC_IV: string + ENC_KEY: string - JWT_ACCESS_EXPIRY: string; - JWT_REFRESH_EXPIRY: string; - JWT_SECRET: string; + JWT_ACCESS_EXPIRY: string + JWT_REFRESH_EXPIRY: string + JWT_SECRET: string - MAIL_HOST: string; - MAIL_PASSWORD: string; - MAIL_USERNAME: string; - MAIL_PORT: number; - MAIL_SERVER: string; - MAIL_PREVIEW_EMAIL: boolean; - MAIL_BCC_LIST?: string; - MAIL_SENDER_EMAIL: string; - MAIL_TEMPLATE_DIR: string; + MAIL_HOST: string + MAIL_PASSWORD: string + MAIL_USERNAME: string + MAIL_PORT: number + MAIL_SERVER: string + MAIL_PREVIEW_EMAIL: boolean + MAIL_BCC_LIST?: string + MAIL_SENDER_EMAIL: string + MAIL_TEMPLATE_DIR: string - CLOUDINARY_CLOUD_NAME: string; - CLOUDINARY_API_KEY: string; - CLOUDINARY_API_SECRET: string; + CLOUDINARY_CLOUD_NAME: string + CLOUDINARY_API_KEY: string + CLOUDINARY_API_SECRET: string - REDIS_TTL: number; - REDIS_URI: string; - REDIS_HOST: string; - REDIS_PASSWORD: string; - REDIS_USERNAME: string; - REDIS_PORT: number; + REDIS_TTL: number + REDIS_URI: string + REDIS_HOST: string + REDIS_PASSWORD: string + REDIS_USERNAME: string + REDIS_PORT: number - RABBITMQ_URI: string; - RABBITMQ_EXCHANGE: string; - RABBITMQ_QUEUE: string; - RABBITMQ_DEFAULT_PREFETCH: number; + RABBITMQ_URI: string + RABBITMQ_EXCHANGE: string + RABBITMQ_QUEUE: string + RABBITMQ_DEFAULT_PREFETCH: number - SENTRY_DSN: string; - SENTRY_ENVIRONMENT: string; + SENTRY_DSN: string + SENTRY_ENVIRONMENT: string - GOOGLE_CLIENT_ID: string; - GOOGLE_CLIENT_SECRET: string; - GOOGLE_CALLBACK_URL: string; + GOOGLE_CLIENT_ID: string + GOOGLE_CLIENT_SECRET: string + GOOGLE_CALLBACK_URL: string - FACEBOOK_CLIENT_ID: string; - FACEBOOK_CLIENT_SECRET: string; - FACEBOOK_CALLBACK_URL: string; + FACEBOOK_CLIENT_ID: string + FACEBOOK_CLIENT_SECRET: string + FACEBOOK_CALLBACK_URL: string - THROTTLE_LIMIT: string; - THROTTLE_TTL: number; - } + THROTTLE_LIMIT: string + THROTTLE_TTL: number } + } - export type I18nTranslations = I18nTranslationTypes; - export type Configs = ConfigInterface; + export type I18nTranslations = I18nTranslationTypes; + export type Configs = ConfigInterface; } diff --git a/src/common/@types/interfaces/crud.interface.ts b/src/common/@types/interfaces/crud.interface.ts index 3b2d22f1..6c182d55 100644 --- a/src/common/@types/interfaces/crud.interface.ts +++ b/src/common/@types/interfaces/crud.interface.ts @@ -1,13 +1,13 @@ import type { EntityData, RequiredEntityData } from "@mikro-orm/core"; import type { Observable } from "rxjs"; + +import type { User } from "@entities"; +import type { BaseEntity } from "@common/database"; import type { PaginationResponse, PaginationRequest as TPaginationRequest, } from "./pagination.interface"; -import type { User } from "@entities"; -import type { BaseEntity } from "@common/database"; - /** * common interface that enforces common methods for controller and service */ diff --git a/src/common/@types/interfaces/pagination.interface.ts b/src/common/@types/interfaces/pagination.interface.ts index 2c685c63..5f0bf4eb 100644 --- a/src/common/@types/interfaces/pagination.interface.ts +++ b/src/common/@types/interfaces/pagination.interface.ts @@ -1,10 +1,9 @@ import type { Dictionary } from "@mikro-orm/core"; import type { QueryBuilder } from "@mikro-orm/postgresql"; +import type { CursorPaginationDto, OffsetPaginationDto } from "@common/dtos"; import type { CursorPaginationResponse, OffsetPaginationResponse } from "../classes"; import { CursorType, QueryCursor, QueryOrder } from "../enums"; -import type { CursorPaginationDto, OffsetPaginationDto } from "@common/dtos"; - export interface QBCursorPaginationOptions { qb: QueryBuilder pageOptionsDto: Omit & { diff --git a/src/common/database/base.repository.spec.ts b/src/common/database/base.repository.spec.ts index 1f4531fe..bdd53197 100644 --- a/src/common/database/base.repository.spec.ts +++ b/src/common/database/base.repository.spec.ts @@ -1,31 +1,31 @@ -import {createMock} from '@golevelup/ts-jest'; -import type {EntityManager} from '@mikro-orm/postgresql'; -import {BaseRepository} from './base.repository'; -import {loggedInUser} from '@mocks'; +import { createMock } from "@golevelup/ts-jest"; +import type { EntityManager } from "@mikro-orm/postgresql"; +import { loggedInUser } from "@mocks"; -import {User} from '@entities'; +import { User } from "@entities"; +import { BaseRepository } from "./base.repository"; -describe('BaseRepository', () => { - const mockEm = createMock({ - findAndCount: jest.fn().mockResolvedValue([[], 0]), - }); +describe("BaseRepository", () => { + const mockEm = createMock({ + findAndCount: jest.fn().mockResolvedValue([[], 0]), + }); - const userRepo = new BaseRepository(mockEm, User); + const userRepo = new BaseRepository(mockEm, User); - it('should be defined', () => { - expect(userRepo).toBeDefined(); - }); + it("should be defined", () => { + expect(userRepo).toBeDefined(); + }); - it('should softremove and flush', async () => { - userRepo.softRemoveAndFlush(loggedInUser).subscribe((result) => { - expect(result.isDeleted).toEqual(true); - expect(result.deletedAt).toBeInstanceOf(Date); - }); + it("should softremove and flush", async () => { + userRepo.softRemoveAndFlush(loggedInUser).subscribe((result) => { + expect(result.isDeleted).toEqual(true); + expect(result.deletedAt).toBeInstanceOf(Date); }); + }); - it('should softremove', () => { - userRepo.softRemove(loggedInUser); + it("should softremove", () => { + userRepo.softRemove(loggedInUser); - expect(loggedInUser.isDeleted).toEqual(true); - }); + expect(loggedInUser.isDeleted).toEqual(true); + }); }); diff --git a/src/common/database/base.repository.ts b/src/common/database/base.repository.ts index 79691ca8..dcca5752 100644 --- a/src/common/database/base.repository.ts +++ b/src/common/database/base.repository.ts @@ -12,7 +12,6 @@ import { BadRequestException, NotFoundException } from "@nestjs/common"; import type { Observable } from "rxjs"; import { from, map, of, switchMap, throwError } from "rxjs"; import { formatSearch } from "helper-fns"; -import type { BaseEntity } from "./base.entity"; import type { CursorPaginationResponse, @@ -31,6 +30,7 @@ import { getQueryOrder, } from "@common/@types"; import { translate } from "@lib/i18n"; +import type { BaseEntity } from "./base.entity"; export class BaseRepository extends EntityRepository { private readonly encoding: BufferEncoding = "base64"; @@ -484,11 +484,11 @@ export class BaseRepository extends EntityRepository { const oppositeOrder = getOppositeOrder(order); const countWhere = where; - // eslint-disable-next-line @typescript-eslint/dot-notation + // eslint-disable-next-line ts/dot-notation countWhere["$and"] = this.getFilters("createdAt", decoded, oppositeOrder); previousCount = await repo.count(countWhere); - // eslint-disable-next-line @typescript-eslint/dot-notation + // eslint-disable-next-line ts/dot-notation where["$and"] = this.getFilters("createdAt", decoded, queryOrder); } diff --git a/src/common/database/seeders/admin.seeder.ts b/src/common/database/seeders/admin.seeder.ts index 92fe7caa..9b283a50 100644 --- a/src/common/database/seeders/admin.seeder.ts +++ b/src/common/database/seeders/admin.seeder.ts @@ -1,8 +1,7 @@ import type { EntityManager } from "@mikro-orm/core"; import { Seeder } from "@mikro-orm/seeder"; -import { UserFactory } from "../factories"; - import { Roles } from "@common/@types"; +import { UserFactory } from "../factories"; /* * It creates a user with the email and password specified in the .env file, and gives them the admin role diff --git a/src/common/decorators/custom-cache.decorator.ts b/src/common/decorators/custom-cache.decorator.ts index 83d49ae7..a15fe80f 100644 --- a/src/common/decorators/custom-cache.decorator.ts +++ b/src/common/decorators/custom-cache.decorator.ts @@ -1,7 +1,6 @@ import { UseInterceptors, applyDecorators } from "@nestjs/common"; -import { NoCache } from "./nocache.decorator"; - import { CacheKeyInterceptor } from "@common/interceptors"; +import { NoCache } from "./nocache.decorator"; /** * Use this to override the default cache interceptor. diff --git a/src/common/decorators/validation/is-after.validator.spec.ts b/src/common/decorators/validation/is-after.validator.spec.ts index bd7d4dae..2c9dad77 100644 --- a/src/common/decorators/validation/is-after.validator.spec.ts +++ b/src/common/decorators/validation/is-after.validator.spec.ts @@ -1,52 +1,52 @@ -import {Validator} from 'class-validator'; -import {IsAfterField} from './is-after.validator'; +import { Validator } from "class-validator"; +import { IsAfterField } from "./is-after.validator"; const validator = new Validator(); -describe('IsAfter', () => { - class MyClass { - startDate!: Date; +describe("IsAfter", () => { + class MyClass { + startDate!: Date; - @IsAfterField('startDate') + @IsAfterField("startDate") endDate!: Date; - } + } - it('if endDate is after than startDate then it should succeed', () => { - const model = new MyClass(); + it("if endDate is after than startDate then it should succeed", () => { + const model = new MyClass(); - model.startDate = new Date('2022-02-21'); - model.endDate = new Date('2022-05-01'); + model.startDate = new Date("2022-02-21"); + model.endDate = new Date("2022-05-01"); - return validator.validate(model).then((errors) => { - expect(errors.length).toEqual(0); - }); + return validator.validate(model).then((errors) => { + expect(errors.length).toEqual(0); }); + }); - it('if endDate is not after than startDate then it should fail', () => { - const model = new MyClass(); + it("if endDate is not after than startDate then it should fail", () => { + const model = new MyClass(); - model.startDate = new Date('2022-02-21'); - model.endDate = new Date('2022-01-01'); + model.startDate = new Date("2022-02-21"); + model.endDate = new Date("2022-01-01"); - return validator.validate(model).then((errors) => { - expect(errors.length).toEqual(1); - expect(errors[0].constraints).toEqual({ - IsAfterConstraint: 'endDate should be after startDate', - }); - }); + return validator.validate(model).then((errors) => { + expect(errors.length).toEqual(1); + expect(errors[0].constraints).toEqual({ + IsAfterConstraint: "endDate should be after startDate", + }); }); + }); - it('if endDate is equal to startDate then it should fail', () => { - const model = new MyClass(); + it("if endDate is equal to startDate then it should fail", () => { + const model = new MyClass(); - model.startDate = new Date('2022-02-21'); - model.endDate = model.startDate; + model.startDate = new Date("2022-02-21"); + model.endDate = model.startDate; - return validator.validate(model).then((errors) => { - expect(errors.length).toEqual(1); - expect(errors[0].constraints).toEqual({ - IsAfterConstraint: 'endDate should be after startDate', - }); - }); + return validator.validate(model).then((errors) => { + expect(errors.length).toEqual(1); + expect(errors[0].constraints).toEqual({ + IsAfterConstraint: "endDate should be after startDate", + }); }); + }); }); diff --git a/src/common/decorators/validation/is-after.validator.ts b/src/common/decorators/validation/is-after.validator.ts index 7cf4640d..9eb15726 100644 --- a/src/common/decorators/validation/is-after.validator.ts +++ b/src/common/decorators/validation/is-after.validator.ts @@ -40,5 +40,3 @@ export const IsAfterField = ( }); }; }; - - diff --git a/src/common/decorators/validation/is-date-format.validator.spec.ts b/src/common/decorators/validation/is-date-format.validator.spec.ts index 81f83df5..c692f5c6 100644 --- a/src/common/decorators/validation/is-date-format.validator.spec.ts +++ b/src/common/decorators/validation/is-date-format.validator.spec.ts @@ -1,31 +1,31 @@ -import {Validator} from 'class-validator'; -import {IsDateInFormat} from './is-date-format.validator'; +import { Validator } from "class-validator"; +import { IsDateInFormat } from "./is-date-format.validator"; const validator = new Validator(); -describe('IsDateInFormat', () => { - class MyClass { - @IsDateInFormat('yyyy-MM-dd') +describe("IsDateInFormat", () => { + class MyClass { + @IsDateInFormat("yyyy-MM-dd") date: string; - } + } - it('if date satisfies the format then it should succeed', () => { - const model = new MyClass(); + it("if date satisfies the format then it should succeed", () => { + const model = new MyClass(); - model.date = '2014-04-03'; + model.date = "2014-04-03"; - return validator.validate(model).then((errors) => { - expect(errors.length).toEqual(0); - }); + return validator.validate(model).then((errors) => { + expect(errors.length).toEqual(0); }); + }); - it('if date does not satisfies the format then it should fail', () => { - const model = new MyClass(); + it("if date does not satisfies the format then it should fail", () => { + const model = new MyClass(); - model.date = '2014/04/03'; + model.date = "2014/04/03"; - return validator.validate(model).then((errors) => { - expect(errors.length).toEqual(1); - }); + return validator.validate(model).then((errors) => { + expect(errors.length).toEqual(1); }); + }); }); diff --git a/src/common/decorators/validation/is-date-format.validator.ts b/src/common/decorators/validation/is-date-format.validator.ts index 479a8b0a..d6a86bea 100644 --- a/src/common/decorators/validation/is-date-format.validator.ts +++ b/src/common/decorators/validation/is-date-format.validator.ts @@ -12,7 +12,6 @@ import { isArray } from "helper-fns"; /* It validates that a date is in a given format */ - export type DateFormats = | "yyyy-MM-dd" // ISO 8601 Format | "dd/MM/yyyy" diff --git a/src/common/decorators/validation/is-equal-to.validator.spec.ts b/src/common/decorators/validation/is-equal-to.validator.spec.ts index 078d9340..46331682 100644 --- a/src/common/decorators/validation/is-equal-to.validator.spec.ts +++ b/src/common/decorators/validation/is-equal-to.validator.spec.ts @@ -1,38 +1,38 @@ -import {Validator} from 'class-validator'; -import {IsEqualToField} from './is-equal-to.validator'; +import { Validator } from "class-validator"; +import { IsEqualToField } from "./is-equal-to.validator"; const validator = new Validator(); -describe('IsEqualToField', () => { - class MyClass { - password!: string; +describe("IsEqualToField", () => { + class MyClass { + password!: string; - @IsEqualToField('password') + @IsEqualToField("password") confirmPassword!: string; - } + } - it('if password and confirm password are same then it should succeed', () => { - const model = new MyClass(); + it("if password and confirm password are same then it should succeed", () => { + const model = new MyClass(); - model.password = 'Test@1234'; - model.confirmPassword = 'Test@1234'; + model.password = "Test@1234"; + model.confirmPassword = "Test@1234"; - return validator.validate(model).then((errors) => { - expect(errors.length).toEqual(0); - }); + return validator.validate(model).then((errors) => { + expect(errors.length).toEqual(0); }); + }); - it('if password and confirm password are not same then it should fail', () => { - const model = new MyClass(); + it("if password and confirm password are not same then it should fail", () => { + const model = new MyClass(); - model.password = 'UniquePassword@123'; - model.confirmPassword = 'DifferentPassword@1234'; + model.password = "UniquePassword@123"; + model.confirmPassword = "DifferentPassword@1234"; - return validator.validate(model).then((errors) => { - expect(errors.length).toEqual(1); - expect(errors[0].constraints).toEqual({ - IsEqualToConstraint: 'confirmPassword should be equal to password', - }); - }); + return validator.validate(model).then((errors) => { + expect(errors.length).toEqual(1); + expect(errors[0].constraints).toEqual({ + IsEqualToConstraint: "confirmPassword should be equal to password", + }); }); + }); }); diff --git a/src/common/decorators/validation/is-equal-to.validator.ts b/src/common/decorators/validation/is-equal-to.validator.ts index bd018e5b..570b594b 100644 --- a/src/common/decorators/validation/is-equal-to.validator.ts +++ b/src/common/decorators/validation/is-equal-to.validator.ts @@ -39,5 +39,3 @@ export const IsEqualToField = ( }); }; }; - - diff --git a/src/common/decorators/validation/is-greater-than.validator.spec.ts b/src/common/decorators/validation/is-greater-than.validator.spec.ts index 610605ba..fd5e3843 100644 --- a/src/common/decorators/validation/is-greater-than.validator.spec.ts +++ b/src/common/decorators/validation/is-greater-than.validator.spec.ts @@ -1,52 +1,52 @@ -import {Validator} from 'class-validator'; -import {IsGreaterThan} from './is-greater-than.validator'; +import { Validator } from "class-validator"; +import { IsGreaterThan } from "./is-greater-than.validator"; const validator = new Validator(); -describe('IsGreaterThan', () => { - class MyClass { - passMarks!: number; +describe("IsGreaterThan", () => { + class MyClass { + passMarks!: number; - @IsGreaterThan('passMarks') + @IsGreaterThan("passMarks") totalMarks!: number; - } + } - it('if totalMarks is greater than passMarks then it should succeed', () => { - const model = new MyClass(); + it("if totalMarks is greater than passMarks then it should succeed", () => { + const model = new MyClass(); - model.passMarks = 40; - model.totalMarks = 100; + model.passMarks = 40; + model.totalMarks = 100; - return validator.validate(model).then((errors) => { - expect(errors.length).toEqual(0); - }); + return validator.validate(model).then((errors) => { + expect(errors.length).toEqual(0); }); + }); - it('if totalMarks is less than passMarks then it should fail', () => { - const model = new MyClass(); + it("if totalMarks is less than passMarks then it should fail", () => { + const model = new MyClass(); - model.passMarks = 100; - model.totalMarks = 40; + model.passMarks = 100; + model.totalMarks = 40; - return validator.validate(model).then((errors) => { - expect(errors.length).toEqual(1); - expect(errors[0].constraints).toEqual({ - IsGreaterThanConstraint: 'totalMarks should be greater than passMarks', - }); - }); + return validator.validate(model).then((errors) => { + expect(errors.length).toEqual(1); + expect(errors[0].constraints).toEqual({ + IsGreaterThanConstraint: "totalMarks should be greater than passMarks", + }); }); + }); - it('if totalMarks is equal to passMarks then it should fail', () => { - const model = new MyClass(); + it("if totalMarks is equal to passMarks then it should fail", () => { + const model = new MyClass(); - model.passMarks = 100; - model.totalMarks = 100; + model.passMarks = 100; + model.totalMarks = 100; - return validator.validate(model).then((errors) => { - expect(errors.length).toEqual(1); - expect(errors[0].constraints).toEqual({ - IsGreaterThanConstraint: 'totalMarks should be greater than passMarks', - }); - }); + return validator.validate(model).then((errors) => { + expect(errors.length).toEqual(1); + expect(errors[0].constraints).toEqual({ + IsGreaterThanConstraint: "totalMarks should be greater than passMarks", + }); }); + }); }); diff --git a/src/common/decorators/validation/is-password.validator.spec.ts b/src/common/decorators/validation/is-password.validator.spec.ts index 10422d7c..90ecc76d 100644 --- a/src/common/decorators/validation/is-password.validator.spec.ts +++ b/src/common/decorators/validation/is-password.validator.spec.ts @@ -1,37 +1,37 @@ -import { Validator } from 'class-validator'; -import { IsPasswordField } from './is-password.validator'; +import { Validator } from "class-validator"; +import { IsPasswordField } from "./is-password.validator"; const validator = new Validator(); -describe('IsPassword', () => { - class MyClass { - @IsPasswordField() +describe("IsPassword", () => { + class MyClass { + @IsPasswordField() password: string; - } + } - it('if password satisfies then it should succeed (one uppercase,one lowercase, one number and one symbol and more than 8 characters)', () => { - const model = new MyClass(); + it("if password satisfies then it should succeed (one uppercase,one lowercase, one number and one symbol and more than 8 characters)", () => { + const model = new MyClass(); - model.password = 'Test-1234'; + model.password = "Test-1234"; - return validator.validate(model).then((errors) => { - expect(errors.length).toEqual(0); - }); + return validator.validate(model).then((errors) => { + expect(errors.length).toEqual(0); }); + }); - it('if password is not valid then it should fail', () => { - const model = new MyClass(); + it("if password is not valid then it should fail", () => { + const model = new MyClass(); - model.password = 'notStrongPassword'; + model.password = "notStrongPassword"; - return validator.validate(model).then((errors) => { - expect(errors.length).toEqual(1); - expect(errors[0].property).toEqual('password'); - expect(errors[0].constraints).toEqual({ - IsPasswordConstraint: - 'password should contain at least one lowercase letter, one uppercase letter, one numeric digit, and one special character', - }); - expect(errors[0].value).toEqual('notStrongPassword'); - }); + return validator.validate(model).then((errors) => { + expect(errors.length).toEqual(1); + expect(errors[0].property).toEqual("password"); + expect(errors[0].constraints).toEqual({ + IsPasswordConstraint: + "password should contain at least one lowercase letter, one uppercase letter, one numeric digit, and one special character", + }); + expect(errors[0].value).toEqual("notStrongPassword"); }); + }); }); diff --git a/src/common/decorators/validation/is-password.validator.ts b/src/common/decorators/validation/is-password.validator.ts index d1958c2a..5d705650 100644 --- a/src/common/decorators/validation/is-password.validator.ts +++ b/src/common/decorators/validation/is-password.validator.ts @@ -9,9 +9,9 @@ import { registerDecorator, } from "class-validator"; import { applyDecorators } from "@nestjs/common"; -import { MinMaxLength } from "./min-max-length.decorator"; import { PASSWORD_REGEX } from "@common/constant"; import { validationI18nMessage } from "@lib/i18n"; +import { MinMaxLength } from "./min-max-length.decorator"; /** * @@ -48,7 +48,6 @@ export const IsPassword = (validationOptions?: ValidationOptions): PropertyDecor }; }; - export const IsPasswordField = (validationOptions?: ValidationOptions & { minLength?: number; maxLength?: number }) => { return applyDecorators( IsNotEmpty({ diff --git a/src/common/decorators/validation/is-profane.validator.spec.ts b/src/common/decorators/validation/is-profane.validator.spec.ts index e7a6b09e..081d4efe 100644 --- a/src/common/decorators/validation/is-profane.validator.spec.ts +++ b/src/common/decorators/validation/is-profane.validator.spec.ts @@ -1,34 +1,34 @@ -import {Validator} from 'class-validator'; -import {IsProfane} from './is-profane.validator'; +import { Validator } from "class-validator"; +import { IsProfane } from "./is-profane.validator"; const validator = new Validator(); -describe('IsProfane', () => { - class MyClass { - @IsProfane() +describe("IsProfane", () => { + class MyClass { + @IsProfane() text!: string; - } + } - it('it should pass if text doesn\'t profane words', () => { - const model = new MyClass(); + it("it should pass if text doesn't profane words", () => { + const model = new MyClass(); - model.text = 'clean text'; + model.text = "clean text"; - return validator.validate(model).then((errors) => { - expect(errors.length).toEqual(0); - }); + return validator.validate(model).then((errors) => { + expect(errors.length).toEqual(0); }); + }); - it('it should fail if text has profane words', () => { - const model = new MyClass(); + it("it should fail if text has profane words", () => { + const model = new MyClass(); - model.text = 'Don\'t be an ash0le'; + model.text = "Don't be an ash0le"; - return validator.validate(model).then((errors) => { - expect(errors.length).toEqual(1); - expect(errors[0].constraints).toEqual({ - IsProfaneConstraint: 'text has profane words', - }); - }); + return validator.validate(model).then((errors) => { + expect(errors.length).toEqual(1); + expect(errors[0].constraints).toEqual({ + IsProfaneConstraint: "text has profane words", + }); }); + }); }); diff --git a/src/common/decorators/validation/is-string-field.decorator.ts b/src/common/decorators/validation/is-string-field.decorator.ts index 1fac5e9d..6df35208 100644 --- a/src/common/decorators/validation/is-string-field.decorator.ts +++ b/src/common/decorators/validation/is-string-field.decorator.ts @@ -9,11 +9,10 @@ import { IsString, Matches, } from "class-validator"; -import { MinMaxLength } from "./min-max-length.decorator"; -import { Sanitize, Trim } from "./transform.decorator"; - import { validationI18nMessage } from "@lib/i18n"; import type { StringFieldOptions } from "@common/@types"; +import { MinMaxLength } from "./min-max-length.decorator"; +import { Sanitize, Trim } from "./transform.decorator"; /** * It's a decorator that validates a string field diff --git a/src/common/decorators/validation/is-unique.validator.spec.ts b/src/common/decorators/validation/is-unique.validator.spec.ts index f754bb07..c8ef74f9 100644 --- a/src/common/decorators/validation/is-unique.validator.spec.ts +++ b/src/common/decorators/validation/is-unique.validator.spec.ts @@ -1,45 +1,44 @@ -import {createMock} from '@golevelup/ts-jest'; -import {EntityManager} from '@mikro-orm/core'; -import {Test} from '@nestjs/testing'; -import {IsUniqueConstraint} from './is-unique.validator'; -import type {IsUniqueValidationContext} from './is-unique.validator'; - -import {User} from '@entities'; - -describe('IsUnique', () => { - let isUnique: IsUniqueConstraint; - const mockEm = createMock(); - const username = 'tester'; - - const validatorArguments: IsUniqueValidationContext = { - object: {username}, - constraints: [() => User, 'username' as never], - value: username, - targetName: '', - property: 'username', - }; - - beforeEach(async () => { - const module = await Test.createTestingModule({ - providers: [IsUniqueConstraint, {provide: EntityManager, useValue: mockEm}], - }).compile(); - - isUnique = module.get(IsUniqueConstraint); - }); - - it('should pass if there are no duplicates', async () => { - mockEm.count.mockResolvedValue(0); - const result = await isUnique.validate(username, validatorArguments); - - expect(result).toBeTruthy(); - expect(mockEm.count).toBeCalledWith(User, {username}); - }); - - it('should fail if there are duplicates', async () => { - mockEm.count.mockResolvedValue(1); - const result = await isUnique.validate(username, validatorArguments); - - expect(result).toBeFalsy(); - expect(mockEm.count).toBeCalledWith(User, {username}); - }); +import { createMock } from "@golevelup/ts-jest"; +import { EntityManager } from "@mikro-orm/core"; +import { Test } from "@nestjs/testing"; +import { User } from "@entities"; +import { IsUniqueConstraint } from "./is-unique.validator"; +import type { IsUniqueValidationContext } from "./is-unique.validator"; + +describe("IsUnique", () => { + let isUnique: IsUniqueConstraint; + const mockEm = createMock(); + const username = "tester"; + + const validatorArguments: IsUniqueValidationContext = { + object: { username }, + constraints: [() => User, "username" as never], + value: username, + targetName: "", + property: "username", + }; + + beforeEach(async () => { + const module = await Test.createTestingModule({ + providers: [IsUniqueConstraint, { provide: EntityManager, useValue: mockEm }], + }).compile(); + + isUnique = module.get(IsUniqueConstraint); + }); + + it("should pass if there are no duplicates", async () => { + mockEm.count.mockResolvedValue(0); + const result = await isUnique.validate(username, validatorArguments); + + expect(result).toBeTruthy(); + expect(mockEm.count).toBeCalledWith(User, { username }); + }); + + it("should fail if there are duplicates", async () => { + mockEm.count.mockResolvedValue(1); + const result = await isUnique.validate(username, validatorArguments); + + expect(result).toBeFalsy(); + expect(mockEm.count).toBeCalledWith(User, { username }); + }); }); diff --git a/src/common/decorators/validation/is-username.validator.spec.ts b/src/common/decorators/validation/is-username.validator.spec.ts index 98a8e5dc..cb4967a5 100644 --- a/src/common/decorators/validation/is-username.validator.spec.ts +++ b/src/common/decorators/validation/is-username.validator.spec.ts @@ -1,36 +1,36 @@ -import {Validator} from 'class-validator'; -import {IsUsernameField} from './is-username.validator'; +import { Validator } from "class-validator"; +import { IsUsernameField } from "./is-username.validator"; const validator = new Validator(); -describe('IsUserName', () => { - class MyClass { - @IsUsernameField() +describe("IsUserName", () => { + class MyClass { + @IsUsernameField() username: string; - } + } - it('if username satisfies then it should succeed', () => { - const model = new MyClass(); + it("if username satisfies then it should succeed", () => { + const model = new MyClass(); - model.username = 'username123'; + model.username = "username123"; - return validator.validate(model).then((errors) => { - expect(errors.length).toEqual(0); - }); + return validator.validate(model).then((errors) => { + expect(errors.length).toEqual(0); }); + }); - it('if username is not valid then it should fail', () => { - const model = new MyClass(); + it("if username is not valid then it should fail", () => { + const model = new MyClass(); - model.username = '@123Yest'; + model.username = "@123Yest"; - return validator.validate(model).then((errors) => { - expect(errors.length).toEqual(1); - expect(errors[0].property).toEqual('username'); - expect(errors[0].constraints).toEqual({ - IsUsernameConstraint: 'username must fulfill username\'s criteria', - }); - expect(errors[0].value).toEqual('@123Yest'); - }); + return validator.validate(model).then((errors) => { + expect(errors.length).toEqual(1); + expect(errors[0].property).toEqual("username"); + expect(errors[0].constraints).toEqual({ + IsUsernameConstraint: "username must fulfill username's criteria", + }); + expect(errors[0].value).toEqual("@123Yest"); }); + }); }); diff --git a/src/common/decorators/validation/is-username.validator.ts b/src/common/decorators/validation/is-username.validator.ts index 40bc45f1..46321f74 100644 --- a/src/common/decorators/validation/is-username.validator.ts +++ b/src/common/decorators/validation/is-username.validator.ts @@ -20,10 +20,10 @@ import { ValidatorConstraint, registerDecorator, } from "class-validator"; -import { MinMaxLength } from "./min-max-length.decorator"; import { validationI18nMessage } from "@lib/i18n"; import { USERNAME_REGEX } from "@common/constant"; +import { MinMaxLength } from "./min-max-length.decorator"; @ValidatorConstraint({ async: true }) class IsUsernameConstraint implements ValidatorConstraintInterface { @@ -50,7 +50,7 @@ export const IsUsername = (validationOptions?: ValidationOptions): PropertyDecor }; }; -export const IsUsernameField = (validationOptions?: ValidationOptions & { minLength?: number; maxLength?: number } ) => { +export const IsUsernameField = (validationOptions?: ValidationOptions & { minLength?: number; maxLength?: number }) => { return applyDecorators( IsNotEmpty({ message: validationI18nMessage("validation.isNotEmpty"), diff --git a/src/common/decorators/validation/validation-field.generator.ts b/src/common/decorators/validation/validation-field.generator.ts index 9a0e7589..87cf6643 100644 --- a/src/common/decorators/validation/validation-field.generator.ts +++ b/src/common/decorators/validation/validation-field.generator.ts @@ -11,11 +11,11 @@ import { } from "class-validator"; import { enumToString } from "helper-fns"; import { i18nValidationMessage } from "nestjs-i18n"; -import { Sanitize, Trim } from "./transform.decorator"; import { validationI18nMessage } from "@lib/i18n"; import { MinMaxLength } from "@common/decorators"; import type { NumberFieldOptions, StringFieldOptions } from "@common/@types"; +import { Sanitize, Trim } from "./transform.decorator"; export class ValidatorFieldBuilder { private decoratorsToApply: PropertyDecorator[]; diff --git a/src/common/dtos/cursor-pagination.dto.ts b/src/common/dtos/cursor-pagination.dto.ts index 9a61a684..c98890d8 100644 --- a/src/common/dtos/cursor-pagination.dto.ts +++ b/src/common/dtos/cursor-pagination.dto.ts @@ -1,9 +1,9 @@ import { ApiHideProperty } from "@nestjs/swagger"; import { Allow, IsBase64 } from "class-validator"; -import { PaginationDto } from "./pagination.dto"; import { PaginationType } from "@common/@types"; import { IsNumberField, IsStringField } from "@common/decorators"; import { validationI18nMessage } from "@lib/i18n"; +import { PaginationDto } from "./pagination.dto"; // TODO: add filters diff --git a/src/common/dtos/offset-pagination.dto.ts b/src/common/dtos/offset-pagination.dto.ts index c568c471..b6bfeed6 100644 --- a/src/common/dtos/offset-pagination.dto.ts +++ b/src/common/dtos/offset-pagination.dto.ts @@ -1,9 +1,9 @@ import { ApiHideProperty } from "@nestjs/swagger"; import { Allow } from "class-validator"; -import { PaginationDto } from "./pagination.dto"; import { IsEnumField, IsNumberField, IsStringField } from "@common/decorators"; import { PaginationType, QueryOrder } from "@common/@types"; +import { PaginationDto } from "./pagination.dto"; export class OffsetPaginationDto extends PaginationDto { @ApiHideProperty() diff --git a/src/common/guards/auth.guard.spec.ts b/src/common/guards/auth.guard.spec.ts index a4036054..0bb0855a 100644 --- a/src/common/guards/auth.guard.spec.ts +++ b/src/common/guards/auth.guard.spec.ts @@ -1,48 +1,48 @@ -import {createMock} from '@golevelup/ts-jest'; -import type {ExecutionContext} from '@nestjs/common'; -import {HttpException} from '@nestjs/common'; -import {AuthGuard} from './auth.guard'; +import { createMock } from "@golevelup/ts-jest"; +import type { ExecutionContext } from "@nestjs/common"; +import { HttpException } from "@nestjs/common"; +import { mockJwtService } from "@mocks"; +import { AuthGuard } from "./auth.guard"; -import {mockJwtService} from '@mocks'; +describe("AuthenticatedGuard", () => { + let authenticatedGuard: AuthGuard; + const mockContext = createMock({ + switchToHttp: () => ({ + getRequest: () => ({ + headers: { + authorization: "Bearer token", + }, + }), + }), + }); -describe('AuthenticatedGuard', () => { - let authenticatedGuard: AuthGuard; - const mockContext = createMock({ - switchToHttp: () => ({ - getRequest: () => ({ - headers: { - authorization: 'Bearer token', - }, - }), - }), - }); + beforeEach(() => { + authenticatedGuard = new AuthGuard(mockJwtService); + }); - beforeEach(() => { - authenticatedGuard = new AuthGuard(mockJwtService); - }); + it("should be defined", () => { + expect(authenticatedGuard).toBeDefined(); + }); - it('should be defined', () => { - expect(authenticatedGuard).toBeDefined(); + describe("canActivate", () => { + it("should return authorization", () => { + mockJwtService.verify.mockImplementationOnce(() => { + return { idx: "idx" }; + }); + expect(authenticatedGuard.canActivate(mockContext)).toBe(true); }); - describe('canActivate', () => { - it('should return authorization', () => { - mockJwtService.verify.mockImplementationOnce(() => { - return {idx: 'idx'}; - }); - expect(authenticatedGuard.canActivate(mockContext)).toBe(true); - }); - - it.skip('should throw error when invalid token', () => { - mockJwtService.verify.mockImplementationOnce(() => { - throw new Error('Invalid token'); - }); + it.skip("should throw error when invalid token", () => { + mockJwtService.verify.mockImplementationOnce(() => { + throw new Error("Invalid token"); + }); - try { - authenticatedGuard.canActivate(mockContext); - } catch (error) { - expect(error).toBeInstanceOf(HttpException); - } - }); + try { + authenticatedGuard.canActivate(mockContext); + } + catch (error) { + expect(error).toBeInstanceOf(HttpException); + } }); + }); }); diff --git a/src/common/guards/jwt.guard.spec.ts b/src/common/guards/jwt.guard.spec.ts index 29ce1dec..3d748271 100644 --- a/src/common/guards/jwt.guard.spec.ts +++ b/src/common/guards/jwt.guard.spec.ts @@ -1,36 +1,35 @@ -import {createMock} from '@golevelup/ts-jest'; -import type {ExecutionContext} from '@nestjs/common'; -import {JwtAuthGuard} from './jwt.guard'; +import { createMock } from "@golevelup/ts-jest"; +import type { ExecutionContext } from "@nestjs/common"; +import { mockReflector } from "@mocks"; +import { JwtAuthGuard } from "./jwt.guard"; -import {mockReflector} from '@mocks'; +describe("JwtAuthGuard", () => { + let authenticatedGuard: JwtAuthGuard; -describe('JwtAuthGuard', () => { - let authenticatedGuard: JwtAuthGuard; + const mockContext = createMock({ + switchToHttp: () => ({ + getRequest: () => ({ + headers: { + authorization: "Bearer token", + }, + }), + }), + }); - const mockContext = createMock({ - switchToHttp: () => ({ - getRequest: () => ({ - headers: { - authorization: 'Bearer token', - }, - }), - }), - }); - - beforeEach(() => { - authenticatedGuard = new JwtAuthGuard(mockReflector); - }); + beforeEach(() => { + authenticatedGuard = new JwtAuthGuard(mockReflector); + }); - it('should be defined', () => { - expect(authenticatedGuard).toBeDefined(); - }); + it("should be defined", () => { + expect(authenticatedGuard).toBeDefined(); + }); - describe('canActivate', () => { - it('should return true for public', () => { - mockReflector.get.mockImplementationOnce(() => { - return true; - }); - expect(authenticatedGuard.canActivate(mockContext)).toBe(true); - }); + describe("canActivate", () => { + it("should return true for public", () => { + mockReflector.get.mockImplementationOnce(() => { + return true; + }); + expect(authenticatedGuard.canActivate(mockContext)).toBe(true); }); + }); }); diff --git a/src/common/helpers/app.utils.ts b/src/common/helpers/app.utils.ts index 31496bd0..75c6433a 100644 --- a/src/common/helpers/app.utils.ts +++ b/src/common/helpers/app.utils.ts @@ -6,7 +6,6 @@ import { DocumentBuilder, SwaggerModule } from "@nestjs/swagger"; import { i18nValidationErrorFactory } from "nestjs-i18n"; import { getMiddleware } from "swagger-stats"; import { isArray } from "helper-fns"; -import { HelperService } from "./helpers.utils"; import { swaggerOptions } from "@common/swagger/swagger.plugin"; import { @@ -16,6 +15,7 @@ import { SWAGGER_DESCRIPTION, SWAGGER_TITLE, } from "@common/constant"; +import { HelperService } from "./helpers.utils"; const logger = new Logger("App:Utils"); @@ -85,7 +85,7 @@ export const AppUtils = { for (const method of methods) { if ( isArray(method.security) - // eslint-disable-next-line @typescript-eslint/no-unsafe-call + // eslint-disable-next-line ts/no-unsafe-call && method.security.includes(IS_PUBLIC_KEY_META) ) method.security = []; diff --git a/src/common/helpers/helpers.utils.ts b/src/common/helpers/helpers.utils.ts index 47879e34..307bf902 100644 --- a/src/common/helpers/helpers.utils.ts +++ b/src/common/helpers/helpers.utils.ts @@ -60,7 +60,6 @@ directory of the module. */ return process.env.NODE_ENV === "prod" ? join(currentDirectory, "dist") : currentDirectory; }, - /* The `hashString` function is used to hash a user's password using the Argon2 algorithm. It takes a user's password as input and returns a promise that resolves to the hashed password as a string. The `hash` function from the `argon2` library is used to perform the actual hashing, with the diff --git a/src/common/interceptors/app-exit.interceptor.spec.ts b/src/common/interceptors/app-exit.interceptor.spec.ts index e18ed3d3..d991df41 100644 --- a/src/common/interceptors/app-exit.interceptor.spec.ts +++ b/src/common/interceptors/app-exit.interceptor.spec.ts @@ -1,18 +1,18 @@ -import {ExitInterceptor} from './app-exit.interceptor'; -import {mockContext, mockNext} from '@mocks'; +import { mockContext, mockNext } from "@mocks"; +import { ExitInterceptor } from "./app-exit.interceptor"; -describe('ExitInterceptor', () => { - let interceptor: ExitInterceptor; +describe("ExitInterceptor", () => { + let interceptor: ExitInterceptor; - beforeEach(() => { - interceptor = new ExitInterceptor(); - }); + beforeEach(() => { + interceptor = new ExitInterceptor(); + }); - describe('intercept', () => { - it('should pass', () => { - interceptor.intercept(mockContext, mockNext).subscribe((result) => { - expect(result).toEqual({}); - }); - }); + describe("intercept", () => { + it("should pass", () => { + interceptor.intercept(mockContext, mockNext).subscribe((result) => { + expect(result).toEqual({}); + }); }); + }); }); diff --git a/src/common/interceptors/request-sanitizer.interceptor.spec.ts b/src/common/interceptors/request-sanitizer.interceptor.spec.ts index 949bed30..f77563df 100644 --- a/src/common/interceptors/request-sanitizer.interceptor.spec.ts +++ b/src/common/interceptors/request-sanitizer.interceptor.spec.ts @@ -1,42 +1,41 @@ -import {createMock} from '@golevelup/ts-jest'; -import type {CallHandler, ExecutionContext} from '@nestjs/common'; -import {RequestSanitizerInterceptor} from './request-sanitizer.interceptor'; +import { createMock } from "@golevelup/ts-jest"; +import type { CallHandler, ExecutionContext } from "@nestjs/common"; +import { mockRequest } from "@mocks"; +import { RequestSanitizerInterceptor } from "./request-sanitizer.interceptor"; -import {mockRequest} from '@mocks'; +describe("RequestSanitizerInterceptor", () => { + let interceptor: RequestSanitizerInterceptor; -describe('RequestSanitizerInterceptor', () => { - let interceptor: RequestSanitizerInterceptor; + // create the mock CallHandler for the interceptor + const mockContext = createMock({ + switchToHttp: () => ({ + getRequest: () => ({ + mockRequest, + }), + }), + }); - // create the mock CallHandler for the interceptor - const mockContext = createMock({ - switchToHttp: () => ({ - getRequest: () => ({ - mockRequest, - }), - }), - }); - - const mockNext = createMock(); + const mockNext = createMock(); - beforeEach(() => { - interceptor = new RequestSanitizerInterceptor(); - }); - it('should be defined', () => { - expect(interceptor).toBeDefined(); - }); + beforeEach(() => { + interceptor = new RequestSanitizerInterceptor(); + }); + it("should be defined", () => { + expect(interceptor).toBeDefined(); + }); - it('should clean request', () => { - interceptor.intercept(mockContext, mockNext).subscribe((_result) => { - expect(mockRequest.body.test).toEqual('test'); - expect(mockRequest.query.test).toEqual('test'); - expect(mockRequest.params.test).toEqual('test'); + it("should clean request", () => { + interceptor.intercept(mockContext, mockNext).subscribe((_result) => { + expect(mockRequest.body.test).toEqual("test"); + expect(mockRequest.query.test).toEqual("test"); + expect(mockRequest.params.test).toEqual("test"); - expect(mockRequest.body.xss).toEqual(''); - expect(mockRequest.params.xss).toEqual(''); - expect(mockRequest.query.xss).toEqual(''); - expect(mockRequest.body.password).toEqual( - '