From 9c1bde5bd2157fb2fbf401392d60323b07afa416 Mon Sep 17 00:00:00 2001 From: Konstantin Tsabolov <1006564+tsabolov@users.noreply.github.com> Date: Wed, 15 Nov 2023 15:48:38 +0100 Subject: [PATCH] chore: update dependencies, fix style MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Upgraded the dependencies to the latest versions * Switched output to ESM format * Switched NestJS and Jest to SWC to improve speed of building and testing * Refactored TSConfig to remove tsconfig-paths * Updated imports in all files to reflect the change in TSConfig * Changed the linting rules (removed AirBnB config) * Fixed Prettier installation (added ignore file) * Fixed typing errors (mainly usage of any's) * Fixed the non-working E2E test P.S. None of the mentioned makes sense alone, therefore a huge commit 🤷â€â™‚ï¸ --- .gitignore | 2 +- apps/connection-manager/.eslintrc.cjs | 42 + apps/connection-manager/.eslintrc.js | 28 - apps/connection-manager/.prettierignore | 17 + apps/connection-manager/.swcrc | 20 + apps/connection-manager/jest.config.js | 50 + apps/connection-manager/nest-cli.json | 6 +- apps/connection-manager/package.json | 149 ++- .../connection-manager/src/app.module.spec.ts | 7 +- apps/connection-manager/src/app.module.ts | 31 +- .../src/client/nats.client.ts | 10 +- .../src/common/common.spec.ts | 7 - .../src/common/date.utils.ts | 2 +- .../src/common/exception.handler.ts | 19 +- .../connection-manager/src/common/response.ts | 4 +- .../{ => src}/config/config.ts | 6 +- .../{ => src}/config/validation.ts | 2 +- .../connections/controller/controller.spec.ts | 109 +- .../src/connections/controller/controller.ts | 69 +- .../entities/connectionStateDto.entity.ts | 12 +- .../src/connections/entities/entity.ts | 3 +- .../src/connections/module.ts | 18 +- .../repository/connection.repository.ts | 31 +- .../scheduler/scheduler.service.ts | 21 +- .../src/connections/services/service.spec.ts | 69 +- .../src/connections/services/service.ts | 37 +- .../src/health/health.controller.ts | 9 +- .../src/health/health.spec.ts | 5 +- apps/connection-manager/src/main.ts | 15 +- .../src/middleware/auth.middleware.ts | 71 +- .../src/prisma/prisma.module.spec.ts | 2 +- .../src/prisma/prisma.module.ts | 6 +- .../src/prisma/prisma.service.ts | 17 +- .../src/utils/exceptionsFilter.ts | 16 +- .../src/utils/logger.spec.ts | 4 +- apps/connection-manager/src/utils/logger.ts | 32 +- apps/connection-manager/src/utils/nats.ts | 8 +- .../src/utils/pagination.spec.ts | 4 +- apps/connection-manager/test/app.e2e-spec.ts | 15 +- apps/connection-manager/test/jest-e2e.json | 9 - apps/connection-manager/test/jest.config.js | 9 + apps/connection-manager/tsconfig.json | 36 +- pnpm-lock.yaml | 984 ++++++++++++++---- 43 files changed, 1283 insertions(+), 730 deletions(-) create mode 100644 apps/connection-manager/.eslintrc.cjs delete mode 100644 apps/connection-manager/.eslintrc.js create mode 100644 apps/connection-manager/.prettierignore create mode 100644 apps/connection-manager/.swcrc create mode 100644 apps/connection-manager/jest.config.js delete mode 100644 apps/connection-manager/src/common/common.spec.ts rename apps/connection-manager/{ => src}/config/config.ts (80%) rename apps/connection-manager/{ => src}/config/validation.ts (93%) delete mode 100644 apps/connection-manager/test/jest-e2e.json create mode 100644 apps/connection-manager/test/jest.config.js diff --git a/.gitignore b/.gitignore index 62521a9..03eee29 100644 --- a/.gitignore +++ b/.gitignore @@ -29,7 +29,7 @@ pnpm-debug.log* yarn-debug.log* yarn-error.log* lerna-debug.log* -**/logs/log.json +apps/**/logs/log.json # OS .DS_Store diff --git a/apps/connection-manager/.eslintrc.cjs b/apps/connection-manager/.eslintrc.cjs new file mode 100644 index 0000000..e0c3a4c --- /dev/null +++ b/apps/connection-manager/.eslintrc.cjs @@ -0,0 +1,42 @@ +module.exports = { + root: true, + parser: '@typescript-eslint/parser', + parserOptions: { + sourceType: 'module', + ecmaVersion: 2021, + }, + env: { + node: true, + }, + plugins: ['prettier', '@typescript-eslint/eslint-plugin', 'jest'], + extends: [ + 'prettier', + 'plugin:@typescript-eslint/recommended', + 'plugin:jest/recommended', + ], + ignorePatterns: ['.eslintrc.js'], + overrides: [], + settings: { + jest: { + version: '29', + }, + }, + rules: { + 'no-unused-vars': 0, + '@typescript-eslint/no-unused-vars': [1, { argsIgnorePattern: '^_' }], + }, + overrides: [ + { + files: [ + '*.spec.ts', + '*.e2e-spec.ts', + '__mocks__/*.ts', + '__mocks__/**/*.ts', + ], + rules: { + '@typescript-eslint/no-explicit-any': 0, + 'jest/no-mocks-import': 0, + }, + }, + ], +}; diff --git a/apps/connection-manager/.eslintrc.js b/apps/connection-manager/.eslintrc.js deleted file mode 100644 index 4509663..0000000 --- a/apps/connection-manager/.eslintrc.js +++ /dev/null @@ -1,28 +0,0 @@ -module.exports = { - parser: '@typescript-eslint/parser', - parserOptions: { - project: 'tsconfig.json', - sourceType: 'module', - }, - plugins: ['@typescript-eslint/eslint-plugin'], - extends: [ - 'plugin:@typescript-eslint/recommended', - 'airbnb-base', - 'airbnb-typescript/base', - ], - parserOptions: { - project: './tsconfig.json', - }, - root: true, - env: { - node: true, - jest: true, - }, - ignorePatterns: ['.eslintrc.js'], - rules: { - '@typescript-eslint/interface-name-prefix': 'off', - '@typescript-eslint/explicit-function-return-type': 'off', - '@typescript-eslint/explicit-module-boundary-types': 'off', - '@typescript-eslint/no-explicit-any': 'off', - }, -}; diff --git a/apps/connection-manager/.prettierignore b/apps/connection-manager/.prettierignore new file mode 100644 index 0000000..487d869 --- /dev/null +++ b/apps/connection-manager/.prettierignore @@ -0,0 +1,17 @@ +# Ignore everything +* + +# Except for these files +!*.ts +!*.d.ts +!jest.config.js + +# .. also in subdirectories +!*/ + +# ... in these ones +!src/* + +# Explicitly ignore these locations +node_modules +dist diff --git a/apps/connection-manager/.swcrc b/apps/connection-manager/.swcrc new file mode 100644 index 0000000..f0831e4 --- /dev/null +++ b/apps/connection-manager/.swcrc @@ -0,0 +1,20 @@ +{ + "jsc": { + "preserveAllComments": true, + "parser": { + "syntax": "typescript", + "tsx": false, + "decorators": true + }, + "transform": { + "legacyDecorator": true, + "decoratorMetadata": true + }, + "target": "es2022" + }, + "module": { + "type": "es6" + }, + "sourceMaps": true, + "exclude": [".spec.ts", ".e2e-spec.ts"] +} diff --git a/apps/connection-manager/jest.config.js b/apps/connection-manager/jest.config.js new file mode 100644 index 0000000..1b2ee91 --- /dev/null +++ b/apps/connection-manager/jest.config.js @@ -0,0 +1,50 @@ +/** @type {import('jest').Config} */ + +import { readFileSync } from 'node:fs'; + +const swcConfig = JSON.parse(readFileSync('./.swcrc', 'utf8')); + +export default { + moduleFileExtensions: ['js', 'ts'], + testEnvironment: 'node', + transform: { + '^.+\\.ts$': [ + '@swc/jest', + { + ...swcConfig, + sourceMaps: false, + exclude: [], + swcrc: false, + }, + ], + }, + extensionsToTreatAsEsm: ['.ts'], + moduleNameMapper: { + // ESM modules require `.js` extension to be specified, but Jest doesn't work with them + // Removing `.js` extension from module imports + '^uuid$': 'uuid', + '^(.*)/(.*)\\.js$': '$1/$2', + }, + collectCoverageFrom: ['src/**/*.(t|j)s'], + coverageReporters: + process.env.CI === 'true' + ? ['text-summary', 'json-summary'] + : ['text-summary', 'html'], + coveragePathIgnorePatterns: [ + '<rootDir>/node_modules/', + '<rootDir>/test/', + '<rootDir>/coverage/', + '<rootDir>/dist/', + '<rootDir>/**/test', + '@types', + '.dto.(t|j)s', + '.enum.ts', + '.interface.ts', + '.type.ts', + '.spec.ts', + ], + coverageDirectory: './coverage', + // With v8 coverage provider it's much faster, but + // with this enabled it's not possible to ignore whole files' coverage + coverageProvider: 'v8', +}; diff --git a/apps/connection-manager/nest-cli.json b/apps/connection-manager/nest-cli.json index 56167b3..0a947a5 100644 --- a/apps/connection-manager/nest-cli.json +++ b/apps/connection-manager/nest-cli.json @@ -1,4 +1,8 @@ { "collection": "@nestjs/schematics", - "sourceRoot": "src" + "sourceRoot": "src", + "compilerOptions": { + "builder": "swc", + "typeCheck": true + } } diff --git a/apps/connection-manager/package.json b/apps/connection-manager/package.json index d86730d..c4ac370 100644 --- a/apps/connection-manager/package.json +++ b/apps/connection-manager/package.json @@ -5,115 +5,84 @@ "author": "Sagar", "private": true, "license": "Apache-2.0", + "type": "module", "scripts": { "clean": "rm -r dist", "build": "nest build", - "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", "dbSchema": "npx prisma db push --schema=./src/prisma/schema.prisma", "prisma:generate": "prisma generate --schema=./src/prisma/schema.prisma", "prisma:migrate": "npx prisma migrate deploy --schema=./src/prisma/schema.prisma", "prismaStudio": "npx prisma studio", "start": "nest start", + "start:dev": "nest start --watch --preserveWatchOutput", "start:docker": "pnpm prisma:generate && pnpm dbSchema && pnpm start", "start:docker:prod": "pnpm prisma:migrate && node dist/src/main", - "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", + "lint": "eslint --fix", + "lint:all": "npm run lint -- .", + "format": "prettier --write", + "format:all": "npm run format -- .", "test": "jest", "test:watch": "jest --watch", "test:cov": "jest --coverage", "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", - "test:e2e": "jest --config ./test/jest-e2e.json" + "test:e2e": "jest --config ./test/jest.config.js" }, "dependencies": { - "@elastic/ecs-winston-format": "^1.3.1", - "@nestjs/axios": "^0.0.5", - "@nestjs/cli": "^8.0.0", - "@nestjs/common": "^8.0.0", - "@nestjs/config": "^1.1.6", - "@nestjs/core": "^8.0.0", - "@nestjs/mapped-types": "*", - "@nestjs/microservices": "^8.2.6", - "@nestjs/platform-express": "^8.0.0", - "@nestjs/schedule": "^1.0.2", - "@nestjs/schematics": "^8.0.0", - "@nestjs/swagger": "^5.2.0", - "@nestjs/terminus": "^8.0.4", - "@nestjs/testing": "^8.0.0", - "@prisma/client": "^3.15.2", - "@types/node": "^16.0.0", - "class-validator": "^0.13.2", - "express": "^4.17.3", - "joi": "^17.6.0", - "jsonwebtoken": "^8.5.1", - "jwks-rsa": "^3.0.0", - "moment": "^2.29.1", - "nats": "^2.6.0", - "prisma": "^3.15.2", + "@elastic/ecs-winston-format": "^1.5.0", + "@nestjs/axios": "^3.0.1", + "@nestjs/common": "^10.2.8", + "@nestjs/config": "^3.1.1", + "@nestjs/core": "^10.2.8", + "@nestjs/mapped-types": "^2.0.4", + "@nestjs/microservices": "^10.2.8", + "@nestjs/platform-express": "^10.2.8", + "@nestjs/schedule": "^4.0.0", + "@nestjs/swagger": "^7.1.16", + "@nestjs/terminus": "^10.1.1", + "@prisma/client": "^5.6.0", + "class-validator": "^0.14.0", + "joi": "^17.11.0", + "jsonwebtoken": "^9.0.2", + "jwks-rsa": "^3.1.0", + "moment": "^2.29.4", + "nats": "^2.18.0", "reflect-metadata": "^0.1.13", - "rxjs": "^7.2.0", - "simple-oauth2": "^5.0.0", - "winston": "^3.6.0", - "winston-elasticsearch": "^0.16.1" + "rxjs": "^7.8.1", + "winston": "^3.11.0", + "winston-elasticsearch": "^0.17.4" }, "devDependencies": { - "@types/express": "^4.17.13", + "@jest/globals": "^29.7.0", + "@nestjs/cli": "^10.2.1", + "@nestjs/schematics": "^10.0.3", + "@nestjs/testing": "^10.2.8", + "@swc/cli": "^0.1.62", + "@swc/core": "^1.3.96", + "@swc/jest": "^0.2.29", + "@types/express": "^4.17.21", "@types/jest": "27.0.2", - "@types/jsonwebtoken": "^8.5.9", - "@types/simple-oauth2": "^4.1.1", - "@types/supertest": "^2.0.11", - "@typescript-eslint/eslint-plugin": "^5.14.0", - "@typescript-eslint/parser": "^5.14.0", - "dotenv-cli": "^4.1.1", - "eslint": "^8.0.1", - "eslint-config-airbnb-typescript": "^16.1.0", - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-prettier": "^4.0.0", - "husky": "^7.0.4", - "jest": "^27.2.5", - "node-mocks-http": "^1.11.0", - "prettier": "^2.3.2", - "source-map-support": "^0.5.20", - "supertest": "^6.1.3", - "swagger-ui-express": "^4.3.0", - "ts-jest": "^27.0.3", - "ts-loader": "^9.2.3", - "ts-node": "^10.0.0", - "tsconfig-paths": "^3.10.1", - "typescript": "^4.3.5" - }, - "jest": { - "moduleFileExtensions": [ - "js", - "json", - "ts" - ], - "coveragePathIgnorePatterns": [ - "<rootDir>/main", - "<rootDir>/client" - ], - "setupFiles": [ - "<rootDir>/../setup.js" - ], - "moduleNameMapper": { - "^@connections/(.*)$": "<rootDir>/connections/$1", - "^@src/(.*)$": "<rootDir>/$1", - "^@DB/(.*)$": "<rootDir>/prisma/$1", - "^@common/(.*)$": "<rootDir>/common/$1", - "@config/(.*)": [ - "<rootDir>/../config/$1" - ], - "^@utils/(.*)$": "<rootDir>/utils/$1", - "^@health/(.*)$": "<rootDir>/health/$1" - }, - "rootDir": "src", - "testRegex": ".*\\.spec\\.ts$", - "transform": { - "^.+\\.(t|j)s$": "ts-jest" - }, - "collectCoverageFrom": [ - "**/*.(t|j)s" - ], - "coverageDirectory": "../coverage", - "testEnvironment": "node" + "@types/jsonwebtoken": "^9.0.5", + "@types/node": "^20.9.0", + "@types/simple-oauth2": "^5.0.7", + "@types/supertest": "^2.0.16", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "@typescript-eslint/parser": "^6.11.0", + "dotenv-cli": "^7.3.0", + "eslint": "^8.53.0", + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-import": "^2.29.0", + "eslint-plugin-jest": "^27.6.0", + "eslint-plugin-prettier": "^5.0.1", + "eslint-plugin-workspaces": "^0.9.0", + "husky": "^8.0.3", + "jest": "^29.7.0", + "node-mocks-http": "^1.13.0", + "prettier": "^3.1.0", + "prisma": "^5.6.0", + "source-map-support": "^0.5.21", + "supertest": "^6.3.3", + "swagger-ui-express": "^5.0.0", + "ts-node": "^10.9.1", + "typescript": "^5.2.2" } } diff --git a/apps/connection-manager/src/app.module.spec.ts b/apps/connection-manager/src/app.module.spec.ts index 55541ed..0298150 100644 --- a/apps/connection-manager/src/app.module.spec.ts +++ b/apps/connection-manager/src/app.module.spec.ts @@ -1,6 +1,7 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { INestApplication } from '@nestjs/common'; -import AppModule from './app.module'; +import type { INestApplication } from '@nestjs/common'; +import type { TestingModule } from '@nestjs/testing'; +import { Test } from '@nestjs/testing'; +import AppModule from './app.module.js'; describe('App Module', () => { let app: INestApplication; diff --git a/apps/connection-manager/src/app.module.ts b/apps/connection-manager/src/app.module.ts index 12a698c..a5356b9 100644 --- a/apps/connection-manager/src/app.module.ts +++ b/apps/connection-manager/src/app.module.ts @@ -1,22 +1,17 @@ -import PrismaService from '@src/prisma/prisma.service'; -import { APP_FILTER } from '@nestjs/core'; -import { - MiddlewareConsumer, - Module, - NestModule, - RequestMethod, -} from '@nestjs/common'; +import type { MiddlewareConsumer, NestModule } from '@nestjs/common'; +import { Module, RequestMethod } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; -import { TerminusModule } from '@nestjs/terminus'; -import validationSchema from '@config/validation'; - -import config from '@config/config'; -import HealthController from '@health/health.controller'; -import ExceptionHandler from '@common/exception.handler'; -import ConnectionsModule from '@connections/module'; +import { APP_FILTER } from '@nestjs/core'; import { ScheduleModule } from '@nestjs/schedule'; -import SchedulerService from './connections/scheduler/scheduler.service'; -import { AuthMiddleware } from './middleware/auth.middleware'; +import { TerminusModule } from '@nestjs/terminus'; +import ExceptionHandler from './common/exception.handler.js'; +import config from './config/config.js'; +import validationSchema from './config/validation.js'; +import ConnectionsModule from './connections/module.js'; +import SchedulerService from './connections/scheduler/scheduler.service.js'; +import HealthController from './health/health.controller.js'; +import { AuthMiddleware } from './middleware/auth.middleware.js'; +import PrismaModule from './prisma/prisma.module.js'; @Module({ imports: [ @@ -27,6 +22,7 @@ import { AuthMiddleware } from './middleware/auth.middleware'; load: [config], validationSchema, }), + PrismaModule, ConnectionsModule, ], controllers: [HealthController], @@ -36,7 +32,6 @@ import { AuthMiddleware } from './middleware/auth.middleware'; useClass: ExceptionHandler, }, SchedulerService, - PrismaService, ], }) export default class AppModule implements NestModule { diff --git a/apps/connection-manager/src/client/nats.client.ts b/apps/connection-manager/src/client/nats.client.ts index 316b5b6..723c1fb 100644 --- a/apps/connection-manager/src/client/nats.client.ts +++ b/apps/connection-manager/src/client/nats.client.ts @@ -1,15 +1,15 @@ -import logger from '@src/utils/logger'; import { Inject, Injectable } from '@nestjs/common'; import { ClientProxy } from '@nestjs/microservices'; import { lastValueFrom } from 'rxjs'; import { + Attestation, NATSServices, Principal, - Attestation, ProofManager, -} from '@common/constants'; -import ResponseType from '@common/response'; -import ConnectionSubscriptionEndpointDto from '@connections/entities/connectionSubscribeEndPoint.entity'; +} from '../common/constants.js'; +import type ResponseType from '../common/response.js'; +import type ConnectionSubscriptionEndpointDto from '../connections/entities/connectionSubscribeEndPoint.entity.js'; +import logger from '../utils/logger.js'; @Injectable() export default class NatsClientService { diff --git a/apps/connection-manager/src/common/common.spec.ts b/apps/connection-manager/src/common/common.spec.ts deleted file mode 100644 index a42934a..0000000 --- a/apps/connection-manager/src/common/common.spec.ts +++ /dev/null @@ -1,7 +0,0 @@ -import StatusCode from './status.codes'; - -describe('StatusCode', () => { - it('should be defined', () => { - expect(StatusCode).toBeDefined(); - }); -}); diff --git a/apps/connection-manager/src/common/date.utils.ts b/apps/connection-manager/src/common/date.utils.ts index f7276e5..a6d0cac 100644 --- a/apps/connection-manager/src/common/date.utils.ts +++ b/apps/connection-manager/src/common/date.utils.ts @@ -1,4 +1,4 @@ -import moment = require('moment'); +import moment from 'moment'; const getDate = () => moment().format('MM-DD-YYYY, h:mm:ss a'); diff --git a/apps/connection-manager/src/common/exception.handler.ts b/apps/connection-manager/src/common/exception.handler.ts index 1da5ca9..d54e5be 100644 --- a/apps/connection-manager/src/common/exception.handler.ts +++ b/apps/connection-manager/src/common/exception.handler.ts @@ -1,17 +1,13 @@ -import { - ExceptionFilter, - Catch, - ArgumentsHost, - HttpException, - HttpStatus, -} from '@nestjs/common'; +import type { ArgumentsHost, ExceptionFilter } from '@nestjs/common'; +import { Catch, HttpException, HttpStatus } from '@nestjs/common'; import { HttpAdapterHost } from '@nestjs/core'; -import ResponseType from './response'; +import type ResponseType from './response.js'; @Catch() export default class ExceptionHandler implements ExceptionFilter { constructor(private readonly httpAdapterHost: HttpAdapterHost) {} + // eslint-disable-next-line @typescript-eslint/no-explicit-any catch(exception: any, host: ArgumentsHost): void { // In certain situations `httpAdapter` might not be available in the // constructor method, thus we should resolve it here. @@ -25,10 +21,13 @@ export default class ExceptionHandler implements ExceptionFilter { exception.message.error || exception.message || 'Something went wrong!'; if (exception instanceof HttpException) { - const errorResponse: any = exception.getResponse(); + const errorResponse: string | object = exception.getResponse(); statusCode = exception.getStatus(); - message = errorResponse.error || message; + message = + (typeof errorResponse === 'object' && + Reflect.get(errorResponse, 'error')) || + message; } const responseBody: ResponseType = { diff --git a/apps/connection-manager/src/common/response.ts b/apps/connection-manager/src/common/response.ts index e5b6296..45f4ccb 100644 --- a/apps/connection-manager/src/common/response.ts +++ b/apps/connection-manager/src/common/response.ts @@ -1,6 +1,6 @@ export default interface ResponseType { statusCode: number; message: string; - data?: any; - error?: any; + data?: unknown; + error?: unknown; } diff --git a/apps/connection-manager/config/config.ts b/apps/connection-manager/src/config/config.ts similarity index 80% rename from apps/connection-manager/config/config.ts rename to apps/connection-manager/src/config/config.ts index 2e11fbb..b13ab0b 100644 --- a/apps/connection-manager/config/config.ts +++ b/apps/connection-manager/src/config/config.ts @@ -1,3 +1,7 @@ +import { fileURLToPath } from 'node:url'; + +const parentDirectory = fileURLToPath(new URL('..', import.meta.url)); + const config = () => ({ PORT: Number(process.env.PORT), APP_URL: process.env.CONNECTION_MANAGER_URL, @@ -19,7 +23,7 @@ const config = () => ({ port: 5432, synchronize: false, logging: false, - entities: [`${__dirname}/../**/**.model{.ts,.js}`], + entities: [`${parentDirectory}/../**/**.model{.ts,.js}`], DATABASE_URL: process.env.DATABASE_URL, }, agent: { diff --git a/apps/connection-manager/config/validation.ts b/apps/connection-manager/src/config/validation.ts similarity index 93% rename from apps/connection-manager/config/validation.ts rename to apps/connection-manager/src/config/validation.ts index 30c6782..5973fca 100644 --- a/apps/connection-manager/config/validation.ts +++ b/apps/connection-manager/src/config/validation.ts @@ -1,4 +1,4 @@ -import * as Joi from 'joi'; +import Joi from 'joi'; const validationSchema = Joi.object({ DATABASE_URL: Joi.string().required(), diff --git a/apps/connection-manager/src/connections/controller/controller.spec.ts b/apps/connection-manager/src/connections/controller/controller.spec.ts index b660010..403199a 100644 --- a/apps/connection-manager/src/connections/controller/controller.spec.ts +++ b/apps/connection-manager/src/connections/controller/controller.spec.ts @@ -1,16 +1,18 @@ +import { HttpModule } from '@nestjs/axios'; import { HttpStatus } from '@nestjs/common'; -import { Test, TestingModule } from '@nestjs/testing'; import { ConfigModule } from '@nestjs/config'; -import { HttpModule } from '@nestjs/axios'; -import NatsClientService from '@src/client/nats.client'; import { ClientsModule, Transport } from '@nestjs/microservices'; -import { NATSServices } from '@src/common/constants'; -import httpMocks = require('node-mocks-http'); -import RestClientService from '@src/client/rest.client'; -import ConnectionsController from '@src/connections/controller/controller'; -import ConnectionsService from '../services/service'; -import PrismaService from '../../prisma/prisma.service'; -import ConnectionStateDto from '../entities/connectionStateDto.entity'; +import type { TestingModule } from '@nestjs/testing'; +import { Test } from '@nestjs/testing'; +import httpMocks from 'node-mocks-http'; +import NatsClientService from '../../client/nats.client.js'; +import RestClientService from '../../client/rest.client.js'; +import { NATSServices } from '../../common/constants.js'; +import PrismaService from '../../prisma/prisma.service.js'; +import type ConnectionStateDto from '../entities/connectionStateDto.entity.js'; +import ConnectionsService from '../services/service.js'; + +import ConnectionsController from './controller.js'; describe('ConnectionsController', () => { let connectionController: ConnectionsController; @@ -87,16 +89,18 @@ describe('ConnectionsController', () => { }; const response = httpMocks.createResponse(); + jest .spyOn(connectionService, 'findConnections') .mockResolvedValueOnce(serviceResult); + const res: any = await connectionController.getConnection( param, - query, response, ); - // eslint-disable-next-line no-underscore-dangle + const resData = res._getData(); + expect(res.statusCode).toBe(HttpStatus.OK); expect(JSON.parse(resData).data).toStrictEqual(result); }); @@ -124,16 +128,14 @@ describe('ConnectionsController', () => { ]; const response = httpMocks.createResponse(); + jest .spyOn(connectionService, 'findConnections') .mockResolvedValueOnce(serviceResult); - const res: any = await connectionController.getConnection( - param, - query, - response, - ); - // eslint-disable-next-line no-underscore-dangle + + const res = await connectionController.getConnection(param, response); const resData = res._getData(); + expect(res.statusCode).toBe(HttpStatus.BAD_REQUEST); expect(JSON.parse(resData).message).toStrictEqual( 'Participant ID/ connection ID / participant DID must be provided', @@ -191,7 +193,7 @@ describe('ConnectionsController', () => { expect(JSON.parse(resData)).toStrictEqual(result); }); - it('Not fount if data is not present against connection id ', async () => { + it('Not fount if data is not present against connection id', async () => { const param = { connectionId: '7b821264-2ae3-4459-b45f-19fa975d91f7', }; @@ -345,66 +347,6 @@ describe('ConnectionsController', () => { // expect(JSON.parse(resData).data).toStrictEqual(result); }); - it('Create connection webhook call', async () => { - const webHook: ConnectionStateDto = { - _tags: {}, - metadata: {}, - id: '7edc871d-9fa3-4f30-8763-59c80bf346f5', - createdAt: '2022-04-21T10:52:27.151Z', - did: 'DD8Aue5tuohjBaCLM9GMU7', - didDoc: { - '@context': 'https://w3id.org/did/v1', - publicKey: [ - [ - { - id: 'C1buxAXWiisjFpVVyUGM5D#1', - controller: 'C1buxAXWiisjFpVVyUGM5D', - type: 'Ed25519VerificationKey2018', - publicKeyBase58: '714U4GdQqyeqhCANgJmTrGqUPg4QTGuEhJcEGYAvEH1Y', - }, - ], - ], - service: [ - { - id: 'C1buxAXWiisjFpVVyUGM5D#IndyAgentService', - serviceEndpoint: 'http://localhost:4011', - type: 'IndyAgent', - priority: 0, - recipientKeys: ['714U4GdQqyeqhCANgJmTrGqUPg4QTGuEhJcEGYAvEH1Y'], - routingKeys: [], - }, - ], - authentication: [[Object]], - id: 'DD8Aue5tuohjBaCLM9GMU7', - }, - theirDid: '', - theirLabel: '', - verkey: '7exBgFhenY8hqBwBF56D8sp6akLstqXxS1MUUCpDErvX', - state: 'invited', - role: 'inviter', - alias: 'member', - invitation: { - '@type': 'https://didcomm.org/connections/1.0/invitation', - '@id': '8578735f-eef8-4748-b791-ba2f8f7002e2', - label: 'State_University', - recipientKeys: ['7exBgFhenY8hqBwBF56D8sp6akLstqXxS1MUUCpDErvX'], - serviceEndpoint: 'http://localhost:4017', - routingKeys: [], - }, - multiUseInvitation: false, - }; - const serviceResult: any = {}; - jest - .spyOn(connectionService, 'createConnections') - .mockResolvedValueOnce(serviceResult); - const res: any = await connectionController.createConnection({ - body: webHook, - }); - - expect(res.statusCode).toBe(HttpStatus.CREATED); - // expect(JSON.parse(resData).data).toStrictEqual(result); - }); - it('Update connection webhook call -> member flow', async () => { const webHook: ConnectionStateDto = { _tags: {}, @@ -608,7 +550,7 @@ describe('ConnectionsController', () => { multiUseInvitation: false, }; - const restConnection: any = { + const restConnection = { id: '29701e41-60e8-4fca-8504-ea3bcefa6486', connectionId: '72534911-9be0-4e3f-8539-2a8a09e4e409', participantId: '662dc769-a4de-4c95-934c-f6dab8cf432c', @@ -620,7 +562,8 @@ describe('ConnectionsController', () => { updatedDate: '2022-04-15T11:36:58.560Z', isActive: true, }; - const serviceResult: any = {}; + const serviceResult = {}; + jest .spyOn(connectionService, 'updateStatusByConnectionId') .mockResolvedValueOnce(serviceResult); @@ -628,7 +571,7 @@ describe('ConnectionsController', () => { jest .spyOn(connectionService, 'getConnectionByID') .mockResolvedValueOnce(restConnection); - const res: any = await connectionController.createConnection({ + const res = await connectionController.createConnection({ body: webHook, }); @@ -637,7 +580,7 @@ describe('ConnectionsController', () => { }); }); - describe('Get invitation URL ', () => { + describe('Get invitation URL', () => { it('Get Member invitation URL', async () => { const body = { autoAcceptConnection: true, diff --git a/apps/connection-manager/src/connections/controller/controller.ts b/apps/connection-manager/src/connections/controller/controller.ts index 90ebb31..37e2e54 100644 --- a/apps/connection-manager/src/connections/controller/controller.ts +++ b/apps/connection-manager/src/connections/controller/controller.ts @@ -1,3 +1,8 @@ +import type ResponseType from '../../common/response.js'; +import type ConnectionStateDto from '../entities/connectionStateDto.entity.js'; +import type ConnectionSubscriptionEndpointDto from '../entities/connectionSubscribeEndPoint.entity.js'; +import type ConnectionDto from '../entities/entity.js'; + import { Body, Controller, @@ -9,8 +14,7 @@ import { Res, Version, } from '@nestjs/common'; -import ResponseType from '@common/response'; -import ConnectionDto from '@connections/entities/entity'; +import { MessagePattern } from '@nestjs/microservices'; import { ApiBody, ApiExcludeEndpoint, @@ -19,19 +23,17 @@ import { ApiResponse, ApiTags, } from '@nestjs/swagger'; -import ConnectionsService from '@connections/services/service'; -import ConnectionStateDto from '@connections/entities/connectionStateDto.entity'; -import ConnectionCreateInvitationDto from '@connections/entities/connectionCreateInvitationDto.entity'; import { Response } from 'express'; -import logger from '@src/utils/logger'; -import { MessagePattern } from '@nestjs/microservices'; + import { Abstraction, NATSServices, RECEIVED_CONNECTION_ALIAS, -} from '@src/common/constants'; -import ConnectionSubscriptionEndpointDto from '../entities/connectionSubscribeEndPoint.entity'; -import AcceptConnectionInvitationBody from '../entities/AcceptConnectionInvitationBody'; +} from '../../common/constants.js'; +import logger from '../../utils/logger.js'; +import AcceptConnectionInvitationBody from '../entities/AcceptConnectionInvitationBody.js'; +import ConnectionCreateInvitationDto from '../entities/connectionCreateInvitationDto.entity.js'; +import ConnectionsService from '../services/service.js'; @ApiTags('Connections') @Controller() @@ -129,7 +131,8 @@ export default class ConnectionsController { @Post('invitation-url') @ApiOperation({ summary: 'Create new connection invitation', - description: 'This call provides the capability to create new connection invitation by providing alias parameter for taht connection in the body of request. Alias can be one of value: trust/subscriber/trust. This call returns an object contains three fields. invitationUrl, invitationUrlShort, invitation object and connection object. You can use invitationUrlShort or invitationUrl to create QR code which can be scanned by PCM. It\'s better to use invitationUrlShort because long string of invitationUrl replaced with short id and QR code can be displayed properly' + description: + "This call provides the capability to create new connection invitation by providing alias parameter for taht connection in the body of request. Alias can be one of value: trust/subscriber/trust. This call returns an object contains three fields. invitationUrl, invitationUrlShort, invitation object and connection object. You can use invitationUrlShort or invitationUrl to create QR code which can be scanned by PCM. It's better to use invitationUrlShort because long string of invitationUrl replaced with short id and QR code can be displayed properly", }) @ApiResponse({ status: HttpStatus.OK, @@ -250,7 +253,7 @@ export default class ConnectionsController { @ApiQuery({ name: 'alias', required: true }) async createConnectionInvitation( @Body() connectionCreate: ConnectionCreateInvitationDto, - @Query() query, + @Query() query: { alias: string }, @Res() response: Response, ) { logger.info(JSON.stringify(query)); @@ -298,10 +301,13 @@ export default class ConnectionsController { @Get('url/:id') @ApiOperation({ summary: 'Get full url from short url id', - description: 'Get full url from short url id' + description: 'Get full url from short url id', }) @ApiExcludeEndpoint() - async redirectToConnectionUrl(@Param() params, @Res() response: Response) { + async redirectToConnectionUrl( + @Param() params: { id: string }, + @Res() response: Response, + ) { const result = await this.connectionsService.findConnectionByShortUrlId( params.id, ); @@ -318,7 +324,8 @@ export default class ConnectionsController { @Get('connection-information') @ApiOperation({ summary: 'Fetch connection information by id or did', - description: 'This call provides the capability to get information about connection by connectionId or did. This call returns issued credentials and requested proof to that connection' + description: + 'This call provides the capability to get information about connection by connectionId or did. This call returns issued credentials and requested proof to that connection', }) @ApiQuery({ name: 'connectionId', required: false }) @ApiQuery({ name: 'did', required: false }) @@ -393,7 +400,7 @@ export default class ConnectionsController { }, }) async getConnectionInformationRequest( - @Query() query, + @Query() query: { connectionId: string; did: string }, @Res() response: Response, ) { let res: ResponseType; @@ -436,7 +443,8 @@ export default class ConnectionsController { @Get('connections') @ApiOperation({ summary: 'Fetch list of connections', - description: 'This call provides the capability to search connections by using pagination and filter parameters. This call returns a list of connections and overall count of records. This endpoint supports followinng query filter parameters: participantDID, status, pageSize, page' + description: + 'This call provides the capability to search connections by using pagination and filter parameters. This call returns a list of connections and overall count of records. This endpoint supports followinng query filter parameters: participantDID, status, pageSize, page', }) @ApiQuery({ name: 'page', required: false }) @ApiQuery({ name: 'pageSize', required: false }) @@ -494,8 +502,14 @@ export default class ConnectionsController { }, }) async getConnectionLists( - @Param() params, - @Query() query, + @Param() params: { connectionId: string }, + @Query() + query: { + participantDID?: string; + pageSize?: string; + page?: string; + status?: string; + }, @Res() response: Response, ) { let res: ResponseType; @@ -504,7 +518,7 @@ export default class ConnectionsController { query.pageSize ? parseInt(query.pageSize, 10) : 10, query.page ? parseInt(query.page, 10) : 0, query.status ? query.status : false, - params?.connectionId ? params.connectionId : null, + params?.connectionId ? params.connectionId : undefined, query.participantDID, ); @@ -539,12 +553,12 @@ export default class ConnectionsController { return response.json(res); } - @Version(['1']) @Get('connections/:connectionId') @ApiOperation({ summary: 'Fetch connection by id', - description: 'This call provides the capability to get connection data by providing connectionId. The connection data is the same which is returned from /v1/connections endpoint and contains generic information about connection like connectionId, status, dids and so on.' + description: + 'This call provides the capability to get connection data by providing connectionId. The connection data is the same which is returned from /v1/connections endpoint and contains generic information about connection like connectionId, status, dids and so on.', }) @ApiResponse({ status: HttpStatus.OK, @@ -598,14 +612,10 @@ export default class ConnectionsController { }, }) async getConnection( - @Param() params, + @Param() params: { connectionId: string }, @Res() response: Response, ) { - return this.getConnectionLists( - params, - {}, - response - ); + return this.getConnectionLists(params, {}, response); } @MessagePattern({ @@ -636,7 +646,8 @@ export default class ConnectionsController { @Post('accept-connection-invitation') @ApiOperation({ summary: 'Accept connection invitation', - description: 'This call provides the capability to receive connection invitation as invitee by invitationUrl and create connection. If auto accepting is enabled via either the config passed in the function or the global agent config, a connection request message will be send.' + description: + 'This call provides the capability to receive connection invitation as invitee by invitationUrl and create connection. If auto accepting is enabled via either the config passed in the function or the global agent config, a connection request message will be send.', }) @ApiResponse({ status: HttpStatus.ACCEPTED, diff --git a/apps/connection-manager/src/connections/entities/connectionStateDto.entity.ts b/apps/connection-manager/src/connections/entities/connectionStateDto.entity.ts index c982ca5..86c89e6 100644 --- a/apps/connection-manager/src/connections/entities/connectionStateDto.entity.ts +++ b/apps/connection-manager/src/connections/entities/connectionStateDto.entity.ts @@ -1,15 +1,16 @@ -import { IsString, IsNotEmpty } from 'class-validator'; -import InvitationDTO from './InvitationDto.entity'; +import { IsBooleanString, IsNotEmpty, IsString } from 'class-validator'; + +import InvitationDTO from './InvitationDto.entity.js'; export default class ConnectionStateDto { @IsString() - ['_tags']?: any; + _tags?: string; @IsString() - metadata?: any; + metadata?: string; @IsString() - didDoc?: any; + didDoc?: string; @IsString() verkey?: string; @@ -45,5 +46,6 @@ export default class ConnectionStateDto { @IsString() alias: string; + @IsBooleanString() multiUseInvitation?: boolean; } diff --git a/apps/connection-manager/src/connections/entities/entity.ts b/apps/connection-manager/src/connections/entities/entity.ts index 9f00bf8..79e5674 100644 --- a/apps/connection-manager/src/connections/entities/entity.ts +++ b/apps/connection-manager/src/connections/entities/entity.ts @@ -1,5 +1,6 @@ import { IsString, IsNotEmpty, IsDate, IsBoolean } from 'class-validator'; -import InvitationDTO from './InvitationDto.entity'; + +import InvitationDTO from './InvitationDto.entity.js'; export default class ConnectionDto { @IsString() diff --git a/apps/connection-manager/src/connections/module.ts b/apps/connection-manager/src/connections/module.ts index 620d8ea..21f1184 100644 --- a/apps/connection-manager/src/connections/module.ts +++ b/apps/connection-manager/src/connections/module.ts @@ -1,13 +1,15 @@ -import { Module } from '@nestjs/common'; -import PrismaService from '@DB/prisma.service'; import { HttpModule } from '@nestjs/axios'; +import { Module } from '@nestjs/common'; import { ClientsModule, Transport } from '@nestjs/microservices'; -import { NATSServices } from '@common/constants'; -import ConnectionsController from '@connections/controller/controller'; -import ConnectionsService from '@connections/services/service'; -import NatsClientService from '@src/client/nats.client'; -import RestClientService from '@src/client/rest.client'; -import config from '@config/config'; + +import NatsClientService from '../client/nats.client.js'; +import RestClientService from '../client/rest.client.js'; +import { NATSServices } from '../common/constants.js'; +import config from '../config/config.js'; +import PrismaService from '../prisma/prisma.service.js'; + +import ConnectionsController from './controller/controller.js'; +import ConnectionsService from './services/service.js'; @Module({ imports: [ diff --git a/apps/connection-manager/src/connections/repository/connection.repository.ts b/apps/connection-manager/src/connections/repository/connection.repository.ts index eb04dee..d0fabcb 100644 --- a/apps/connection-manager/src/connections/repository/connection.repository.ts +++ b/apps/connection-manager/src/connections/repository/connection.repository.ts @@ -1,30 +1,26 @@ +import type { Prisma } from '@prisma/client'; + import { Injectable } from '@nestjs/common'; -import { Prisma } from '@prisma/client'; -import PrismaService from '@DB/prisma.service'; + +import PrismaService from '../../prisma/prisma.service.js'; @Injectable() export default class ConnectionRepository { constructor(private readonly prismaService: PrismaService) {} async createConnection(data: Prisma.ConnectionCreateInput) { - return this.prismaService.connection.create({ - data, - }); + return this.prismaService.connection.create({ data }); } - async createShortUrl(invitationUrl: string) { + async createShortUrl(connectionUrl: string) { return this.prismaService.shortUrlConnection.create({ - data: { - connectionUrl: invitationUrl, - }, + data: { connectionUrl }, }); } async getShortUrl(id: string) { return this.prismaService.shortUrlConnection.findUnique({ - where: { - id, - }, + where: { id }, }); } @@ -33,6 +29,7 @@ export default class ConnectionRepository { data: Prisma.ConnectionUpdateInput; }) { const { where, data } = params; + return this.prismaService.connection.update({ data, where, @@ -44,6 +41,7 @@ export default class ConnectionRepository { data: Prisma.ConnectionUpdateInput; }) { const { where, data } = params; + return this.prismaService.connection.updateMany({ data, where, @@ -59,15 +57,13 @@ export default class ConnectionRepository { select?: Prisma.ConnectionSelect; }) { const { skip, take, cursor, where, orderBy, select } = params; + if (where) { where.isActive = true; } + return this.prismaService.$transaction([ - this.prismaService.connection.count({ - where: { - ...where, - }, - }), + this.prismaService.connection.count({ where }), this.prismaService.connection.findMany({ skip, take, @@ -83,6 +79,7 @@ export default class ConnectionRepository { where: Prisma.ConnectionWhereUniqueInput; }) { const { where } = params; + return this.prismaService.connection.findUnique({ where, }); diff --git a/apps/connection-manager/src/connections/scheduler/scheduler.service.ts b/apps/connection-manager/src/connections/scheduler/scheduler.service.ts index 5ba03f9..465a159 100644 --- a/apps/connection-manager/src/connections/scheduler/scheduler.service.ts +++ b/apps/connection-manager/src/connections/scheduler/scheduler.service.ts @@ -1,14 +1,15 @@ -import logger from '@utils/logger'; import { Controller, Injectable, InternalServerErrorException, } from '@nestjs/common'; import { Cron, CronExpression } from '@nestjs/schedule'; -import PrismaService from '@DB/prisma.service'; -import ConnectionRepository from '@connections/repository/connection.repository'; -import ConnectionsService from '@connections/services/service'; -import ConfigClient from '@src/client/config.client'; + +import ConfigClient from '../../client/config.client.js'; +import PrismaService from '../../prisma/prisma.service.js'; +import logger from '../../utils/logger.js'; +import ConnectionRepository from '../repository/connection.repository.js'; +import ConnectionsService from '../services/service.js'; @Injectable() @Controller() @@ -56,9 +57,8 @@ export default class SchedulerService { isActive: false, }, }; - const result = await this.connectionRepository.updateManyConnection( - query, - ); + const result = + await this.connectionRepository.updateManyConnection(query); logger.info(JSON.stringify(result)); } else { throw new InternalServerErrorException( @@ -94,9 +94,8 @@ export default class SchedulerService { isActive: false, }, }; - const result = await this.connectionRepository.updateManyConnection( - query, - ); + const result = + await this.connectionRepository.updateManyConnection(query); logger.info(JSON.stringify(result)); } else { throw new InternalServerErrorException( diff --git a/apps/connection-manager/src/connections/services/service.spec.ts b/apps/connection-manager/src/connections/services/service.spec.ts index b61de64..fbfeea9 100644 --- a/apps/connection-manager/src/connections/services/service.spec.ts +++ b/apps/connection-manager/src/connections/services/service.spec.ts @@ -1,19 +1,24 @@ +import type ConnectionDto from '../entities/entity.js'; +import type { TestingModule } from '@nestjs/testing'; + import { HttpModule } from '@nestjs/axios'; import { ConfigModule } from '@nestjs/config'; import { ClientsModule, Transport } from '@nestjs/microservices'; -import { Test, TestingModule } from '@nestjs/testing'; -import NatsClientService from '@src/client/nats.client'; -import { NATSServices } from '@common/constants'; -import PrismaService from '@DB/prisma.service'; -import ConnectionsService from '@connections/services/service'; -import RestClientService from '@src/client/rest.client'; -import ConnectionDto from '@connections/entities/entity'; +import { Test } from '@nestjs/testing'; + +import NatsClientService from '../../client/nats.client.js'; +import RestClientService from '../../client/rest.client.js'; +import { NATSServices } from '../../common/constants.js'; +import PrismaService from '../../prisma/prisma.service.js'; + +import ConnectionsService from './service.js'; describe('ConnectionsService', () => { let service: ConnectionsService; let prismaService: PrismaService; let restClientService: RestClientService; let natsClient: NatsClientService; + beforeEach(async () => { const module: TestingModule = await Test.createTestingModule({ imports: [ @@ -45,7 +50,7 @@ describe('ConnectionsService', () => { }); describe('find Connection function', () => { - it('find connection by connection Id ', async () => { + it('find connection by connection Id', async () => { const repositoryResult: any = { id: '1a7f0b09-b20e-4971-b9b1-7adde7256bbc', connectionId: '7b821264-2ae3-4459-b45f-19fa975d91f7', @@ -71,16 +76,19 @@ describe('ConnectionsService', () => { updatedDate: '2022-04-18T11:05:10.004Z', isActive: true, }; + jest .spyOn(prismaService.connection, 'findUnique') .mockResolvedValueOnce(repositoryResult); + const res: any = await service.findConnections( - '', - -1, + NaN, -1, false, + '', '7b821264-2ae3-4459-b45f-19fa975d91f7', ); + expect(res).toStrictEqual(result); }); @@ -110,14 +118,15 @@ describe('ConnectionsService', () => { updatedDate: '2022-04-18T11:05:10.004Z', isActive: true, }; + jest .spyOn(prismaService.connection, 'findUnique') .mockResolvedValueOnce(repositoryResult); + const res: any = await service.findConnections( - '', - -1, + NaN, -1, - false, + '', '', 'SU1SHqQiDcc6gDvqH8wwYF', ); @@ -209,23 +218,18 @@ describe('ConnectionsService', () => { }, ], ]; + jest .spyOn(prismaService, '$transaction') .mockResolvedValueOnce(repositoryResult); - const res: any = await service.findConnections( - '13f412e2-2749-462a-a10a-54f25e326641', - -1, - -1, - false, - '', - '', - ); + + const res: any = await service.findConnections(NaN, -1, '', '', ''); expect(res).toStrictEqual(result); }); it('find connections by participant Id and status', async () => { - const repositoryResult: any = [ + const repositoryResult = [ 3, [ { @@ -267,7 +271,7 @@ describe('ConnectionsService', () => { ], ]; - const result: any = [ + const result = [ 3, [ { @@ -308,17 +312,19 @@ describe('ConnectionsService', () => { }, ], ]; + jest .spyOn(prismaService, '$transaction') .mockResolvedValueOnce(repositoryResult); - const res: any = await service.findConnections( - '13f412e2-2749-462a-a10a-54f25e326641', + const res = await service.findConnections( -1, -1, 'trusted,complete,responded,invited', - '', + undefined, + '13f412e2-2749-462a-a10a-54f25e326641', ); + expect(res).toStrictEqual(result); }); }); @@ -387,6 +393,7 @@ describe('ConnectionsService', () => { multiUseInvitation: false, }, }; + const agent: any = { status: 200, message: 'Agent Data', @@ -394,17 +401,22 @@ describe('ConnectionsService', () => { service_endpoint: 'agent URL', }, }; + const result = serviceResult; + jest .spyOn(natsClient, 'getAgentByParticipantId') .mockResolvedValueOnce(agent); + jest .spyOn(restClientService, 'post') .mockResolvedValueOnce(serviceResult); + const res = await service.createInvitationURL( { autoAcceptConnection: true, alias: 'member' }, 'participantId', ); + expect(res).toStrictEqual(result); }); }); @@ -418,6 +430,7 @@ describe('ConnectionsService', () => { theirDid: 'Ax9xMqE89F9LStfGnTpDzg', theirLabel: 'sagar@getnada.com', }; + const agent: any = { status: 200, message: 'Agent Data', @@ -425,6 +438,7 @@ describe('ConnectionsService', () => { service_endpoint: 'agent URL', }, }; + const repositoryResult: any = { id: '52d499e0-f76a-4b25-9c2a-f357bf6b73be', connectionId: '7b821264-2ae3-4459-b45f-19fa975d91f7', @@ -439,12 +453,15 @@ describe('ConnectionsService', () => { }; const result = repositoryResult; + jest.spyOn(natsClient, 'getAgentByURL').mockResolvedValueOnce(agent); + jest .spyOn(prismaService.connection, 'create') .mockResolvedValueOnce(repositoryResult); const res = await service.createConnections(connectionObj); + expect(res).toStrictEqual(result); }); }); diff --git a/apps/connection-manager/src/connections/services/service.ts b/apps/connection-manager/src/connections/services/service.ts index 7c404f6..57f09b5 100644 --- a/apps/connection-manager/src/connections/services/service.ts +++ b/apps/connection-manager/src/connections/services/service.ts @@ -1,16 +1,18 @@ +import type ConnectionCreateInvitationDto from '../entities/connectionCreateInvitationDto.entity.js'; +import type ConnectionSubscriptionEndpointDto from '../entities/connectionSubscribeEndPoint.entity.js'; +import type ConnectionDto from '../entities/entity.js'; +import type { Connection, Prisma } from '@prisma/client'; + import { Injectable } from '@nestjs/common'; -import ConnectionDto from '@connections/entities/entity'; -import ConnectionRepository from '@connections/repository/connection.repository'; -import PrismaService from '@DB/prisma.service'; -import ConnectionCreateInvitationDto from '@connections/entities/connectionCreateInvitationDto.entity'; -import { Connection, Prisma } from '@prisma/client'; -import NatsClientService from '@src/client/nats.client'; -import pagination from '@utils/pagination'; -import logger from '@src/utils/logger'; -import ConnectionSubscriptionEndpointDto from '@connections/entities/connectionSubscribeEndPoint.entity'; -import RestClientService from '@src/client/rest.client'; import { ConfigService } from '@nestjs/config'; +import NatsClientService from '../../client/nats.client.js'; +import RestClientService from '../../client/rest.client.js'; +import PrismaService from '../../prisma/prisma.service.js'; +import logger from '../../utils/logger.js'; +import pagination from '../../utils/pagination.js'; +import ConnectionRepository from '../repository/connection.repository.js'; + @Injectable() export default class ConnectionsService { private connectionRepository: ConnectionRepository; @@ -74,8 +76,8 @@ export default class ConnectionsService { theirDid, ); return response; - } catch (error) { - logger.error(error.toString()); + } catch (error: unknown) { + logger.error(String(error)); return error; } } @@ -87,8 +89,8 @@ export default class ConnectionsService { connectionId, ); return response; - } catch (error) { - logger.error(error.toString()); + } catch (error: unknown) { + logger.error(String(error)); return error; } } @@ -135,11 +137,13 @@ export default class ConnectionsService { if (connectionId) { return this.connectionRepository.findByConnectionId(connectionId); } + if (participantDid) { return this.connectionRepository.findByConnectionByParticipantDID( participantDid, ); } + if (status) { const statuses: string[] = status.split(','); query.where = { status: { in: statuses } }; @@ -174,9 +178,8 @@ export default class ConnectionsService { let connectionDetails: Connection | null = null; if (connectionId) { - connectionDetails = await this.connectionRepository.findByConnectionId( - connectionId, - ); + connectionDetails = + await this.connectionRepository.findByConnectionId(connectionId); } if (did && !connectionDetails) { diff --git a/apps/connection-manager/src/health/health.controller.ts b/apps/connection-manager/src/health/health.controller.ts index a2391f4..9c3454b 100644 --- a/apps/connection-manager/src/health/health.controller.ts +++ b/apps/connection-manager/src/health/health.controller.ts @@ -1,7 +1,7 @@ -import { Controller, Get, Version, HttpStatus } from '@nestjs/common'; +import type ResponseType from '../common/response.js'; -import ResponseType from '@common/response'; -import {ApiOperation, ApiResponse} from '@nestjs/swagger'; +import { Controller, Get, HttpStatus, Version } from '@nestjs/common'; +import { ApiOperation, ApiResponse } from '@nestjs/swagger'; @Controller('health') export default class HealthController { @@ -11,7 +11,8 @@ export default class HealthController { @Get() @ApiOperation({ summary: 'Health check', - description: 'This call provides the capability to check the service is working and up. The call returns 200 Status Code and current server time in json body' + description: + 'This call provides the capability to check the service is working and up. The call returns 200 Status Code and current server time in json body', }) @ApiResponse({ status: HttpStatus.OK, diff --git a/apps/connection-manager/src/health/health.spec.ts b/apps/connection-manager/src/health/health.spec.ts index a7ecda9..05fa679 100644 --- a/apps/connection-manager/src/health/health.spec.ts +++ b/apps/connection-manager/src/health/health.spec.ts @@ -1,5 +1,8 @@ +import type { TestingModule } from '@nestjs/testing'; + import { HttpStatus } from '@nestjs/common'; -import { Test, TestingModule } from '@nestjs/testing'; +import { Test } from '@nestjs/testing'; + import HealthController from './health.controller'; describe('Health', () => { diff --git a/apps/connection-manager/src/main.ts b/apps/connection-manager/src/main.ts index 232e293..2624499 100644 --- a/apps/connection-manager/src/main.ts +++ b/apps/connection-manager/src/main.ts @@ -1,11 +1,12 @@ -import { HttpAdapterHost, NestFactory } from '@nestjs/core'; -import { ConfigService } from '@nestjs/config'; import { VersioningType } from '@nestjs/common'; +import { ConfigService } from '@nestjs/config'; +import { HttpAdapterHost, NestFactory } from '@nestjs/core'; +import type { MicroserviceOptions } from '@nestjs/microservices'; +import { Transport } from '@nestjs/microservices'; import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger'; -import { Transport, MicroserviceOptions } from '@nestjs/microservices'; -import AllExceptionsFilter from '@utils/exceptionsFilter'; -import AppModule from './app.module'; -import logger from './utils/logger'; +import AppModule from './app.module.js'; +import AllExceptionsFilter from './utils/exceptionsFilter.js'; +import logger from './utils/logger.js'; async function bootstrap() { const app = await NestFactory.create(AppModule); @@ -28,7 +29,7 @@ async function bootstrap() { .setTitle('Gaia-x Connection Manager API') .setDescription('API documentation for GAIA-X Connection Manager') .setVersion('1.0') - .addServer(`localhost:${configService.get('PORT')}`) + .addServer(`http://localhost:${configService.get('PORT')}`) .build(); const document = SwaggerModule.createDocument(app, swaggerConfig); diff --git a/apps/connection-manager/src/middleware/auth.middleware.ts b/apps/connection-manager/src/middleware/auth.middleware.ts index 66e0a50..2e9f788 100644 --- a/apps/connection-manager/src/middleware/auth.middleware.ts +++ b/apps/connection-manager/src/middleware/auth.middleware.ts @@ -1,21 +1,12 @@ -import { HttpStatus, Injectable, NestMiddleware } from '@nestjs/common'; -import { ConfigService } from '@nestjs/config'; -import logger from '@src/utils/logger'; -import { Request, Response, NextFunction } from 'express'; -// import { ClientCredentials } from 'simple-oauth2'; +import type { NestMiddleware } from '@nestjs/common'; +import type { NextFunction, Request, Response } from 'express'; -import * as jwt from 'jsonwebtoken'; -import jwksClient = require('jwks-rsa'); +import { HttpStatus, Injectable } from '@nestjs/common'; +import { ConfigService } from '@nestjs/config'; +import jwt from 'jsonwebtoken'; +import jwksClient from 'jwks-rsa'; -// interface IOAuthConfig { -// client: { -// id: string, -// secret: string -// }; -// auth: { -// tokenHost: string -// } -// } +import logger from '../utils/logger.js'; @Injectable() export class AuthMiddleware implements NestMiddleware { @@ -42,52 +33,10 @@ export class AuthMiddleware implements NestMiddleware { return; } - // ClientID string `envconfig:"OAUTH_CLIENT_ID"` - // ClientSecret string `envconfig:"OAUTH_CLIENT_SECRET"` - // TokenURL string `envconfig:"OAUTH_TOKEN_URL"` - - // const oauthConfig = { - // client: { - // id: this.configService.get('auth.clientId'), - // secret: this.configService.get('auth.clientSecret') - // }, - // auth: { - // tokenHost: this.configService.get('auth.tokenUrl') || 'https://api.oauth.com' - // } - // }; - - // async function getAccessToken(conf: IOAuthConfig) { - // const client = new ClientCredentials(conf); - // let accessToken: any; - - // const tokenParams = { - // scope: '<scope>', - // }; - - // try { - // accessToken = await client.getToken(tokenParams); - // } catch (error) { - // logger.error('Access Token error', error.message); - // } - - // return accessToken; - // } - - // let result = getAccessToken(oauthConfig); - - // if (!result) { - // res.json({ - // status: HttpStatus.UNAUTHORIZED, - // message: 'Unauthorized. Access token error.', - // data: undefined, - // }) - // return; - // } - - function getKey( + const getKey = ( header: jwt.JwtHeader, callback: jwt.SigningKeyCallback, - ): void { + ): void => { const jwksUri = this.configService.get('auth.tokenUrl') || ''; const client = jwksClient({ jwksUri, timeout: 30000 }); @@ -95,7 +44,7 @@ export class AuthMiddleware implements NestMiddleware { .getSigningKey(header.kid) .then((key) => callback(null, key.getPublicKey())) .catch(callback); - } + }; function verify(token: string): Promise<any> | undefined { return new Promise( diff --git a/apps/connection-manager/src/prisma/prisma.module.spec.ts b/apps/connection-manager/src/prisma/prisma.module.spec.ts index e557fe1..1f7b6e3 100644 --- a/apps/connection-manager/src/prisma/prisma.module.spec.ts +++ b/apps/connection-manager/src/prisma/prisma.module.spec.ts @@ -1,4 +1,4 @@ -import PrismaModule from './prisma.module'; +import PrismaModule from './prisma.module.js'; describe('Check if the module is working', () => { it('should be defined', () => { diff --git a/apps/connection-manager/src/prisma/prisma.module.ts b/apps/connection-manager/src/prisma/prisma.module.ts index f3b6aae..c0d718c 100644 --- a/apps/connection-manager/src/prisma/prisma.module.ts +++ b/apps/connection-manager/src/prisma/prisma.module.ts @@ -1,10 +1,8 @@ import { Module } from '@nestjs/common'; -import { ConfigModule } from '@nestjs/config'; -import PrismaService from './prisma.service'; + +import PrismaService from './prisma.service.js'; @Module({ - imports: [ConfigModule], - controllers: [], providers: [PrismaService], exports: [PrismaService], }) diff --git a/apps/connection-manager/src/prisma/prisma.service.ts b/apps/connection-manager/src/prisma/prisma.service.ts index 7d885d9..8adb0ec 100644 --- a/apps/connection-manager/src/prisma/prisma.service.ts +++ b/apps/connection-manager/src/prisma/prisma.service.ts @@ -1,4 +1,6 @@ -import { Injectable, OnModuleInit, OnModuleDestroy } from '@nestjs/common'; +import type { OnModuleDestroy, OnModuleInit } from '@nestjs/common'; + +import { Injectable } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { PrismaClient } from '@prisma/client'; @@ -8,18 +10,17 @@ export default class PrismaService implements OnModuleInit, OnModuleDestroy { constructor(private configService: ConfigService) { - super(); - } - - async onModuleInit() { - const prisma = new PrismaClient({ + super({ datasources: { db: { - url: this.configService.get('DATABASE_URL'), + url: configService.get('DATABASE_URL'), }, }, }); - await prisma.$connect(); + } + + async onModuleInit() { + await this.$connect(); } async onModuleDestroy() { diff --git a/apps/connection-manager/src/utils/exceptionsFilter.ts b/apps/connection-manager/src/utils/exceptionsFilter.ts index 647308c..ce1289b 100644 --- a/apps/connection-manager/src/utils/exceptionsFilter.ts +++ b/apps/connection-manager/src/utils/exceptionsFilter.ts @@ -1,13 +1,8 @@ -import { - ExceptionFilter, - Catch, - ArgumentsHost, - HttpException, - HttpStatus, - Logger, -} from '@nestjs/common'; +import type { ArgumentsHost, ExceptionFilter } from '@nestjs/common'; +import type { Request } from 'express'; + +import { Catch, HttpException, HttpStatus, Logger } from '@nestjs/common'; import { HttpAdapterHost } from '@nestjs/core'; -import { Request } from 'express'; import { Prisma } from '@prisma/client'; const { PrismaClientKnownRequestError, PrismaClientValidationError } = Prisma; @@ -16,6 +11,7 @@ const { PrismaClientKnownRequestError, PrismaClientValidationError } = Prisma; export default class AllExceptionsFilter implements ExceptionFilter { constructor(private readonly httpAdapterHost: HttpAdapterHost) {} + // eslint-disable-next-line @typescript-eslint/no-explicit-any catch(exception: any, host: ArgumentsHost): void { const { httpAdapter } = this.httpAdapterHost; @@ -71,7 +67,7 @@ export default class AllExceptionsFilter implements ExceptionFilter { Logger.error( 'Exception Filter :', message, - (exception as any).stack, + (exception as Error).stack, `${request.method} ${request.url}`, ); diff --git a/apps/connection-manager/src/utils/logger.spec.ts b/apps/connection-manager/src/utils/logger.spec.ts index 35eefc4..04293dc 100644 --- a/apps/connection-manager/src/utils/logger.spec.ts +++ b/apps/connection-manager/src/utils/logger.spec.ts @@ -1,10 +1,10 @@ -import * as fs from 'fs'; +import fs from 'node:fs'; describe('Logger', () => { it('should create a directory if not exists', async () => { jest.spyOn(fs, 'existsSync').mockImplementation(() => false); jest.spyOn(fs, 'mkdirSync').mockImplementation(() => 'mocked'); - const logger = await import('./logger'); + const logger = await import('./logger.js'); expect(logger).toBeDefined(); expect(fs.existsSync).toHaveBeenCalled(); expect(fs.mkdirSync).toHaveBeenCalled(); diff --git a/apps/connection-manager/src/utils/logger.ts b/apps/connection-manager/src/utils/logger.ts index 7e23cd5..8892609 100644 --- a/apps/connection-manager/src/utils/logger.ts +++ b/apps/connection-manager/src/utils/logger.ts @@ -1,35 +1,17 @@ -import { existsSync, mkdirSync } from 'fs'; -import winston, { Logger } from 'winston'; -import ecsFormat from '@elastic/ecs-winston-format'; -import { LoggerConfig } from '@common/constants'; +import type { Logger } from 'winston'; -if (!existsSync(LoggerConfig.lOG_DIR)) { - mkdirSync(LoggerConfig.lOG_DIR); -} +import { ecsFormat } from '@elastic/ecs-winston-format'; +import { mkdirSync } from 'node:fs'; +import winston from 'winston'; -// const esTransportOpts = { -// clientOpts: { node: process.env.ECSURL }, -// }; +import { LoggerConfig } from '../common/constants.js'; -// const esTransport = new ElasticsearchTransport(esTransportOpts); - -// esTransport.on('error', (error) => { -// console.error(error); -// }); +mkdirSync(LoggerConfig.lOG_DIR, { recursive: true }); const logger: Logger = winston.createLogger({ format: ecsFormat({ convertReqRes: true }), - transports: [ - new winston.transports.Console(), - - // new winston.transports.File({ - // // path to log file - // filename: LoggerConfig.FILE_PATH, - // }), - // // Path to Elasticsearch - // esTransport, - ], + transports: [new winston.transports.Console()], }); logger.on('error', (error) => { diff --git a/apps/connection-manager/src/utils/nats.ts b/apps/connection-manager/src/utils/nats.ts index af553d6..1847a23 100644 --- a/apps/connection-manager/src/utils/nats.ts +++ b/apps/connection-manager/src/utils/nats.ts @@ -1,4 +1,5 @@ -import { connect, NatsConnection, StringCodec } from 'nats'; +import type { NatsConnection } from 'nats'; +import { connect, StringCodec } from 'nats'; const sc = StringCodec(); @@ -22,7 +23,10 @@ export default class Nats { } } - public static async subscribe(subject: string, cb: (...args: any[]) => any) { + public static async subscribe( + subject: string, + cb: (...args: unknown[]) => unknown, + ) { if (this.nc) { const sub = this.nc.subscribe(subject); (async () => { diff --git a/apps/connection-manager/src/utils/pagination.spec.ts b/apps/connection-manager/src/utils/pagination.spec.ts index a75d3bb..e517f67 100644 --- a/apps/connection-manager/src/utils/pagination.spec.ts +++ b/apps/connection-manager/src/utils/pagination.spec.ts @@ -1,4 +1,4 @@ -import pagination from './pagination'; +import pagination from './pagination.js'; describe('Check if the module is working', () => { it('should be defined', () => { @@ -6,7 +6,7 @@ describe('Check if the module is working', () => { }); it('should be return default value', () => { - const result = { skip: 0, take: 10 }; + const result = { skip: 0, take: 1000 }; expect(pagination(0, 0)).toStrictEqual(result); }); diff --git a/apps/connection-manager/test/app.e2e-spec.ts b/apps/connection-manager/test/app.e2e-spec.ts index c9f4c56..762e163 100644 --- a/apps/connection-manager/test/app.e2e-spec.ts +++ b/apps/connection-manager/test/app.e2e-spec.ts @@ -1,7 +1,8 @@ -import { Test, TestingModule } from '@nestjs/testing'; +import { afterEach, beforeEach, describe, it } from '@jest/globals'; import { INestApplication } from '@nestjs/common'; -import * as request from 'supertest'; -import AppModule from '@src/app.module'; +import { Test, TestingModule } from '@nestjs/testing'; +import request from 'supertest'; +import AppModule from '../src/app.module.js'; describe('AppController (e2e)', () => { let app: INestApplication; @@ -15,6 +16,10 @@ describe('AppController (e2e)', () => { await app.init(); }); - it('/ (GET)', () => - request(app.getHttpServer()).get('/').expect(200).expect('Hello World!')); + afterEach(async () => { + await app.close(); + }); + + it('/v1/health (GET)', () => + request(app.getHttpServer()).get('/health').expect(200)); }); diff --git a/apps/connection-manager/test/jest-e2e.json b/apps/connection-manager/test/jest-e2e.json deleted file mode 100644 index e9d912f..0000000 --- a/apps/connection-manager/test/jest-e2e.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "moduleFileExtensions": ["js", "json", "ts"], - "rootDir": ".", - "testEnvironment": "node", - "testRegex": ".e2e-spec.ts$", - "transform": { - "^.+\\.(t|j)s$": "ts-jest" - } -} diff --git a/apps/connection-manager/test/jest.config.js b/apps/connection-manager/test/jest.config.js new file mode 100644 index 0000000..c2b3ddf --- /dev/null +++ b/apps/connection-manager/test/jest.config.js @@ -0,0 +1,9 @@ +/** @type {import('jest').Config} */ + +import config from '../jest.config.js'; + +export default { + ...config, + rootDir: '.', + testRegex: '.*\\.e2e-spec\\.ts$', +}; diff --git a/apps/connection-manager/tsconfig.json b/apps/connection-manager/tsconfig.json index eafedc3..9329bd9 100644 --- a/apps/connection-manager/tsconfig.json +++ b/apps/connection-manager/tsconfig.json @@ -1,34 +1,18 @@ { + "extends": "../../tsconfig.json", + "compilerOptions": { - "esModuleInterop": true, - "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, - "skipLibCheck": true, - "strictPropertyInitialization": false, - "module": "commonjs", + "composite": true, + "removeComments": false, "declaration": true, - "removeComments": true, - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "target": "es6", "sourceMap": true, + + "incremental": true, + "outDir": "./dist", "baseUrl": "./", - "incremental": true, - "strictNullChecks": true, - "paths": { - "@src/*": ["src/*"], - "@config/*":["config/*"], - "@utils/*" :["src/utils/*"], - "@common/*":["src/common/*"], - "@connections/*":["src/connections/*"], - "@health/*":["src/health/*"], - "@DB/*":["src/prisma/*"] - } + "rootDir": "./src" }, - "include": [ - "**/*.ts", - "src", - "config", - ], + "include": ["src"], "exclude": ["node_modules", "./dist/**/*"] -} \ No newline at end of file +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6e8912b..742ee92 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,7 +27,7 @@ importers: version: 10.2.8(@nestjs/common@10.2.8)(@nestjs/microservices@10.2.8)(@nestjs/platform-express@10.2.8)(reflect-metadata@0.1.13)(rxjs@7.8.1) '@nestjs/mapped-types': specifier: ^2.0.3 - version: 2.0.3(@nestjs/common@10.2.8)(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13) + version: 2.0.4(@nestjs/common@10.2.8)(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13) '@nestjs/microservices': specifier: ^10.2.8 version: 10.2.8(@nestjs/common@10.2.8)(@nestjs/core@10.2.8)(nats@2.18.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) @@ -36,7 +36,7 @@ importers: version: 10.2.8(@nestjs/common@10.2.8)(@nestjs/core@10.2.8) '@nestjs/swagger': specifier: ^7.1.15 - version: 7.1.15(@nestjs/common@10.2.8)(@nestjs/core@10.2.8)(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13) + version: 7.1.16(@nestjs/common@10.2.8)(@nestjs/core@10.2.8)(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13) '@nestjs/terminus': specifier: ^10.1.1 version: 10.1.1(@nestjs/axios@3.0.1)(@nestjs/common@10.2.8)(@nestjs/core@10.2.8)(@nestjs/microservices@10.2.8)(@prisma/client@5.6.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) @@ -174,168 +174,168 @@ importers: apps/connection-manager: dependencies: '@elastic/ecs-winston-format': - specifier: ^1.3.1 - version: 1.3.1 + specifier: ^1.5.0 + version: 1.5.0 '@nestjs/axios': - specifier: ^0.0.5 - version: 0.0.5(@nestjs/common@8.4.7)(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@nestjs/cli': - specifier: ^8.0.0 - version: 8.2.8 + specifier: ^3.0.1 + version: 3.0.1(@nestjs/common@10.2.8)(axios@1.6.2)(reflect-metadata@0.1.13)(rxjs@7.8.1) '@nestjs/common': - specifier: ^8.0.0 - version: 8.4.7(class-transformer@0.5.1)(class-validator@0.13.2)(reflect-metadata@0.1.13)(rxjs@7.8.1) + specifier: ^10.2.8 + version: 10.2.8(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) '@nestjs/config': - specifier: ^1.1.6 - version: 1.2.1(@nestjs/common@8.4.7)(reflect-metadata@0.1.13)(rxjs@7.8.1) + specifier: ^3.1.1 + version: 3.1.1(@nestjs/common@10.2.8)(reflect-metadata@0.1.13) '@nestjs/core': - specifier: ^8.0.0 - version: 8.4.7(@nestjs/common@8.4.7)(@nestjs/microservices@8.4.7)(@nestjs/platform-express@8.4.7)(reflect-metadata@0.1.13)(rxjs@7.8.1) + specifier: ^10.2.8 + version: 10.2.8(@nestjs/common@10.2.8)(@nestjs/microservices@10.2.8)(@nestjs/platform-express@10.2.8)(reflect-metadata@0.1.13)(rxjs@7.8.1) '@nestjs/mapped-types': - specifier: '*' - version: 2.0.2(@nestjs/common@8.4.7)(class-transformer@0.5.1)(class-validator@0.13.2)(reflect-metadata@0.1.13) + specifier: ^2.0.4 + version: 2.0.4(@nestjs/common@10.2.8)(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13) '@nestjs/microservices': - specifier: ^8.2.6 - version: 8.4.7(@nestjs/common@8.4.7)(@nestjs/core@8.4.7)(nats@2.17.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + specifier: ^10.2.8 + version: 10.2.8(@nestjs/common@10.2.8)(@nestjs/core@10.2.8)(nats@2.18.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) '@nestjs/platform-express': - specifier: ^8.0.0 - version: 8.4.7(@nestjs/common@8.4.7)(@nestjs/core@8.4.7) + specifier: ^10.2.8 + version: 10.2.8(@nestjs/common@10.2.8)(@nestjs/core@10.2.8) '@nestjs/schedule': - specifier: ^1.0.2 - version: 1.1.0(@nestjs/common@8.4.7)(@nestjs/core@8.4.7)(reflect-metadata@0.1.13) - '@nestjs/schematics': - specifier: ^8.0.0 - version: 8.0.11(typescript@4.9.5) + specifier: ^4.0.0 + version: 4.0.0(@nestjs/common@10.2.8)(@nestjs/core@10.2.8)(reflect-metadata@0.1.13) '@nestjs/swagger': - specifier: ^5.2.0 - version: 5.2.1(@nestjs/common@8.4.7)(@nestjs/core@8.4.7)(class-transformer@0.5.1)(class-validator@0.13.2)(reflect-metadata@0.1.13)(swagger-ui-express@4.6.3) + specifier: ^7.1.16 + version: 7.1.16(@nestjs/common@10.2.8)(@nestjs/core@10.2.8)(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13) '@nestjs/terminus': - specifier: ^8.0.4 - version: 8.1.1(@nestjs/common@8.4.7)(@nestjs/core@8.4.7)(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@nestjs/testing': - specifier: ^8.0.0 - version: 8.4.7(@nestjs/common@8.4.7)(@nestjs/core@8.4.7)(@nestjs/microservices@8.4.7)(@nestjs/platform-express@8.4.7) + specifier: ^10.1.1 + version: 10.1.1(@nestjs/axios@3.0.1)(@nestjs/common@10.2.8)(@nestjs/core@10.2.8)(@nestjs/microservices@10.2.8)(@prisma/client@5.6.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) '@prisma/client': - specifier: ^3.15.2 - version: 3.15.2(prisma@3.15.2) - '@types/node': - specifier: ^16.0.0 - version: 16.18.57 + specifier: ^5.6.0 + version: 5.6.0(prisma@5.6.0) class-validator: - specifier: ^0.13.2 - version: 0.13.2 - express: - specifier: ^4.17.3 - version: 4.18.2 + specifier: ^0.14.0 + version: 0.14.0 joi: - specifier: ^17.6.0 + specifier: ^17.11.0 version: 17.11.0 jsonwebtoken: - specifier: ^8.5.1 - version: 8.5.1 + specifier: ^9.0.2 + version: 9.0.2 jwks-rsa: - specifier: ^3.0.0 + specifier: ^3.1.0 version: 3.1.0 moment: - specifier: ^2.29.1 + specifier: ^2.29.4 version: 2.29.4 nats: - specifier: ^2.6.0 - version: 2.17.0 - prisma: - specifier: ^3.15.2 - version: 3.15.2 + specifier: ^2.18.0 + version: 2.18.0 reflect-metadata: specifier: ^0.1.13 version: 0.1.13 rxjs: - specifier: ^7.2.0 + specifier: ^7.8.1 version: 7.8.1 - simple-oauth2: - specifier: ^5.0.0 - version: 5.0.0 winston: - specifier: ^3.6.0 - version: 3.10.0 + specifier: ^3.11.0 + version: 3.11.0 winston-elasticsearch: - specifier: ^0.16.1 - version: 0.16.1 + specifier: ^0.17.4 + version: 0.17.4 devDependencies: + '@jest/globals': + specifier: ^29.7.0 + version: 29.7.0 + '@nestjs/cli': + specifier: ^10.2.1 + version: 10.2.1(@swc/cli@0.1.62)(@swc/core@1.3.96) + '@nestjs/schematics': + specifier: ^10.0.3 + version: 10.0.3(chokidar@3.5.3)(typescript@5.2.2) + '@nestjs/testing': + specifier: ^10.2.8 + version: 10.2.8(@nestjs/common@10.2.8)(@nestjs/core@10.2.8)(@nestjs/microservices@10.2.8)(@nestjs/platform-express@10.2.8) + '@swc/cli': + specifier: ^0.1.62 + version: 0.1.62(@swc/core@1.3.96) + '@swc/core': + specifier: ^1.3.96 + version: 1.3.96 + '@swc/jest': + specifier: ^0.2.29 + version: 0.2.29(@swc/core@1.3.96) '@types/express': - specifier: ^4.17.13 - version: 4.17.18 + specifier: ^4.17.21 + version: 4.17.21 '@types/jest': specifier: 27.0.2 version: 27.0.2 '@types/jsonwebtoken': - specifier: ^8.5.9 - version: 8.5.9 + specifier: ^9.0.5 + version: 9.0.5 + '@types/node': + specifier: ^20.9.0 + version: 20.9.0 '@types/simple-oauth2': - specifier: ^4.1.1 - version: 4.1.3 + specifier: ^5.0.7 + version: 5.0.7 '@types/supertest': - specifier: ^2.0.11 - version: 2.0.14 + specifier: ^2.0.16 + version: 2.0.16 '@typescript-eslint/eslint-plugin': - specifier: ^5.14.0 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.50.0)(typescript@4.9.5) + specifier: ^6.11.0 + version: 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0)(typescript@5.2.2) '@typescript-eslint/parser': - specifier: ^5.14.0 - version: 5.62.0(eslint@8.50.0)(typescript@4.9.5) + specifier: ^6.11.0 + version: 6.11.0(eslint@8.53.0)(typescript@5.2.2) dotenv-cli: - specifier: ^4.1.1 - version: 4.1.1 + specifier: ^7.3.0 + version: 7.3.0 eslint: - specifier: ^8.0.1 - version: 8.50.0 - eslint-config-airbnb-typescript: - specifier: ^16.1.0 - version: 16.2.0(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.1)(eslint@8.50.0) + specifier: ^8.53.0 + version: 8.53.0 eslint-config-prettier: - specifier: ^8.3.0 - version: 8.10.0(eslint@8.50.0) + specifier: ^9.0.0 + version: 9.0.0(eslint@8.53.0) eslint-plugin-import: - specifier: ^2.26.0 - version: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.50.0) + specifier: ^2.29.0 + version: 2.29.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0) + eslint-plugin-jest: + specifier: ^27.6.0 + version: 27.6.0(@typescript-eslint/eslint-plugin@6.11.0)(eslint@8.53.0)(jest@29.7.0)(typescript@5.2.2) eslint-plugin-prettier: - specifier: ^4.0.0 - version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.50.0)(prettier@2.8.8) + specifier: ^5.0.1 + version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@3.1.0) + eslint-plugin-workspaces: + specifier: ^0.9.0 + version: 0.9.0 husky: - specifier: ^7.0.4 - version: 7.0.4 + specifier: ^8.0.3 + version: 8.0.3 jest: - specifier: ^27.2.5 - version: 27.5.1(ts-node@10.9.1) + specifier: ^29.7.0 + version: 29.7.0(@types/node@20.9.0)(ts-node@10.9.1) node-mocks-http: - specifier: ^1.11.0 + specifier: ^1.13.0 version: 1.13.0 prettier: - specifier: ^2.3.2 - version: 2.8.8 + specifier: ^3.1.0 + version: 3.1.0 + prisma: + specifier: ^5.6.0 + version: 5.6.0 source-map-support: - specifier: ^0.5.20 + specifier: ^0.5.21 version: 0.5.21 supertest: - specifier: ^6.1.3 + specifier: ^6.3.3 version: 6.3.3 swagger-ui-express: - specifier: ^4.3.0 - version: 4.6.3(express@4.18.2) - ts-jest: - specifier: ^27.0.3 - version: 27.1.5(@babel/core@7.23.0)(@types/jest@27.0.2)(jest@27.5.1)(typescript@4.9.5) - ts-loader: - specifier: ^9.2.3 - version: 9.4.4(typescript@4.9.5)(webpack@5.89.0) + specifier: ^5.0.0 + version: 5.0.0(express@4.18.2) ts-node: - specifier: ^10.0.0 - version: 10.9.1(@types/node@16.18.57)(typescript@4.9.5) - tsconfig-paths: - specifier: ^3.10.1 - version: 3.14.2 + specifier: ^10.9.1 + version: 10.9.1(@swc/core@1.3.96)(@types/node@20.9.0)(typescript@5.2.2) typescript: - specifier: ^4.3.5 - version: 4.9.5 + specifier: ^5.2.2 + version: 5.2.2 apps/principal-manager: dependencies: @@ -510,7 +510,7 @@ importers: dependencies: '@elastic/ecs-winston-format': specifier: ^1.3.1 - version: 1.3.1 + version: 1.5.0 '@nestjs/axios': specifier: 0.0.5 version: 0.0.5(@nestjs/common@8.4.7)(reflect-metadata@0.1.13)(rxjs@7.8.1) @@ -525,10 +525,10 @@ importers: version: 8.4.7(@nestjs/common@8.4.7)(@nestjs/microservices@8.4.7)(@nestjs/platform-express@8.4.7)(reflect-metadata@0.1.13)(rxjs@7.8.1) '@nestjs/mapped-types': specifier: '*' - version: 2.0.2(@nestjs/common@8.4.7)(class-transformer@0.5.1)(class-validator@0.13.2)(reflect-metadata@0.1.13) + version: 2.0.4(@nestjs/common@8.4.7)(class-validator@0.13.2)(reflect-metadata@0.1.13) '@nestjs/microservices': specifier: ^8.2.6 - version: 8.4.7(@nestjs/common@8.4.7)(@nestjs/core@8.4.7)(nats@2.17.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + version: 8.4.7(@nestjs/common@8.4.7)(@nestjs/core@8.4.7)(nats@2.18.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) '@nestjs/platform-express': specifier: ^8.0.0 version: 8.4.7(@nestjs/common@8.4.7)(@nestjs/core@8.4.7) @@ -543,7 +543,7 @@ importers: version: 3.15.2(prisma@3.15.2) '@types/express': specifier: ^4.17.13 - version: 4.17.18 + version: 4.17.21 '@types/jest': specifier: 27.0.2 version: 27.0.2 @@ -576,7 +576,7 @@ importers: version: 2.29.4 nats: specifier: ^2.6.0 - version: 2.17.0 + version: 2.18.0 pg: specifier: ^8.7.3 version: 8.11.3 @@ -591,7 +591,7 @@ importers: version: 7.8.1 winston: specifier: ^3.6.0 - version: 3.10.0 + version: 3.11.0 winston-elasticsearch: specifier: ^0.16.1 version: 0.16.1 @@ -607,31 +607,31 @@ importers: version: 8.4.7(@nestjs/common@8.4.7)(@nestjs/core@8.4.7)(@nestjs/microservices@8.4.7)(@nestjs/platform-express@8.4.7) '@types/supertest': specifier: ^2.0.11 - version: 2.0.14 + version: 2.0.16 '@typescript-eslint/eslint-plugin': specifier: ^5.0.0 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.50.0)(typescript@4.9.5) + version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.53.0)(typescript@4.9.5) '@typescript-eslint/parser': specifier: ^5.0.0 - version: 5.62.0(eslint@8.50.0)(typescript@4.9.5) + version: 5.62.0(eslint@8.53.0)(typescript@4.9.5) dotenv-cli: specifier: ^4.1.1 version: 4.1.1 eslint: specifier: ^8.0.1 - version: 8.50.0 + version: 8.53.0 eslint-config-airbnb-typescript: specifier: ^16.1.0 - version: 16.2.0(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.1)(eslint@8.50.0) + version: 16.2.0(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.29.0)(eslint@8.53.0) eslint-config-prettier: specifier: ^8.3.0 - version: 8.10.0(eslint@8.50.0) + version: 8.10.0(eslint@8.53.0) eslint-plugin-import: specifier: ^2.25.4 - version: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.50.0) + version: 2.29.0(@typescript-eslint/parser@5.62.0)(eslint@8.53.0) eslint-plugin-prettier: specifier: ^4.0.0 - version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.50.0)(prettier@2.8.8) + version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.53.0)(prettier@2.8.8) husky: specifier: ^7.0.4 version: 7.0.4 @@ -869,6 +869,7 @@ packages: magic-string: 0.25.7 rxjs: 6.6.7 source-map: 0.7.3 + dev: true /@angular-devkit/core@13.3.6(chokidar@3.5.3): resolution: {integrity: sha512-ZmD586B+RnM2CG5+jbXh2NVfIydTc/yKSjppYDDOv4I530YBm6vpfZMwClpiNk6XLbMv7KqX4Tlr4wfxlPYYbA==} @@ -886,6 +887,7 @@ packages: magic-string: 0.25.7 rxjs: 6.6.7 source-map: 0.7.3 + dev: true /@angular-devkit/core@16.2.8(chokidar@3.5.3): resolution: {integrity: sha512-PTGozYvh1Bin5lB15PwcXa26Ayd17bWGLS3H8Rs0s+04mUDvfNofmweaX1LgumWWy3nCUTDuwHxX10M3G0wE2g==} @@ -918,6 +920,7 @@ packages: symbol-observable: 4.0.0 transitivePeerDependencies: - chokidar + dev: true /@angular-devkit/schematics-cli@16.2.8(chokidar@3.5.3): resolution: {integrity: sha512-EXURJCzWTVYCipiTT4vxQQOrF63asOUDbeOy3OtiSh7EwIUvxm3BPG6hquJqngEnI/N6bA75NJ1fBhU6Hrh7eA==} @@ -945,6 +948,7 @@ packages: rxjs: 6.6.7 transitivePeerDependencies: - chokidar + dev: true /@angular-devkit/schematics@13.3.6(chokidar@3.5.3): resolution: {integrity: sha512-yLh5xc92C/FiaAp27coPiKWpSUmwoXF7vMxbJYJTyOXlt0mUITAEAwtrZQNr4yAxW/yvgTdyg7PhXaveQNTUuQ==} @@ -957,6 +961,7 @@ packages: rxjs: 6.6.7 transitivePeerDependencies: - chokidar + dev: true /@angular-devkit/schematics@16.2.8(chokidar@3.5.3): resolution: {integrity: sha512-MBiKZOlR9/YMdflALr7/7w/BGAfo/BGTrlkqsIB6rDWV1dYiCgxI+033HsiNssLS6RQyCFx/e7JA2aBBzu9zEg==} @@ -1048,6 +1053,7 @@ packages: dependencies: '@babel/highlight': 7.22.20 chalk: 2.4.2 + dev: true /@babel/compat-data@7.22.20: resolution: {integrity: sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==} @@ -1166,6 +1172,7 @@ packages: /@babel/helper-validator-identifier@7.22.20: resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} + dev: true /@babel/helper-validator-option@7.22.15: resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} @@ -1190,6 +1197,7 @@ packages: '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 + dev: true /@babel/parser@7.23.0: resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} @@ -1543,24 +1551,6 @@ packages: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} dev: false - /@hapi/boom@10.0.1: - resolution: {integrity: sha512-ERcCZaEjdH3OgSJlyjVk8pHIFeus91CjKP3v+MpgBNp5IvGzP2l/bRiD78nqYcKPaZdbKkK5vDBVPd2ohHBlsA==} - dependencies: - '@hapi/hoek': 11.0.2 - dev: false - - /@hapi/bourne@3.0.0: - resolution: {integrity: sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w==} - dev: false - - /@hapi/hoek@10.0.1: - resolution: {integrity: sha512-CvlW7jmOhWzuqOqiJQ3rQVLMcREh0eel4IBnxDx2FAcK8g7qoJRQK4L1CPBASoCY6y8e6zuCy3f2g+HWdkzcMw==} - dev: false - - /@hapi/hoek@11.0.2: - resolution: {integrity: sha512-aKmlCO57XFZ26wso4rJsW4oTUnrgTFw2jh3io7CAtO9w4UltBNwRXvXIVzzyfkaaLRo3nluP/19msA8vDUUuKw==} - dev: false - /@hapi/hoek@9.3.0: resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} dev: false @@ -1571,14 +1561,6 @@ packages: '@hapi/hoek': 9.3.0 dev: false - /@hapi/wreck@18.0.1: - resolution: {integrity: sha512-OLHER70+rZxvDl75xq3xXOfd3e8XIvz8fWY0dqg92UvhZ29zo24vQgfqgHSYhB5ZiuFpSLeriOisAlxAo/1jWg==} - dependencies: - '@hapi/boom': 10.0.1 - '@hapi/bourne': 3.0.0 - '@hapi/hoek': 11.0.2 - dev: false - /@humanwhocodes/config-array@0.11.11: resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==} engines: {node: '>=10.10.0'} @@ -1647,7 +1629,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 16.18.57 + '@types/node': 20.9.0 chalk: 4.1.2 jest-message-util: 27.5.1 jest-util: 27.5.1 @@ -1680,7 +1662,7 @@ packages: '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 16.18.57 + '@types/node': 20.9.0 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.8.1 @@ -1767,7 +1749,7 @@ packages: dependencies: '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 16.18.57 + '@types/node': 20.9.0 jest-mock: 27.5.1 dev: true @@ -1804,7 +1786,7 @@ packages: dependencies: '@jest/types': 27.5.1 '@sinonjs/fake-timers': 8.1.0 - '@types/node': 16.18.57 + '@types/node': 20.9.0 jest-message-util: 27.5.1 jest-mock: 27.5.1 jest-util: 27.5.1 @@ -1857,7 +1839,7 @@ packages: '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 16.18.57 + '@types/node': 20.9.0 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -2061,29 +2043,35 @@ packages: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.19 + dev: true /@jridgewell/resolve-uri@3.1.1: resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} engines: {node: '>=6.0.0'} + dev: true /@jridgewell/set-array@1.1.2: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} + dev: true /@jridgewell/source-map@0.3.5: resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} dependencies: '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.19 + dev: true /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true /@jridgewell/trace-mapping@0.3.19: resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} dependencies: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 + dev: true /@jridgewell/trace-mapping@0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} @@ -2235,6 +2223,7 @@ packages: - uglify-js - vue-template-compiler - webpack-cli + dev: true /@nestjs/common@10.2.8(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1): resolution: {integrity: sha512-rmpwcdvq2IWMmsUVP8rsdKub6uDWk7dwCYo0aif50JTwcvcxzaP3iKVFKoSgvp0RKYu8h15+/AEOfaInmPpl0Q==} @@ -2436,6 +2425,43 @@ packages: reflect-metadata: 0.1.13 dev: false + /@nestjs/mapped-types@2.0.4(@nestjs/common@10.2.8)(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13): + resolution: {integrity: sha512-xl+gUSp0B+ln1VSNoUftlglk8dfpUes3DHGxKZ5knuBxS5g2H/8p9/DSBOYWUfO5f4u9s6ffBPZ71WO+tbe5SA==} + peerDependencies: + '@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0 + class-transformer: ^0.4.0 || ^0.5.0 + class-validator: ^0.13.0 || ^0.14.0 + reflect-metadata: ^0.1.12 + peerDependenciesMeta: + class-transformer: + optional: true + class-validator: + optional: true + dependencies: + '@nestjs/common': 10.2.8(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + class-transformer: 0.5.1 + class-validator: 0.14.0 + reflect-metadata: 0.1.13 + dev: false + + /@nestjs/mapped-types@2.0.4(@nestjs/common@8.4.7)(class-validator@0.13.2)(reflect-metadata@0.1.13): + resolution: {integrity: sha512-xl+gUSp0B+ln1VSNoUftlglk8dfpUes3DHGxKZ5knuBxS5g2H/8p9/DSBOYWUfO5f4u9s6ffBPZ71WO+tbe5SA==} + peerDependencies: + '@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0 + class-transformer: ^0.4.0 || ^0.5.0 + class-validator: ^0.13.0 || ^0.14.0 + reflect-metadata: ^0.1.12 + peerDependenciesMeta: + class-transformer: + optional: true + class-validator: + optional: true + dependencies: + '@nestjs/common': 8.4.7(class-transformer@0.5.1)(class-validator@0.13.2)(reflect-metadata@0.1.13)(rxjs@7.8.1) + class-validator: 0.13.2 + reflect-metadata: 0.1.13 + dev: false + /@nestjs/microservices@10.2.8(@nestjs/common@10.2.8)(@nestjs/core@10.2.8)(nats@2.18.0)(reflect-metadata@0.1.13)(rxjs@7.8.1): resolution: {integrity: sha512-zfrD7hgN3ygrjicASQUVdnsh3V7vTmhZfttZ7ZNjihwqEoweJFgWmqKkpAfbCrIP7z19gT4JQ8hO4W0Alwdt0w==} peerDependencies: @@ -2478,9 +2504,53 @@ packages: nats: 2.18.0 reflect-metadata: 0.1.13 rxjs: 7.8.1 - tslib: 2.6.2 + tslib: 2.6.2 + + /@nestjs/microservices@8.4.7(@nestjs/common@8.4.7)(@nestjs/core@8.4.7)(nats@2.17.0)(reflect-metadata@0.1.13)(rxjs@7.8.1): + resolution: {integrity: sha512-JZX29tBWbbPa+Q06QcCbwKTyEsOFHAPrxgfEkRNwoaiEqqCsITT9w2n5bcz3vlUurdpy5dIgX3/almbitghbKg==} + peerDependencies: + '@grpc/grpc-js': '*' + '@nestjs/common': ^8.0.0 + '@nestjs/core': ^8.0.0 + '@nestjs/websockets': ^8.0.0 + amqp-connection-manager: '*' + amqplib: '*' + cache-manager: '*' + kafkajs: '*' + mqtt: '*' + nats: '*' + redis: '*' + reflect-metadata: ^0.1.12 + rxjs: ^7.1.0 + peerDependenciesMeta: + '@grpc/grpc-js': + optional: true + '@nestjs/websockets': + optional: true + amqp-connection-manager: + optional: true + amqplib: + optional: true + cache-manager: + optional: true + kafkajs: + optional: true + mqtt: + optional: true + nats: + optional: true + redis: + optional: true + dependencies: + '@nestjs/common': 8.4.7(class-transformer@0.5.1)(class-validator@0.13.2)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/core': 8.4.7(@nestjs/common@8.4.7)(@nestjs/microservices@8.4.7)(@nestjs/platform-express@8.4.7)(reflect-metadata@0.1.13)(rxjs@7.8.1) + iterare: 1.2.1 + nats: 2.17.0 + reflect-metadata: 0.1.13 + rxjs: 7.8.1 + tslib: 2.4.0 - /@nestjs/microservices@8.4.7(@nestjs/common@8.4.7)(@nestjs/core@8.4.7)(nats@2.17.0)(reflect-metadata@0.1.13)(rxjs@7.8.1): + /@nestjs/microservices@8.4.7(@nestjs/common@8.4.7)(@nestjs/core@8.4.7)(nats@2.18.0)(reflect-metadata@0.1.13)(rxjs@7.8.1): resolution: {integrity: sha512-JZX29tBWbbPa+Q06QcCbwKTyEsOFHAPrxgfEkRNwoaiEqqCsITT9w2n5bcz3vlUurdpy5dIgX3/almbitghbKg==} peerDependencies: '@grpc/grpc-js': '*' @@ -2519,10 +2589,11 @@ packages: '@nestjs/common': 8.4.7(class-transformer@0.5.1)(class-validator@0.13.2)(reflect-metadata@0.1.13)(rxjs@7.8.1) '@nestjs/core': 8.4.7(@nestjs/common@8.4.7)(@nestjs/microservices@8.4.7)(@nestjs/platform-express@8.4.7)(reflect-metadata@0.1.13)(rxjs@7.8.1) iterare: 1.2.1 - nats: 2.17.0 + nats: 2.18.0 reflect-metadata: 0.1.13 rxjs: 7.8.1 tslib: 2.4.0 + dev: false /@nestjs/platform-express@10.2.8(@nestjs/common@10.2.8)(@nestjs/core@10.2.8): resolution: {integrity: sha512-WoSSVtwIRc5AdGMHWVzWZK4JZLT0f4o2xW8P9gQvcX+omL8W1kXCfY8GQYXNBG84XmBNYH8r0FtC8oMe/lH5NQ==} @@ -2570,6 +2641,20 @@ packages: uuid: 8.3.2 dev: false + /@nestjs/schedule@4.0.0(@nestjs/common@10.2.8)(@nestjs/core@10.2.8)(reflect-metadata@0.1.13): + resolution: {integrity: sha512-zz4h54m/F/1qyQKvMJCRphmuwGqJltDAkFxUXCVqJBXEs5kbPt93Pza3heCQOcMH22MZNhGlc9DmDMLXVHmgVQ==} + peerDependencies: + '@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0 + '@nestjs/core': ^8.0.0 || ^9.0.0 || ^10.0.0 + reflect-metadata: ^0.1.12 + dependencies: + '@nestjs/common': 10.2.8(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/core': 10.2.8(@nestjs/common@10.2.8)(@nestjs/microservices@10.2.8)(@nestjs/platform-express@10.2.8)(reflect-metadata@0.1.13)(rxjs@7.8.1) + cron: 3.1.3 + reflect-metadata: 0.1.13 + uuid: 9.0.1 + dev: false + /@nestjs/schematics@10.0.3(chokidar@3.5.3)(typescript@5.2.2): resolution: {integrity: sha512-2BRujK0GqGQ7j1Zpz+obVfskDnnOeVKt5aXoSaVngKo8Oczy8uYCY+R547TQB+Kf35epdfFER2pVnQrX3/It5A==} peerDependencies: @@ -2598,6 +2683,7 @@ packages: typescript: 4.7.4 transitivePeerDependencies: - chokidar + dev: true /@nestjs/schematics@8.0.11(typescript@4.9.5): resolution: {integrity: sha512-W/WzaxgH5aE01AiIErE9QrQJ73VR/M/8p8pq0LZmjmNcjZqU5kQyOWUxZg13WYfSpJdOa62t6TZRtFDmgZPoIg==} @@ -2612,6 +2698,7 @@ packages: typescript: 4.9.5 transitivePeerDependencies: - chokidar + dev: true /@nestjs/swagger@5.2.1(@nestjs/common@8.4.7)(@nestjs/core@8.4.7)(class-transformer@0.5.1)(class-validator@0.13.2)(reflect-metadata@0.1.13)(swagger-ui-express@4.6.3): resolution: {integrity: sha512-7dNa08WCnTsW/oAk3Ujde+z64JMfNm19DhpXasFR8oJp/9pggYAbYU927HpA+GJsSFJX6adjIRZsCKUqaGWznw==} @@ -2639,8 +2726,8 @@ packages: - class-validator dev: false - /@nestjs/swagger@7.1.15(@nestjs/common@10.2.8)(@nestjs/core@10.2.8)(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13): - resolution: {integrity: sha512-ZaAO90R9MQXk4iLQLijIH6jrsllkUSYoh0Su6DECGgu8Y4Q/9LfdESwsZ9nmzr/48aLOu+wrv+cdI5Wr6fLKJw==} + /@nestjs/swagger@7.1.16(@nestjs/common@10.2.8)(@nestjs/core@10.2.8)(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13): + resolution: {integrity: sha512-f9KBk/BX9MUKPTj7tQNYJ124wV/jP5W2lwWHLGwe/4qQXixuDOo39zP55HIJ44LE7S04B7BOeUOo9GBJD/vRcw==} peerDependencies: '@fastify/static': ^6.0.0 '@nestjs/common': ^9.0.0 || ^10.0.0 @@ -2780,6 +2867,7 @@ packages: '@nestjs/microservices': 8.4.7(@nestjs/common@8.4.7)(@nestjs/core@8.4.7)(nats@2.17.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) '@nestjs/platform-express': 8.4.7(@nestjs/common@8.4.7)(@nestjs/core@8.4.7) tslib: 2.4.0 + dev: true /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -3239,18 +3327,22 @@ packages: dependencies: '@types/eslint': 8.44.3 '@types/estree': 1.0.2 + dev: true /@types/eslint@8.44.3: resolution: {integrity: sha512-iM/WfkwAhwmPff3wZuPLYiHX18HI24jU8k1ZSH7P8FHwxTjZ2P6CoX2wnF43oprR+YXJM6UUxATkNvyv/JHd+g==} dependencies: - '@types/estree': 0.0.51 + '@types/estree': 1.0.2 '@types/json-schema': 7.0.13 + dev: true /@types/estree@0.0.51: resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} + dev: true /@types/estree@1.0.2: resolution: {integrity: sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==} + dev: true /@types/express-serve-static-core@4.17.37: resolution: {integrity: sha512-ZohaCYTgGFcOP7u6aJOhY9uIZQgZ2vxC2yWoArY+FeDXlqeH66ZVBjgvg+RLVAS/DWNq4Ap9ZXu1+SUQiiWYMg==} @@ -3280,13 +3372,13 @@ packages: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 16.18.57 + '@types/node': 20.9.0 dev: false /@types/graceful-fs@4.1.7: resolution: {integrity: sha512-MhzcwU8aUygZroVwL2jeYk6JisJrPl/oov/gsgGCue9mkgl9wjGbzReYQClxiUgFDnib9FuHqTndccKeZKxTRw==} dependencies: - '@types/node': 16.18.57 + '@types/node': 20.9.0 dev: true /@types/http-cache-semantics@4.0.4: @@ -3333,14 +3425,17 @@ packages: /@types/json-schema@7.0.13: resolution: {integrity: sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==} + dev: true /@types/json5@0.0.29: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: true /@types/jsonwebtoken@8.5.9: resolution: {integrity: sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==} dependencies: - '@types/node': 16.18.57 + '@types/node': 20.9.0 + dev: false /@types/jsonwebtoken@9.0.5: resolution: {integrity: sha512-VRLSGzik+Unrup6BsouBeHsf4d1hOEgYWTm/7Nmw1sXoN1+tRly/Gy/po3yeahnP4jfnQWWAhQAqcNfH7ngOkA==} @@ -3353,6 +3448,10 @@ packages: '@types/node': 20.9.0 dev: true + /@types/luxon@3.3.4: + resolution: {integrity: sha512-H9OXxv4EzJwE75aTPKpiGXJq+y4LFxjpsdgKwSmr503P5DkWc3AG7VAFYrFNVvqemT5DfgZJV9itYhqBHSGujA==} + dev: false + /@types/mime@1.3.3: resolution: {integrity: sha512-Ys+/St+2VF4+xuY6+kDIXGxbNRO0mesVg0bbxEfB97Od1Vjpjx9KD1qxs64Gcb3CWPirk9Xe+PT4YiiHQ9T+eg==} @@ -3366,7 +3465,7 @@ packages: /@types/node-fetch@2.6.6: resolution: {integrity: sha512-95X8guJYhfqiuVVhRFxVQcf4hW/2bCuoPwDasMf/531STFoNoWTT7YDnWdXHEZKqAGUigmpG31r2FE70LwnzJw==} dependencies: - '@types/node': 16.18.57 + '@types/node': 20.9.0 form-data: 4.0.0 dev: false @@ -3380,6 +3479,7 @@ packages: /@types/parse-json@4.0.0: resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} + dev: true /@types/prettier@2.7.3: resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==} @@ -3418,11 +3518,11 @@ packages: resolution: {integrity: sha512-++uMLOQSLlse1kCfEOwhgmHuaABZwinkylmUKCpvcEGZUov3TtM+gJZloSkW/W+9pEAEg/VBOwiSR05oqJsa5A==} dependencies: '@types/glob': 7.2.0 - '@types/node': 16.18.57 + '@types/node': 20.9.0 dev: false - /@types/simple-oauth2@4.1.3: - resolution: {integrity: sha512-fj4Qxko32X75+pM/IUDIhWct/tAcV2s/5EY6oM9RcRmLGk23CBlxecdNaW/w87RAdo3rGnlK2t+A1JRYFqVWFw==} + /@types/simple-oauth2@5.0.7: + resolution: {integrity: sha512-8JbWVJbiTSBQP/7eiyGKyXWAqp3dKQZpaA+pdW16FCi32ujkzRMG8JfjoAzdWt6W8U591ZNdHcPtP2D7ILTKuA==} dev: true /@types/stack-utils@2.0.1: @@ -3456,7 +3556,7 @@ packages: /@types/ws@7.4.7: resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} dependencies: - '@types/node': 16.18.57 + '@types/node': 20.9.0 dev: false /@types/yargs-parser@21.0.1: @@ -3503,6 +3603,34 @@ packages: - supports-color dev: true + /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.53.0)(typescript@4.9.5): + resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.9.1 + '@typescript-eslint/parser': 5.62.0(eslint@8.53.0)(typescript@4.9.5) + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/type-utils': 5.62.0(eslint@8.53.0)(typescript@4.9.5) + '@typescript-eslint/utils': 5.62.0(eslint@8.53.0)(typescript@4.9.5) + debug: 4.3.4 + eslint: 8.53.0 + graphemer: 1.4.0 + ignore: 5.2.4 + natural-compare-lite: 1.4.0 + semver: 7.5.4 + tsutils: 3.21.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/eslint-plugin@6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w==} engines: {node: ^16.0.0 || >=18.0.0} @@ -3552,6 +3680,26 @@ packages: - supports-color dev: true + /@typescript-eslint/parser@5.62.0(eslint@8.53.0)(typescript@4.9.5): + resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) + debug: 4.3.4 + eslint: 8.53.0 + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==} engines: {node: ^16.0.0 || >=18.0.0} @@ -3609,6 +3757,26 @@ packages: - supports-color dev: true + /@typescript-eslint/type-utils@5.62.0(eslint@8.53.0)(typescript@4.9.5): + resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) + '@typescript-eslint/utils': 5.62.0(eslint@8.53.0)(typescript@4.9.5) + debug: 4.3.4 + eslint: 8.53.0 + tsutils: 3.21.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/type-utils@6.11.0(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==} engines: {node: ^16.0.0 || >=18.0.0} @@ -3722,6 +3890,26 @@ packages: - typescript dev: true + /@typescript-eslint/utils@5.62.0(eslint@8.53.0)(typescript@4.9.5): + 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.53.0) + '@types/json-schema': 7.0.13 + '@types/semver': 7.5.3 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) + eslint: 8.53.0 + eslint-scope: 5.1.1 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + /@typescript-eslint/utils@5.62.0(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3786,6 +3974,7 @@ packages: dependencies: '@webassemblyjs/helper-numbers': 1.11.1 '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + dev: true /@webassemblyjs/ast@1.11.6: resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==} @@ -3796,6 +3985,7 @@ packages: /@webassemblyjs/floating-point-hex-parser@1.11.1: resolution: {integrity: sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==} + dev: true /@webassemblyjs/floating-point-hex-parser@1.11.6: resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} @@ -3803,6 +3993,7 @@ packages: /@webassemblyjs/helper-api-error@1.11.1: resolution: {integrity: sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==} + dev: true /@webassemblyjs/helper-api-error@1.11.6: resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} @@ -3810,6 +4001,7 @@ packages: /@webassemblyjs/helper-buffer@1.11.1: resolution: {integrity: sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==} + dev: true /@webassemblyjs/helper-buffer@1.11.6: resolution: {integrity: sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==} @@ -3821,6 +4013,7 @@ packages: '@webassemblyjs/floating-point-hex-parser': 1.11.1 '@webassemblyjs/helper-api-error': 1.11.1 '@xtuc/long': 4.2.2 + dev: true /@webassemblyjs/helper-numbers@1.11.6: resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} @@ -3832,6 +4025,7 @@ packages: /@webassemblyjs/helper-wasm-bytecode@1.11.1: resolution: {integrity: sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==} + dev: true /@webassemblyjs/helper-wasm-bytecode@1.11.6: resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} @@ -3844,6 +4038,7 @@ packages: '@webassemblyjs/helper-buffer': 1.11.1 '@webassemblyjs/helper-wasm-bytecode': 1.11.1 '@webassemblyjs/wasm-gen': 1.11.1 + dev: true /@webassemblyjs/helper-wasm-section@1.11.6: resolution: {integrity: sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==} @@ -3858,6 +4053,7 @@ packages: resolution: {integrity: sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==} dependencies: '@xtuc/ieee754': 1.2.0 + dev: true /@webassemblyjs/ieee754@1.11.6: resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} @@ -3869,6 +4065,7 @@ packages: resolution: {integrity: sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==} dependencies: '@xtuc/long': 4.2.2 + dev: true /@webassemblyjs/leb128@1.11.6: resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} @@ -3878,6 +4075,7 @@ packages: /@webassemblyjs/utf8@1.11.1: resolution: {integrity: sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==} + dev: true /@webassemblyjs/utf8@1.11.6: resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} @@ -3894,6 +4092,7 @@ packages: '@webassemblyjs/wasm-opt': 1.11.1 '@webassemblyjs/wasm-parser': 1.11.1 '@webassemblyjs/wast-printer': 1.11.1 + dev: true /@webassemblyjs/wasm-edit@1.11.6: resolution: {integrity: sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==} @@ -3916,6 +4115,7 @@ packages: '@webassemblyjs/ieee754': 1.11.1 '@webassemblyjs/leb128': 1.11.1 '@webassemblyjs/utf8': 1.11.1 + dev: true /@webassemblyjs/wasm-gen@1.11.6: resolution: {integrity: sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==} @@ -3934,6 +4134,7 @@ packages: '@webassemblyjs/helper-buffer': 1.11.1 '@webassemblyjs/wasm-gen': 1.11.1 '@webassemblyjs/wasm-parser': 1.11.1 + dev: true /@webassemblyjs/wasm-opt@1.11.6: resolution: {integrity: sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==} @@ -3953,6 +4154,7 @@ packages: '@webassemblyjs/ieee754': 1.11.1 '@webassemblyjs/leb128': 1.11.1 '@webassemblyjs/utf8': 1.11.1 + dev: true /@webassemblyjs/wasm-parser@1.11.6: resolution: {integrity: sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==} @@ -3970,6 +4172,7 @@ packages: dependencies: '@webassemblyjs/ast': 1.11.1 '@xtuc/long': 4.2.2 + dev: true /@webassemblyjs/wast-printer@1.11.6: resolution: {integrity: sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==} @@ -3980,9 +4183,11 @@ packages: /@xtuc/ieee754@1.2.0: resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + dev: true /@xtuc/long@4.2.2: resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + dev: true /abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} @@ -4098,6 +4303,7 @@ packages: optional: true dependencies: ajv: 8.9.0 + dev: true /ajv-keywords@3.5.2(ajv@6.12.6): resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} @@ -4105,6 +4311,7 @@ packages: ajv: ^6.9.1 dependencies: ajv: 6.12.6 + dev: true /ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -4130,6 +4337,7 @@ packages: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 uri-js: 4.4.1 + dev: true /ansi-align@3.0.1: resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} @@ -4140,6 +4348,7 @@ packages: /ansi-colors@4.1.1: resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} engines: {node: '>=6'} + dev: true /ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} @@ -4151,6 +4360,7 @@ packages: engines: {node: '>=8'} dependencies: type-fest: 0.21.3 + dev: true /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} @@ -4166,6 +4376,7 @@ packages: engines: {node: '>=4'} dependencies: color-convert: 1.9.3 + dev: true /ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} @@ -4194,6 +4405,7 @@ packages: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 + dev: true /append-field@0.1.0: resolution: {integrity: sha512-8BgHoIwbQZaAQgDZLBu2vQoXHgUpSx4vQK1qv7e6R8YfbiSf4fCaBPJRtM1BaxVn1rIHc5ftv0cklsJ78BkouQ==} @@ -4539,6 +4751,7 @@ packages: /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} + dev: true /binary-search@1.3.6: resolution: {integrity: sha512-nbE1WxOTTrUWIfsfZ4aHGYu5DOuNkbxGokjV6Z2kxfJK3uaAb8zNK1muzOeipoLHZjInT4Br88BHpzevc681xA==} @@ -4558,6 +4771,7 @@ packages: buffer: 5.7.1 inherits: 2.0.4 readable-stream: 3.6.2 + dev: true /bn.js@5.2.1: resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} @@ -4673,6 +4887,7 @@ packages: engines: {node: '>=8'} dependencies: fill-range: 7.0.1 + dev: true /breadth-filter@2.0.0: resolution: {integrity: sha512-thQShDXnFWSk2oVBixRCyrWsFoV5tfOpWKHmxwafHQDNxCfDBk539utpvytNjmlFrTMqz41poLwJvA1MW3z0MQ==} @@ -4695,6 +4910,7 @@ packages: electron-to-chromium: 1.4.543 node-releases: 2.0.13 update-browserslist-db: 1.0.13(browserslist@4.22.1) + dev: true /bs-logger@0.2.6: resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} @@ -4726,6 +4942,7 @@ packages: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 + dev: true /buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} @@ -4824,6 +5041,7 @@ packages: /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} + dev: true /camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} @@ -4836,6 +5054,7 @@ packages: /caniuse-lite@1.0.30001546: resolution: {integrity: sha512-zvtSJwuQFpewSyRrI3AsftF6rM0X80mZkChIt1spBGEvRglCrjTniXvinc8JKRoqTwXAgvqTImaN9igfSMtUBw==} + dev: true /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -4844,6 +5063,7 @@ packages: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 + dev: true /chalk@3.0.0: resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} @@ -4851,6 +5071,7 @@ packages: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 + dev: true /chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -4866,6 +5087,7 @@ packages: /chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + dev: true /check-disk-space@3.3.0: resolution: {integrity: sha512-Hvr+Nr01xSSvuCpXvJ8oZ2iXjIu4XT3uHbw3g7F/Uiw6O5xk8c/Ot7ZGFDaTRDf2Bz8AdWA4DvpAgCJVKt8arw==} @@ -4890,6 +5112,7 @@ packages: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.3 + dev: true /chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} @@ -4899,6 +5122,7 @@ packages: /chrome-trace-event@1.0.3: resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} engines: {node: '>=6.0'} + dev: true /ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} @@ -4962,10 +5186,12 @@ packages: engines: {node: '>=8'} dependencies: restore-cursor: 3.1.0 + dev: true /cli-spinners@2.9.1: resolution: {integrity: sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==} engines: {node: '>=6'} + dev: true /cli-table3@0.6.2: resolution: {integrity: sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==} @@ -4974,6 +5200,7 @@ packages: string-width: 4.2.3 optionalDependencies: '@colors/colors': 1.5.0 + dev: true /cli-table3@0.6.3: resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} @@ -4987,6 +5214,7 @@ packages: /cli-width@3.0.0: resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} engines: {node: '>= 10'} + dev: true /cliui@7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} @@ -5013,6 +5241,7 @@ packages: /clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} + dev: true /co-body@6.1.0: resolution: {integrity: sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==} @@ -5088,6 +5317,7 @@ packages: /commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} + dev: true /commander@7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} @@ -5207,6 +5437,7 @@ packages: parse-json: 5.2.0 path-type: 4.0.0 yaml: 1.10.2 + dev: true /cosmiconfig@8.3.6(typescript@5.2.2): resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} @@ -5253,6 +5484,13 @@ packages: moment-timezone: 0.5.43 dev: false + /cron@3.1.3: + resolution: {integrity: sha512-KVxeKTKYj2eNzN4ElnT6nRSbjbfhyxR92O/Jdp6SH3pc05CDJws59jBrZWEMQlxevCiE6QUTrXy+Im3vC3oD3A==} + dependencies: + '@types/luxon': 3.3.4 + luxon: 3.4.4 + dev: false + /cross-spawn@5.1.0: resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} dependencies: @@ -5268,6 +5506,7 @@ packages: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 + dev: true /cssom@0.3.8: resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} @@ -5393,6 +5632,7 @@ packages: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} dependencies: clone: 1.0.4 + dev: true /defer-to-connect@2.0.1: resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} @@ -5608,6 +5848,7 @@ packages: /electron-to-chromium@1.4.543: resolution: {integrity: sha512-t2ZP4AcGE0iKCCQCBx/K2426crYdxD3YU6l0uK2EO3FZH0pbC4pFz/sZm2ruZsND6hQBTcDWWlo/MLpiOdif5g==} + dev: true /emittery@0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} @@ -5653,6 +5894,7 @@ packages: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 + dev: true /env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} @@ -5674,6 +5916,7 @@ packages: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 + dev: true /error-stack-parser@2.1.4: resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} @@ -5729,6 +5972,7 @@ packages: /es-module-lexer@0.9.3: resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} + dev: true /es-module-lexer@1.3.1: resolution: {integrity: sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==} @@ -5766,6 +6010,7 @@ packages: /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} + dev: true /escape-string-regexp@2.0.0: resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} @@ -5808,6 +6053,21 @@ packages: semver: 6.3.1 dev: true + /eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.0)(eslint@8.53.0): + resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.2 + dependencies: + confusing-browser-globals: 1.0.11 + eslint: 8.53.0 + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@5.62.0)(eslint@8.53.0) + object.assign: 4.1.4 + object.entries: 1.1.7 + semver: 6.3.1 + dev: true + /eslint-config-airbnb-typescript@16.2.0(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.1)(eslint@8.50.0): resolution: {integrity: sha512-OUaMPZpTOZGKd5tXOjJ9PRU4iYNW/Z5DoHIynjsVK/FpkWdiY5+nxQW6TiJAlLwVI1l53xUOrnlZWtVBVQzuWA==} peerDependencies: @@ -5823,6 +6083,21 @@ packages: eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.50.0) dev: true + /eslint-config-airbnb-typescript@16.2.0(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.29.0)(eslint@8.53.0): + resolution: {integrity: sha512-OUaMPZpTOZGKd5tXOjJ9PRU4iYNW/Z5DoHIynjsVK/FpkWdiY5+nxQW6TiJAlLwVI1l53xUOrnlZWtVBVQzuWA==} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^5.0.0 + '@typescript-eslint/parser': ^5.0.0 + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.3 + dependencies: + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.53.0)(typescript@4.9.5) + '@typescript-eslint/parser': 5.62.0(eslint@8.53.0)(typescript@4.9.5) + eslint: 8.53.0 + eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.0)(eslint@8.53.0) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@5.62.0)(eslint@8.53.0) + dev: true + /eslint-config-prettier@8.10.0(eslint@8.50.0): resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} hasBin: true @@ -5832,6 +6107,15 @@ packages: eslint: 8.50.0 dev: true + /eslint-config-prettier@8.10.0(eslint@8.53.0): + resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.53.0 + dev: true + /eslint-config-prettier@9.0.0(eslint@8.53.0): resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} hasBin: true @@ -5845,13 +6129,71 @@ packages: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: debug: 3.2.7 - is-core-module: 2.13.0 - resolve: 1.22.6 + is-core-module: 2.13.1 + resolve: 1.22.6 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.50.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 5.62.0(eslint@8.50.0)(typescript@4.9.5) + debug: 3.2.7 + eslint: 8.50.0 + eslint-import-resolver-node: 0.3.9 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.53.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 5.62.0(eslint@8.53.0)(typescript@4.9.5) + debug: 3.2.7 + eslint: 8.53.0 + eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.50.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.11.0)(eslint-import-resolver-node@0.3.9)(eslint@8.53.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -5872,9 +6214,9 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.50.0)(typescript@4.9.5) + '@typescript-eslint/parser': 6.11.0(eslint@8.53.0)(typescript@5.2.2) debug: 3.2.7 - eslint: 8.50.0 + eslint: 8.53.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color @@ -5915,6 +6257,76 @@ packages: - supports-color dev: true + /eslint-plugin-import@2.29.0(@typescript-eslint/parser@5.62.0)(eslint@8.53.0): + resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 5.62.0(eslint@8.53.0)(typescript@4.9.5) + 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.53.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.53.0) + hasown: 2.0.0 + is-core-module: 2.13.1 + 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 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0): + resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 6.11.0(eslint@8.53.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.53.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.11.0)(eslint-import-resolver-node@0.3.9)(eslint@8.53.0) + hasown: 2.0.0 + is-core-module: 2.13.1 + 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 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + /eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.11.0)(eslint@8.53.0)(jest@29.7.0)(typescript@5.2.2): resolution: {integrity: sha512-MTlusnnDMChbElsszJvrwD1dN3x6nZl//s4JD23BxB6MgR66TZlL064su24xEIS3VACfAoHV1vgyMgPw8nkdng==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5954,6 +6366,23 @@ packages: prettier-linter-helpers: 1.0.0 dev: true + /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.10.0)(eslint@8.53.0)(prettier@2.8.8): + resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + eslint: '>=7.28.0' + eslint-config-prettier: '*' + prettier: '>=2.0.0' + peerDependenciesMeta: + eslint-config-prettier: + optional: true + dependencies: + eslint: 8.53.0 + eslint-config-prettier: 8.10.0(eslint@8.53.0) + prettier: 2.8.8 + prettier-linter-helpers: 1.0.0 + dev: true + /eslint-plugin-prettier@5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@3.1.0): resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==} engines: {node: ^14.18.0 || >=16.0.0} @@ -5975,12 +6404,19 @@ packages: synckit: 0.8.5 dev: true + /eslint-plugin-workspaces@0.9.0: + resolution: {integrity: sha512-krMuZ+yZgzwv1oTBfz50oamNVPDIm7CDyot3i1GRKBqMD2oXAwnXHLQWH7ctpV8k6YVrkhcaZhuV9IJxD8OPAQ==} + dependencies: + find-workspaces: 0.2.0 + dev: true + /eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 + dev: true /eslint-scope@7.2.2: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} @@ -6115,14 +6551,17 @@ packages: engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 + dev: true /estraverse@4.3.0: resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} engines: {node: '>=4.0'} + dev: true /estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} + dev: true /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} @@ -6141,6 +6580,7 @@ packages: /events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} + dev: true /execa@0.7.0: resolution: {integrity: sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==} @@ -6168,6 +6608,7 @@ packages: onetime: 5.1.2 signal-exit: 3.0.7 strip-final-newline: 2.0.0 + dev: true /execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} @@ -6346,6 +6787,7 @@ packages: chardet: 0.7.0 iconv-lite: 0.4.24 tmp: 0.0.33 + dev: true /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -6421,6 +6863,7 @@ packages: engines: {node: '>=8'} dependencies: escape-string-regexp: 1.0.5 + dev: true /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} @@ -6461,6 +6904,7 @@ packages: engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 + dev: true /filter-obj@1.1.0: resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} @@ -6504,6 +6948,14 @@ packages: semver-regex: 4.0.5 dev: true + /find-workspaces@0.2.0: + resolution: {integrity: sha512-OTHryv88yjzwvbXHGi0+XRFu7Jqe5pFuIR2mhqdatDJQOBJd7MFJOPFJv4EbNo8n1BNM/13Y2KcyDpFQYf0ETw==} + dependencies: + fast-glob: 3.3.1 + pkg-types: 1.0.3 + yaml: 2.3.4 + dev: true + /flat-cache@3.1.0: resolution: {integrity: sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==} engines: {node: '>=12.0.0'} @@ -6573,6 +7025,7 @@ packages: tapable: 2.2.1 typescript: 4.7.4 webpack: 5.73.0 + dev: true /fork-ts-checker-webpack-plugin@9.0.2(typescript@5.2.2)(webpack@5.89.0): resolution: {integrity: sha512-Uochze2R8peoN1XqlSi/rGUkDQpRogtLFocP9+PGu68zk1BDAKXfdeCdyVZpgTk8V8WFVQXdEz426VKjXLO1Gg==} @@ -6644,6 +7097,7 @@ packages: graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.0 + dev: true /fs-minipass@2.1.0: resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} @@ -6654,6 +7108,7 @@ packages: /fs-monkey@1.0.5: resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} + dev: true /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -6663,11 +7118,16 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true + dev: true optional: true /function-bind@1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true + /function.prototype.name@1.1.6: resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} engines: {node: '>= 0.4'} @@ -6726,6 +7186,7 @@ packages: engines: {node: '>=8'} dependencies: pump: 3.0.0 + dev: true /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} @@ -6744,6 +7205,7 @@ packages: engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 + dev: true /glob-parent@6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} @@ -6754,6 +7216,7 @@ packages: /glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + dev: true /glob@10.3.10: resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} @@ -6863,6 +7326,7 @@ packages: /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} + dev: true /has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} @@ -6900,6 +7364,13 @@ packages: resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} engines: {node: '>= 0.4.0'} + /hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: true + /hexoid@1.0.0: resolution: {integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==} engines: {node: '>=8'} @@ -6999,6 +7470,7 @@ packages: /human-signals@1.1.1: resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} engines: {node: '>=8.12.0'} + dev: true /human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} @@ -7058,6 +7530,7 @@ packages: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 + dev: true /import-in-the-middle@1.4.2: resolution: {integrity: sha512-9WOz1Yh/cvO/p69sxRmhyQwrIGGSp7EIdcb+fFNVi7CzQGQB8U1/1XrKVSbEd/GNOAeM0peJtmi7+qphe7NvAw==} @@ -7138,6 +7611,7 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 through: 2.3.8 + dev: true /inquirer@8.2.0: resolution: {integrity: sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==} @@ -7157,6 +7631,7 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 through: 2.3.8 + dev: true /inquirer@8.2.4: resolution: {integrity: sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==} @@ -7229,6 +7704,7 @@ packages: /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: true /is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} @@ -7244,6 +7720,7 @@ packages: engines: {node: '>=8'} dependencies: binary-extensions: 2.2.0 + dev: true /is-boolean-object@1.1.2: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} @@ -7261,6 +7738,12 @@ packages: dependencies: has: 1.0.4 + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + dependencies: + hasown: 2.0.0 + dev: true + /is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} @@ -7282,6 +7765,7 @@ packages: /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} + dev: true /is-finite@1.1.0: resolution: {integrity: sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==} @@ -7313,6 +7797,7 @@ packages: engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 + dev: true /is-inside-container@1.0.0: resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} @@ -7333,6 +7818,7 @@ packages: /is-interactive@1.0.0: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} + dev: true /is-lambda@1.0.1: resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} @@ -7366,6 +7852,7 @@ packages: /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + dev: true /is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} @@ -7432,6 +7919,7 @@ packages: /is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} + dev: true /is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} @@ -7562,7 +8050,7 @@ packages: '@jest/environment': 27.5.1 '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 16.18.57 + '@types/node': 20.9.0 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 @@ -7813,7 +8301,7 @@ packages: '@jest/environment': 27.5.1 '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 16.18.57 + '@types/node': 20.9.0 jest-mock: 27.5.1 jest-util: 27.5.1 jsdom: 16.7.0 @@ -7831,7 +8319,7 @@ packages: '@jest/environment': 27.5.1 '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 16.18.57 + '@types/node': 20.9.0 jest-mock: 27.5.1 jest-util: 27.5.1 dev: true @@ -7863,7 +8351,7 @@ packages: dependencies: '@jest/types': 27.5.1 '@types/graceful-fs': 4.1.7 - '@types/node': 16.18.57 + '@types/node': 20.9.0 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -7904,7 +8392,7 @@ packages: '@jest/source-map': 27.5.1 '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 16.18.57 + '@types/node': 20.9.0 chalk: 4.1.2 co: 4.6.0 expect: 27.5.1 @@ -7992,7 +8480,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 16.18.57 + '@types/node': 20.9.0 dev: true /jest-mock@29.7.0: @@ -8099,7 +8587,7 @@ packages: '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 16.18.57 + '@types/node': 20.9.0 chalk: 4.1.2 emittery: 0.8.1 graceful-fs: 4.2.11 @@ -8215,7 +8703,7 @@ packages: resolution: {integrity: sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@types/node': 16.18.57 + '@types/node': 20.9.0 graceful-fs: 4.2.11 dev: true @@ -8282,7 +8770,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 16.18.57 + '@types/node': 20.9.0 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -8331,7 +8819,7 @@ packages: dependencies: '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 16.18.57 + '@types/node': 20.9.0 ansi-escapes: 4.3.2 chalk: 4.1.2 jest-util: 27.5.1 @@ -8359,6 +8847,7 @@ packages: '@types/node': 20.9.0 merge-stream: 2.0.0 supports-color: 8.1.1 + dev: true /jest-worker@29.7.0: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} @@ -8436,6 +8925,7 @@ packages: /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: true /js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} @@ -8505,12 +8995,14 @@ packages: /json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} /json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: true /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} @@ -8528,6 +9020,7 @@ packages: hasBin: true dependencies: minimist: 1.2.8 + dev: true /json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} @@ -8537,6 +9030,7 @@ packages: /jsonc-parser@3.0.0: resolution: {integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==} + dev: true /jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} @@ -8548,6 +9042,7 @@ packages: universalify: 2.0.0 optionalDependencies: graceful-fs: 4.2.11 + dev: true /jsonwebtoken@8.5.1: resolution: {integrity: sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==} @@ -8751,6 +9246,7 @@ packages: /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true /liquibase@4.4.0: resolution: {integrity: sha512-oD/ZJgxpoR43V5Vt7o3r9ftYl16PyFco5l1EpKI4VKDQLtm1acHsyqxjA96S6c+rP51PafC4xug1Z6IJLyyAXA==} @@ -8761,6 +9257,7 @@ packages: /loader-runner@4.3.0: resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} engines: {node: '>=6.11.5'} + dev: true /locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} @@ -8850,6 +9347,7 @@ packages: dependencies: chalk: 4.1.2 is-unicode-supported: 0.1.0 + dev: true /logform@2.5.1: resolution: {integrity: sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg==} @@ -8919,14 +9417,21 @@ packages: resolution: {integrity: sha512-gYHAa180mKrNIUJCbwpmD0aTu9kV0dREDrwNnuyFAsO1Wt0EVYSZelPnJlbj9HplzXX/YWXHFTL45kvZ53M0pw==} dev: false + /luxon@3.4.4: + resolution: {integrity: sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==} + engines: {node: '>=12'} + dev: false + /macos-release@2.5.1: resolution: {integrity: sha512-DXqXhEM7gW59OjZO8NIjBCz9AQ1BEMrfiOAl4AYByHCtVHRF4KoGNO8mqQeM8lRCtQe/UnJ4imO/d2HdkKsd+A==} engines: {node: '>=6'} + dev: true /magic-string@0.25.7: resolution: {integrity: sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==} dependencies: sourcemap-codec: 1.4.8 + dev: true /magic-string@0.30.1: resolution: {integrity: sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==} @@ -9019,12 +9524,14 @@ packages: engines: {node: '>= 4.0.0'} dependencies: fs-monkey: 1.0.5 + dev: true /merge-descriptors@1.0.1: resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} @@ -9067,6 +9574,7 @@ packages: /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} + dev: true /mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} @@ -9111,6 +9619,7 @@ packages: /minimist@1.2.6: resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} + dev: true /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -9190,6 +9699,15 @@ packages: hasBin: true dev: false + /mlly@1.4.2: + resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} + dependencies: + acorn: 8.10.0 + pathe: 1.1.1 + pkg-types: 1.0.3 + ufo: 1.3.2 + dev: true + /module-details-from-path@1.0.3: resolution: {integrity: sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==} requiresBuild: true @@ -9290,6 +9808,7 @@ packages: /mute-stream@0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + dev: true /nan@2.18.0: resolution: {integrity: sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==} @@ -9321,6 +9840,7 @@ packages: /neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + dev: true /next-line@1.1.0: resolution: {integrity: sha512-+I10J3wKNoKddNxn0CNpoZ3eTZuqxjNM3b1GImVx22+ePI+Y15P8g/j3WsbP0fhzzrFzrtjOAoq5NCCucswXOQ==} @@ -9342,6 +9862,7 @@ packages: resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} dependencies: lodash: 4.17.21 + dev: true /node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} @@ -9396,6 +9917,7 @@ packages: /node-releases@2.0.13: resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + dev: true /nopt@5.0.0: resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} @@ -9408,6 +9930,7 @@ packages: /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} + dev: true /normalize-url@6.1.0: resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} @@ -9426,6 +9949,7 @@ packages: engines: {node: '>=8'} dependencies: path-key: 3.1.1 + dev: true /npm-run-path@5.1.0: resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} @@ -9565,6 +10089,7 @@ packages: engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 + dev: true /onetime@6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} @@ -9635,6 +10160,7 @@ packages: log-symbols: 4.1.0 strip-ansi: 6.0.1 wcwidth: 1.0.1 + dev: true /original-url@1.2.3: resolution: {integrity: sha512-BYm+pKYLtS4mVe/mgT3YKGtWV5HzN/XKiaIu1aK4rsxyjuHeTW9N+xVBEpJcY1onB3nccfH0RbzUEoimMqFUHQ==} @@ -9657,10 +10183,12 @@ packages: dependencies: macos-release: 2.5.1 windows-release: 4.0.0 + dev: true /os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} + dev: true /p-cancelable@2.1.1: resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} @@ -9721,6 +10249,7 @@ packages: engines: {node: '>=6'} dependencies: callsites: 3.1.0 + dev: true /parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} @@ -9730,6 +10259,7 @@ packages: error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + dev: true /parse5@6.0.1: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} @@ -9756,6 +10286,7 @@ packages: /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} + dev: true /path-key@4.0.0: resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} @@ -9794,6 +10325,11 @@ packages: /path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + dev: true + + /pathe@1.1.1: + resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} + dev: true /peek-readable@5.0.0: resolution: {integrity: sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==} @@ -9866,10 +10402,12 @@ packages: /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + dev: true /pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} @@ -9909,9 +10447,18 @@ packages: find-up: 4.1.0 dev: true + /pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + dependencies: + jsonc-parser: 3.2.0 + mlly: 1.4.2 + pathe: 1.1.1 + dev: true + /pluralize@8.0.0: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} + dev: true /postgres-array@2.0.0: resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} @@ -10055,6 +10602,7 @@ packages: dependencies: end-of-stream: 1.4.4 once: 1.4.0 + dev: true /punycode@2.3.0: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} @@ -10120,6 +10668,7 @@ packages: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} dependencies: safe-buffer: 5.2.1 + dev: true /range-parser@1.2.1: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} @@ -10193,6 +10742,7 @@ packages: engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 + dev: true /rechoir@0.6.2: resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} @@ -10229,6 +10779,7 @@ packages: /require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + dev: true /require-in-the-middle@7.2.0: resolution: {integrity: sha512-3TLx5TGyAY6AOqLBoXmHkNql0HIf2RGbuMgCDT2WO/uGVAPJs6h7Kl+bN6TIZGd9bWhWPwnDnTHGtW8Iu77sdw==} @@ -10261,6 +10812,7 @@ packages: /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} + dev: true /resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} @@ -10297,6 +10849,7 @@ packages: dependencies: onetime: 5.1.2 signal-exit: 3.0.7 + dev: true /retry@0.12.0: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} @@ -10389,6 +10942,7 @@ packages: /run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} + dev: true /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -10401,6 +10955,7 @@ packages: engines: {npm: '>=2.0.0'} dependencies: tslib: 1.14.1 + dev: true /rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} @@ -10451,6 +11006,7 @@ packages: '@types/json-schema': 7.0.13 ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) + dev: true /secure-json-parse@2.7.0: resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} @@ -10508,6 +11064,7 @@ packages: resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==} dependencies: randombytes: 2.1.0 + dev: true /serve-static@1.15.0: resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} @@ -10553,6 +11110,7 @@ packages: engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 + dev: true /shebang-regex@1.0.0: resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} @@ -10562,6 +11120,7 @@ packages: /shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} + dev: true /shelljs@0.8.5: resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} @@ -10595,17 +11154,6 @@ packages: engines: {node: '>=14'} dev: true - /simple-oauth2@5.0.0: - resolution: {integrity: sha512-8291lo/z5ZdpmiOFzOs1kF3cxn22bMj5FFH+DNUppLJrpoIlM1QnFiE7KpshHu3J3i21TVcx4yW+gXYjdCKDLQ==} - dependencies: - '@hapi/hoek': 10.0.1 - '@hapi/wreck': 18.0.1 - debug: 4.3.4 - joi: 17.11.0 - transitivePeerDependencies: - - supports-color - dev: false - /simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} dependencies: @@ -10688,6 +11236,7 @@ packages: /source-map@0.7.3: resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} engines: {node: '>= 8'} + dev: true /source-map@0.7.4: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} @@ -10706,6 +11255,7 @@ packages: /sourcemap-codec@1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} deprecated: Please use @jridgewell/sourcemap-codec instead + dev: true /split-on-first@1.1.0: resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} @@ -10870,6 +11420,7 @@ packages: /strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} + dev: true /strip-bom@4.0.0: resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} @@ -10884,6 +11435,7 @@ packages: /strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} + dev: true /strip-final-newline@3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} @@ -10941,6 +11493,7 @@ packages: engines: {node: '>=4'} dependencies: has-flag: 3.0.0 + dev: true /supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} @@ -10953,6 +11506,7 @@ packages: engines: {node: '>=10'} dependencies: has-flag: 4.0.0 + dev: true /supports-hyperlinks@2.3.0: resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} @@ -10971,7 +11525,6 @@ packages: /swagger-ui-dist@5.9.1: resolution: {integrity: sha512-5zAx+hUwJb9T3EAntc7TqYkV716CMqG6sZpNlAAMOMWkNXRYxGkN8ADIvD55dQZ10LxN90ZM/TQmN7y1gpICnw==} - dev: false /swagger-ui-express@4.6.3(express@4.18.2): resolution: {integrity: sha512-CDje4PndhTD2HkgyKH3pab+LKspDeB/NhPN2OF1j+piYIamQqBYwAXWESOT1Yju2xFg51bRW9sUng2WxDjzArw==} @@ -10989,12 +11542,12 @@ packages: express: '>=4.0.0 || >=5.0.0-beta' dependencies: express: 4.18.2 - swagger-ui-dist: 5.9.0 - dev: false + swagger-ui-dist: 5.9.1 /symbol-observable@4.0.0: resolution: {integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==} engines: {node: '>=0.10'} + dev: true /symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} @@ -11011,6 +11564,7 @@ packages: /tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} + dev: true /tar@6.2.0: resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} @@ -11083,6 +11637,7 @@ packages: serialize-javascript: 6.0.1 terser: 5.21.0 webpack: 5.73.0 + dev: true /terser-webpack-plugin@5.3.9(webpack@5.89.0): resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==} @@ -11117,6 +11672,7 @@ packages: acorn: 8.10.0 commander: 2.20.3 source-map-support: 0.5.21 + dev: true /test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} @@ -11141,6 +11697,7 @@ packages: /through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: true /titleize@3.0.0: resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} @@ -11152,6 +11709,7 @@ packages: engines: {node: '>=0.6.0'} dependencies: os-tmpdir: 1.0.2 + dev: true /tmpl@1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} @@ -11167,6 +11725,7 @@ packages: engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 + dev: true /to-source-code@1.0.2: resolution: {integrity: sha512-YzWtjmNIf3E75eZYa7m1SCyl0vgOGoTzdpH3svfa8SUm5rqTgl9hnDolrAGOghCF9P2gsITXQoMrlujOoz+RPw==} @@ -11219,6 +11778,7 @@ packages: /tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true + dev: true /trim-repeated@2.0.0: resolution: {integrity: sha512-QUHBFTJGdOwmp0tbOG505xAgOp/YliZP/6UgafFXYZ26WT1bvQmSMJUvkeVSASuJJHbqsFbynTvkd5W8RBTipg==} @@ -11360,6 +11920,7 @@ packages: chalk: 4.1.2 enhanced-resolve: 5.15.0 tsconfig-paths: 3.14.2 + dev: true /tsconfig-paths-webpack-plugin@4.1.0: resolution: {integrity: sha512-xWFISjviPydmtmgeUAuXp4N1fky+VCtfhOkDUFIv5ea7p4wuTomI4QTrXvFBX2S4jZsmyTSrStQl+E+4w+RzxA==} @@ -11377,6 +11938,7 @@ packages: json5: 1.0.2 minimist: 1.2.8 strip-bom: 3.0.0 + dev: true /tsconfig-paths@3.14.2: resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} @@ -11385,6 +11947,7 @@ packages: 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==} @@ -11467,6 +12030,7 @@ packages: /type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} + dev: true /type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} @@ -11541,11 +12105,13 @@ packages: resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==} engines: {node: '>=4.2.0'} hasBin: true + dev: true /typescript@4.9.5: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} engines: {node: '>=4.2.0'} hasBin: true + dev: true /typescript@5.2.2: resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} @@ -11553,6 +12119,10 @@ packages: hasBin: true dev: true + /ufo@1.3.2: + resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} + dev: true + /uid-safe@2.1.5: resolution: {integrity: sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==} engines: {node: '>= 0.8'} @@ -11625,6 +12195,7 @@ packages: /universalify@2.0.0: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} + dev: true /unpipe@1.0.0: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} @@ -11644,6 +12215,7 @@ packages: browserslist: 4.22.1 escalade: 3.1.1 picocolors: 1.0.0 + dev: true /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -11679,6 +12251,11 @@ packages: hasBin: true dev: false + /uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + dev: false + /v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true @@ -11747,11 +12324,13 @@ packages: dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 + dev: true /wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} dependencies: defaults: 1.0.4 + dev: true /webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -11775,10 +12354,12 @@ packages: /webpack-node-externals@3.0.0: resolution: {integrity: sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==} engines: {node: '>=6'} + dev: true /webpack-sources@3.2.3: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} + dev: true /webpack@5.73.0: resolution: {integrity: sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==} @@ -11818,6 +12399,7 @@ packages: - '@swc/core' - esbuild - uglify-js + dev: true /webpack@5.89.0: resolution: {integrity: sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==} @@ -11985,6 +12567,7 @@ packages: engines: {node: '>=10'} dependencies: execa: 4.1.0 + dev: true /winston-elasticsearch@0.16.1: resolution: {integrity: sha512-IZ7NWs+tBYSRf9CKYs0xmS42IIfyKnd+miWrGl58WLfDLBphIhqwol6im5dUcW2xjMCP4hSovaqipAgzC5MCYQ==} @@ -12155,6 +12738,11 @@ packages: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} + /yaml@2.3.4: + resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} + engines: {node: '>= 14'} + dev: true + /yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} -- GitLab