From 5e570a4f60cc439541e17f4145b2dbc076e6699e Mon Sep 17 00:00:00 2001 From: Sergey Elpashev Date: Wed, 3 Jul 2024 23:49:05 +0300 Subject: [PATCH] fix: prettier) --- .env.example | 3 + backend/.eslintrc.js | 23 +- backend/bun.lockb | Bin 306037 -> 297655 bytes backend/config/redis-options.ts | 38 +- backend/libs/database/admin.entity.ts | 24 +- backend/libs/database/image.entity.ts | 32 +- backend/libs/database/payment.entity.ts | 28 +- backend/libs/database/post.entity.ts | 58 +- backend/libs/database/proxy_user.entity.ts | 50 +- backend/libs/database/settings.entity.ts | 24 +- backend/libs/database/user.entity.ts | 20 +- backend/libs/enums/getAll.enum.ts | 6 +- backend/package.json | 8 +- backend/pnpm-lock.yaml | 5756 ++++++++++++----- backend/src/app.controller.ts | 16 +- backend/src/app.module.ts | 61 +- backend/src/main.ts | 22 +- backend/src/modules/admin/admin.controller.ts | 44 +- backend/src/modules/admin/admin.module.ts | 14 +- backend/src/modules/admin/admin.service.ts | 89 +- backend/src/modules/auth/auth.controller.ts | 1 - backend/src/modules/auth/auth.guard.ts | 27 - backend/src/modules/auth/auth.service.ts | 5 +- backend/src/modules/image/image.controller.ts | 24 +- backend/src/modules/image/image.dto.ts | 29 +- backend/src/modules/image/image.module.ts | 14 +- backend/src/modules/image/image.service.ts | 134 +- .../initialization/app.init.service.ts | 34 +- backend/src/modules/post/post.controller.ts | 128 +- backend/src/modules/post/post.dto.ts | 18 +- backend/src/modules/post/post.module.ts | 14 +- backend/src/modules/post/post.service.ts | 426 +- backend/src/modules/proxy/proxy.controller.ts | 74 +- backend/src/modules/proxy/proxy.dto.ts | 17 +- backend/src/modules/proxy/proxy.module.ts | 14 +- backend/src/modules/proxy/proxy.service.ts | 186 +- .../modules/settings/settings.controller.ts | 82 +- backend/src/modules/settings/settings.dto.ts | 22 +- .../src/modules/settings/settings.module.ts | 14 +- .../src/modules/settings/settings.service.ts | 147 +- backend/src/modules/user/user.controller.ts | 70 +- backend/src/modules/user/user.dto.ts | 6 +- backend/src/modules/user/user.module.ts | 14 +- backend/src/modules/user/user.service.ts | 151 +- backend/test/app.e2e-spec.ts | 17 +- backend/tsconfig.json | 2 +- package.json | 1 - 47 files changed, 5152 insertions(+), 2835 deletions(-) delete mode 100644 package.json diff --git a/.env.example b/.env.example index be1e1b2..3c90108 100644 --- a/.env.example +++ b/.env.example @@ -6,6 +6,9 @@ DATABASE_PORT=5432 SERVER_PORT=3000 +REDIS_HOST=localhost +REDIS_PORT=6379 REDIS_PASSWORD=123 +REDIS_DB=1 JWT_SECRET=secret \ No newline at end of file diff --git a/backend/.eslintrc.js b/backend/.eslintrc.js index 259de13..10e81aa 100644 --- a/backend/.eslintrc.js +++ b/backend/.eslintrc.js @@ -1,25 +1,22 @@ module.exports = { - parser: '@typescript-eslint/parser', + parser: "@typescript-eslint/parser", parserOptions: { - project: 'tsconfig.json', + project: "tsconfig.json", tsconfigRootDir: __dirname, - sourceType: 'module', + sourceType: "module", }, - plugins: ['@typescript-eslint/eslint-plugin'], - extends: [ - 'plugin:@typescript-eslint/recommended', - 'plugin:prettier/recommended', - ], + plugins: ["@typescript-eslint/eslint-plugin"], + extends: ["plugin:@typescript-eslint/recommended", "plugin:prettier/recommended"], root: true, env: { node: true, jest: true, }, - ignorePatterns: ['.eslintrc.js'], + 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', + "@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/backend/bun.lockb b/backend/bun.lockb index 79b44cf94ebb7b72421bbe88968c347a3bda88b6..2ce03e24db2a8ab94644e2fb3f75ea405c93ebaa 100755 GIT binary patch delta 58832 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 delta 63142 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 { - const store = await redisStore({ - socket: { - host: config.redis.redis_host, - port: config.redis.redis_port, - }, - database: config.redis.redis_database, - password: config.redis.redis_password, - ttl: 30, - }); - return { - store: () => store, - isGlobal: true, - }; - }, + isGlobal: true, + useFactory: async () => { + const store = await redisStore({ + socket: { + host: config.redis.redis_host, + port: config.redis.redis_port, + }, + database: config.redis.redis_database, + password: config.redis.redis_password, + ttl: 30, + }); + return { + store: () => store, + isGlobal: true, + }; + }, }; diff --git a/backend/libs/database/admin.entity.ts b/backend/libs/database/admin.entity.ts index a8d2bc7..8832aa3 100644 --- a/backend/libs/database/admin.entity.ts +++ b/backend/libs/database/admin.entity.ts @@ -1,19 +1,19 @@ -import { Column, Entity, JoinColumn, OneToOne, PrimaryGeneratedColumn } from 'typeorm'; -import { User } from './user.entity'; +import { Column, Entity, JoinColumn, OneToOne, PrimaryGeneratedColumn } from "typeorm"; +import { User } from "./user.entity"; @Entity() export class Admin { - constructor(props?: Partial) { - Object.assign(this, props); - } + constructor(props?: Partial) { + Object.assign(this, props); + } - @PrimaryGeneratedColumn() - public id!: number; + @PrimaryGeneratedColumn() + public id!: number; - @Column({ nullable: false }) - public user_id!: string; + @Column({ nullable: false }) + public user_id!: string; - @OneToOne(() => User, (user) => user.id, { onDelete: 'CASCADE', onUpdate: 'CASCADE' }) - @JoinColumn({ name: 'user_id' }) - public user!: User; + @OneToOne(() => User, (user) => user.id, { onDelete: "CASCADE", onUpdate: "CASCADE" }) + @JoinColumn({ name: "user_id" }) + public user!: User; } diff --git a/backend/libs/database/image.entity.ts b/backend/libs/database/image.entity.ts index 14ca27d..0ff3d3e 100644 --- a/backend/libs/database/image.entity.ts +++ b/backend/libs/database/image.entity.ts @@ -1,25 +1,25 @@ -import { Column, Entity, JoinColumn, ManyToOne, PrimaryColumn } from 'typeorm'; -import { Post } from './post.entity'; +import { Column, Entity, JoinColumn, ManyToOne, PrimaryColumn } from "typeorm"; +import { Post } from "./post.entity"; @Entity() export class Image { - constructor(props?: Partial) { - Object.assign(this, props); - } + constructor(props?: Partial) { + Object.assign(this, props); + } - @PrimaryColumn() - public message_id!: number; + @PrimaryColumn() + public message_id!: number; - @Column({ nullable: false }) - public file_id!: string; + @Column({ nullable: false }) + public file_id!: string; - @Column({ default: false }) - public has_spoiler!: boolean; + @Column({ default: false }) + public has_spoiler!: boolean; - @Column({ nullable: false }) - public post_uuid!: string; + @Column({ nullable: false }) + public post_uuid!: string; - @ManyToOne(() => Post, (post) => post.uuid, { onDelete: 'CASCADE' }) - @JoinColumn({ name: 'post_uuid' }) - public post!: Post; + @ManyToOne(() => Post, (post) => post.uuid, { onDelete: "CASCADE" }) + @JoinColumn({ name: "post_uuid" }) + public post!: Post; } diff --git a/backend/libs/database/payment.entity.ts b/backend/libs/database/payment.entity.ts index 71f68a0..a40c347 100644 --- a/backend/libs/database/payment.entity.ts +++ b/backend/libs/database/payment.entity.ts @@ -1,22 +1,22 @@ -import { Column, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn } from 'typeorm'; -import { ProxyUser } from './proxy_user.entity'; +import { Column, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn } from "typeorm"; +import { ProxyUser } from "./proxy_user.entity"; @Entity() export class Payment { - constructor(props?: Partial) { - Object.assign(this, props); - } + constructor(props?: Partial) { + Object.assign(this, props); + } - @PrimaryGeneratedColumn('increment') - public id!: number; + @PrimaryGeneratedColumn("increment") + public id!: number; - @Column() - public user_uuid!: string; + @Column() + public user_uuid!: string; - @Column({ type: 'timestamptz' }) - public payTime!: Date; + @Column({ type: "timestamptz" }) + public payTime!: Date; - @ManyToOne(() => ProxyUser, { onDelete: 'CASCADE' }) - @JoinColumn({ name: 'user_uuid' }) - user: ProxyUser; + @ManyToOne(() => ProxyUser, { onDelete: "CASCADE" }) + @JoinColumn({ name: "user_uuid" }) + user: ProxyUser; } diff --git a/backend/libs/database/post.entity.ts b/backend/libs/database/post.entity.ts index 66b8284..00c8e12 100644 --- a/backend/libs/database/post.entity.ts +++ b/backend/libs/database/post.entity.ts @@ -1,43 +1,43 @@ -import { Column, Entity, JoinColumn, ManyToOne, OneToMany, PrimaryGeneratedColumn } from 'typeorm'; -import { Admin } from './admin.entity'; -import { Image } from './image.entity'; +import { Column, Entity, JoinColumn, ManyToOne, OneToMany, PrimaryGeneratedColumn } from "typeorm"; +import { Admin } from "./admin.entity"; +import { Image } from "./image.entity"; @Entity() export class Post { - constructor(props?: Partial) { - Object.assign(this, props); - } + constructor(props?: Partial) { + Object.assign(this, props); + } - @PrimaryGeneratedColumn('uuid') - public uuid!: string; + @PrimaryGeneratedColumn("uuid") + public uuid!: string; - @Column({ default: false }) - public posted!: boolean; + @Column({ default: false }) + public posted!: boolean; - @Column({ nullable: true }) - public text?: string; + @Column({ nullable: true }) + public text?: string; - @Column({ nullable: true }) - public media_group_id: string; + @Column({ nullable: true }) + public media_group_id: string; - @Column({ type: 'timestamptz' }) - public timestamp!: Date; + @Column({ type: "timestamptz" }) + public timestamp!: Date; - @Column({ type: 'timestamptz', nullable: true }) - public edit_timestamp?: Date; + @Column({ type: "timestamptz", nullable: true }) + public edit_timestamp?: Date; - @Column({ nullable: false }) - public from_user_id!: string; + @Column({ nullable: false }) + public from_user_id!: string; - @ManyToOne(() => Admin, (admin) => admin.user.id) - @JoinColumn({ name: 'from_user_id', referencedColumnName: 'user_id' }) - public from_user!: Admin; + @ManyToOne(() => Admin, (admin) => admin.user.id) + @JoinColumn({ name: "from_user_id", referencedColumnName: "user_id" }) + public from_user!: Admin; - @OneToMany(() => Image, (image) => image.post) - public images: Image[]; + @OneToMany(() => Image, (image) => image.post) + public images: Image[]; - @Column({ nullable: true }) - public message_entities?: string; + @Column({ nullable: true }) + public message_entities?: string; - @Column({ default: false }) - public deleted: boolean; + @Column({ default: false }) + public deleted: boolean; } diff --git a/backend/libs/database/proxy_user.entity.ts b/backend/libs/database/proxy_user.entity.ts index 95f50ab..5dae6b8 100644 --- a/backend/libs/database/proxy_user.entity.ts +++ b/backend/libs/database/proxy_user.entity.ts @@ -1,35 +1,39 @@ -import { Column, Entity, JoinColumn, OneToMany, OneToOne, PrimaryGeneratedColumn } from 'typeorm'; -import { Payment } from './payment.entity'; -import { User } from './user.entity'; +import { Column, Entity, JoinColumn, OneToMany, OneToOne, PrimaryGeneratedColumn } from "typeorm"; +import { Payment } from "./payment.entity"; +import { User } from "./user.entity"; @Entity() export class ProxyUser { - constructor(props?: Partial) { - Object.assign(this, props); - } + constructor(props?: Partial) { + Object.assign(this, props); + } - @PrimaryGeneratedColumn('uuid') - public uuid!: string; + @PrimaryGeneratedColumn("uuid") + public uuid!: string; - @Column({ nullable: false, unique: true }) - public userName!: string; + @Column({ nullable: false, unique: true }) + public userName!: string; - @Column({ nullable: true }) - public description?: string; + @Column({ nullable: true }) + public description?: string; - @Column({ nullable: false }) - public link!: string; + @Column({ nullable: false }) + public link!: string; - @Column({ nullable: false, type: 'timestamptz' }) - public connectDate!: Date; + @Column({ nullable: false, type: "timestamptz" }) + public connectDate!: Date; - @Column({ nullable: true }) - public user_id!: string; + @Column({ nullable: true }) + public user_id!: string; - @OneToOne(() => User, (user) => user.id, { onDelete: 'CASCADE', onUpdate: 'CASCADE', nullable: true }) - @JoinColumn({ name: 'user_id' }) - public user?: User; + @OneToOne(() => User, (user) => user.id, { + onDelete: "CASCADE", + onUpdate: "CASCADE", + nullable: true, + }) + @JoinColumn({ name: "user_id" }) + public user?: User; - @OneToMany(() => Payment, (payment) => payment.user) - public payments: Payment[]; + @OneToMany(() => Payment, (payment) => payment.user) + public payments: Payment[]; } diff --git a/backend/libs/database/settings.entity.ts b/backend/libs/database/settings.entity.ts index f193388..5617afa 100644 --- a/backend/libs/database/settings.entity.ts +++ b/backend/libs/database/settings.entity.ts @@ -1,20 +1,20 @@ -import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm'; +import { Column, Entity, PrimaryGeneratedColumn } from "typeorm"; @Entity() export class BotSettings { - constructor(props?: Partial) { - Object.assign(this, props); - } + constructor(props?: Partial) { + Object.assign(this, props); + } - @PrimaryGeneratedColumn('uuid') - public uuid!: string; + @PrimaryGeneratedColumn("uuid") + public uuid!: string; - @Column({ type: 'text', array: true }) - public messageTimes!: string[]; + @Column({ type: "text", array: true }) + public messageTimes!: string[]; - @Column() - public channel!: string; + @Column() + public channel!: string; - @Column({ default: false }) - public isActive!: boolean; + @Column({ default: false }) + public isActive!: boolean; } diff --git a/backend/libs/database/user.entity.ts b/backend/libs/database/user.entity.ts index 7b16bf7..b967e80 100644 --- a/backend/libs/database/user.entity.ts +++ b/backend/libs/database/user.entity.ts @@ -1,17 +1,17 @@ -import { Column, Entity, PrimaryColumn } from 'typeorm'; +import { Column, Entity, PrimaryColumn } from "typeorm"; @Entity() export class User { - constructor(props?: Partial) { - Object.assign(this, props); - } + constructor(props?: Partial) { + Object.assign(this, props); + } - @PrimaryColumn() - public id!: string; + @PrimaryColumn() + public id!: string; - @Column({ nullable: true }) - public user_name: string; + @Column({ nullable: true }) + public user_name: string; - @Column({ nullable: false , default: false}) - public banned: boolean; + @Column({ nullable: false, default: false }) + public banned: boolean; } diff --git a/backend/libs/enums/getAll.enum.ts b/backend/libs/enums/getAll.enum.ts index 814872b..8cb39da 100644 --- a/backend/libs/enums/getAll.enum.ts +++ b/backend/libs/enums/getAll.enum.ts @@ -1,5 +1,5 @@ export enum EGetAll { - all = 'all', - will_post = 'will-post', - posted = 'posted', + all = "all", + will_post = "will-post", + posted = "posted", } diff --git a/backend/package.json b/backend/package.json index a4f79cc..9f24a36 100644 --- a/backend/package.json +++ b/backend/package.json @@ -23,11 +23,12 @@ "@nestjs/cache-manager": "2.2.1", "@nestjs/common": "^10.0.0", "@nestjs/core": "^10.0.0", + "@nestjs/jwt": "^10.2.0", "@nestjs/passport": "^10.0.3", "@nestjs/platform-express": "^10.0.0", "@nestjs/swagger": "^7.1.16", "@nestjs/typeorm": "^10.0.1", - "bcrypt": "^5.1.1", + "bcryptjs": "^2.4.3", "cache-manager": "^5.4.0", "cache-manager-redis-store": "^3.0.1", "dotenv": "^16.3.1", @@ -42,6 +43,8 @@ "@nestjs/cli": "^10.0.0", "@nestjs/schematics": "^10.0.0", "@nestjs/testing": "^10.0.0", + "@types/bcryptjs": "^2.4.6", + "@types/bun": "latest", "@types/express": "^4.17.17", "@types/jest": "^29.5.2", "@types/node": "^20.3.1", @@ -60,8 +63,7 @@ "ts-loader": "^9.4.3", "ts-node": "^10.9.1", "tsconfig-paths": "^4.2.0", - "typescript": "^5.1.3", - "@types/bun": "latest" + "typescript": "^5.1.3" }, "jest": { "moduleFileExtensions": [ diff --git a/backend/pnpm-lock.yaml b/backend/pnpm-lock.yaml index 7664061..c2de79c 100644 --- a/backend/pnpm-lock.yaml +++ b/backend/pnpm-lock.yaml @@ -1,29 +1,29 @@ -lockfileVersion: '6.0' +lockfileVersion: "6.0" settings: autoInstallPeers: true excludeLinksFromLockfile: false dependencies: - '@nestjs/cache-manager': + "@nestjs/cache-manager": specifier: 2.2.1 version: 2.2.1(@nestjs/common@10.2.8)(@nestjs/core@10.2.8)(cache-manager@5.4.0)(rxjs@7.8.1) - '@nestjs/common': + "@nestjs/common": specifier: ^10.0.0 version: 10.2.8(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@nestjs/core': + "@nestjs/core": specifier: ^10.0.0 version: 10.2.8(@nestjs/common@10.2.8)(@nestjs/platform-express@10.2.8)(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@nestjs/passport': + "@nestjs/passport": specifier: ^10.0.3 version: 10.0.3(@nestjs/common@10.2.8)(passport@0.7.0) - '@nestjs/platform-express': + "@nestjs/platform-express": specifier: ^10.0.0 version: 10.2.8(@nestjs/common@10.2.8)(@nestjs/core@10.2.8) - '@nestjs/swagger': + "@nestjs/swagger": specifier: ^7.1.16 version: 7.1.16(@nestjs/common@10.2.8)(@nestjs/core@10.2.8)(reflect-metadata@0.1.13) - '@nestjs/typeorm': + "@nestjs/typeorm": specifier: ^10.0.1 version: 10.0.1(@nestjs/common@10.2.8)(@nestjs/core@10.2.8)(reflect-metadata@0.1.13)(rxjs@7.8.1)(typeorm@0.3.17) cache-manager: @@ -55,34 +55,34 @@ dependencies: version: 0.3.17(pg@8.11.3)(ts-node@10.9.1) devDependencies: - '@nestjs/cli': + "@nestjs/cli": specifier: ^10.0.0 version: 10.2.1 - '@nestjs/schematics': + "@nestjs/schematics": specifier: ^10.0.0 version: 10.0.3(chokidar@3.5.3)(typescript@5.2.2) - '@nestjs/testing': + "@nestjs/testing": specifier: ^10.0.0 version: 10.2.8(@nestjs/common@10.2.8)(@nestjs/core@10.2.8)(@nestjs/platform-express@10.2.8) - '@types/express': + "@types/express": specifier: ^4.17.17 version: 4.17.21 - '@types/jest': + "@types/jest": specifier: ^29.5.2 version: 29.5.8 - '@types/node': + "@types/node": specifier: ^20.3.1 version: 20.9.0 - '@types/passport-http-bearer': + "@types/passport-http-bearer": specifier: ^1.0.41 version: 1.0.41 - '@types/supertest': + "@types/supertest": specifier: ^2.0.12 version: 2.0.16 - '@typescript-eslint/eslint-plugin': + "@typescript-eslint/eslint-plugin": specifier: ^6.0.0 version: 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/parser': + "@typescript-eslint/parser": specifier: ^6.0.0 version: 6.10.0(eslint@8.53.0)(typescript@5.2.2) eslint: @@ -123,23 +123,31 @@ devDependencies: version: 5.2.2 packages: - /@aashutoshrathi/word-wrap@1.2.6: - resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==, + } + engines: { node: ">=0.10.0" } dev: true /@ampproject/remapping@2.2.1: - resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==, + } + engines: { node: ">=6.0.0" } dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 + "@jridgewell/gen-mapping": 0.3.3 + "@jridgewell/trace-mapping": 0.3.20 dev: true /@angular-devkit/core@16.2.8(chokidar@3.5.3): - resolution: {integrity: sha512-PTGozYvh1Bin5lB15PwcXa26Ayd17bWGLS3H8Rs0s+04mUDvfNofmweaX1LgumWWy3nCUTDuwHxX10M3G0wE2g==} - engines: {node: ^16.14.0 || >=18.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + resolution: + { + integrity: sha512-PTGozYvh1Bin5lB15PwcXa26Ayd17bWGLS3H8Rs0s+04mUDvfNofmweaX1LgumWWy3nCUTDuwHxX10M3G0wE2g==, + } + engines: { node: ^16.14.0 || >=18.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: ">= 1.13.0" } peerDependencies: chokidar: ^3.5.2 peerDependenciesMeta: @@ -156,12 +164,15 @@ packages: dev: true /@angular-devkit/schematics-cli@16.2.8(chokidar@3.5.3): - resolution: {integrity: sha512-EXURJCzWTVYCipiTT4vxQQOrF63asOUDbeOy3OtiSh7EwIUvxm3BPG6hquJqngEnI/N6bA75NJ1fBhU6Hrh7eA==} - engines: {node: ^16.14.0 || >=18.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + resolution: + { + integrity: sha512-EXURJCzWTVYCipiTT4vxQQOrF63asOUDbeOy3OtiSh7EwIUvxm3BPG6hquJqngEnI/N6bA75NJ1fBhU6Hrh7eA==, + } + engines: { node: ^16.14.0 || >=18.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: ">= 1.13.0" } hasBin: true dependencies: - '@angular-devkit/core': 16.2.8(chokidar@3.5.3) - '@angular-devkit/schematics': 16.2.8(chokidar@3.5.3) + "@angular-devkit/core": 16.2.8(chokidar@3.5.3) + "@angular-devkit/schematics": 16.2.8(chokidar@3.5.3) ansi-colors: 4.1.3 inquirer: 8.2.4 symbol-observable: 4.0.0 @@ -171,10 +182,13 @@ packages: dev: true /@angular-devkit/schematics@16.2.8(chokidar@3.5.3): - resolution: {integrity: sha512-MBiKZOlR9/YMdflALr7/7w/BGAfo/BGTrlkqsIB6rDWV1dYiCgxI+033HsiNssLS6RQyCFx/e7JA2aBBzu9zEg==} - engines: {node: ^16.14.0 || >=18.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + resolution: + { + integrity: sha512-MBiKZOlR9/YMdflALr7/7w/BGAfo/BGTrlkqsIB6rDWV1dYiCgxI+033HsiNssLS6RQyCFx/e7JA2aBBzu9zEg==, + } + engines: { node: ^16.14.0 || >=18.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: ">= 1.13.0" } dependencies: - '@angular-devkit/core': 16.2.8(chokidar@3.5.3) + "@angular-devkit/core": 16.2.8(chokidar@3.5.3) jsonc-parser: 3.2.0 magic-string: 0.30.1 ora: 5.4.1 @@ -184,32 +198,41 @@ packages: dev: true /@babel/code-frame@7.22.13: - resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==, + } + engines: { node: ">=6.9.0" } dependencies: - '@babel/highlight': 7.22.20 + "@babel/highlight": 7.22.20 chalk: 2.4.2 dev: true /@babel/compat-data@7.23.3: - resolution: {integrity: sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==, + } + engines: { node: ">=6.9.0" } dev: true /@babel/core@7.23.3: - resolution: {integrity: sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==, + } + engines: { node: ">=6.9.0" } dependencies: - '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.22.13 - '@babel/generator': 7.23.3 - '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) - '@babel/helpers': 7.23.2 - '@babel/parser': 7.23.3 - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.3 - '@babel/types': 7.23.3 + "@ampproject/remapping": 2.2.1 + "@babel/code-frame": 7.22.13 + "@babel/generator": 7.23.3 + "@babel/helper-compilation-targets": 7.22.15 + "@babel/helper-module-transforms": 7.23.3(@babel/core@7.23.3) + "@babel/helpers": 7.23.2 + "@babel/parser": 7.23.3 + "@babel/template": 7.22.15 + "@babel/traverse": 7.23.3 + "@babel/types": 7.23.3 convert-source-map: 2.0.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -220,286 +243,385 @@ packages: dev: true /@babel/generator@7.23.3: - resolution: {integrity: sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==, + } + engines: { node: ">=6.9.0" } dependencies: - '@babel/types': 7.23.3 - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 + "@babel/types": 7.23.3 + "@jridgewell/gen-mapping": 0.3.3 + "@jridgewell/trace-mapping": 0.3.20 jsesc: 2.5.2 dev: true /@babel/helper-compilation-targets@7.22.15: - resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==, + } + engines: { node: ">=6.9.0" } dependencies: - '@babel/compat-data': 7.23.3 - '@babel/helper-validator-option': 7.22.15 + "@babel/compat-data": 7.23.3 + "@babel/helper-validator-option": 7.22.15 browserslist: 4.22.1 lru-cache: 5.1.1 semver: 6.3.1 dev: true /@babel/helper-environment-visitor@7.22.20: - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==, + } + engines: { node: ">=6.9.0" } dev: true /@babel/helper-function-name@7.23.0: - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==, + } + engines: { node: ">=6.9.0" } dependencies: - '@babel/template': 7.22.15 - '@babel/types': 7.23.3 + "@babel/template": 7.22.15 + "@babel/types": 7.23.3 dev: true /@babel/helper-hoist-variables@7.22.5: - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==, + } + engines: { node: ">=6.9.0" } dependencies: - '@babel/types': 7.23.3 + "@babel/types": 7.23.3 dev: true /@babel/helper-module-imports@7.22.15: - resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==, + } + engines: { node: ">=6.9.0" } dependencies: - '@babel/types': 7.23.3 + "@babel/types": 7.23.3 dev: true /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==, + } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0 + "@babel/core": ^7.0.0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 + "@babel/core": 7.23.3 + "@babel/helper-environment-visitor": 7.22.20 + "@babel/helper-module-imports": 7.22.15 + "@babel/helper-simple-access": 7.22.5 + "@babel/helper-split-export-declaration": 7.22.6 + "@babel/helper-validator-identifier": 7.22.20 dev: true /@babel/helper-plugin-utils@7.22.5: - resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==, + } + engines: { node: ">=6.9.0" } dev: true /@babel/helper-simple-access@7.22.5: - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==, + } + engines: { node: ">=6.9.0" } dependencies: - '@babel/types': 7.23.3 + "@babel/types": 7.23.3 dev: true /@babel/helper-split-export-declaration@7.22.6: - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==, + } + engines: { node: ">=6.9.0" } dependencies: - '@babel/types': 7.23.3 + "@babel/types": 7.23.3 dev: true /@babel/helper-string-parser@7.22.5: - resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==, + } + engines: { node: ">=6.9.0" } dev: true /@babel/helper-validator-identifier@7.22.20: - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} - engines: {node: '>=6.9.0'} + 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==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==, + } + engines: { node: ">=6.9.0" } dev: true /@babel/helpers@7.23.2: - resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==, + } + engines: { node: ">=6.9.0" } dependencies: - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.3 - '@babel/types': 7.23.3 + "@babel/template": 7.22.15 + "@babel/traverse": 7.23.3 + "@babel/types": 7.23.3 transitivePeerDependencies: - supports-color dev: true /@babel/highlight@7.22.20: - resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==, + } + engines: { node: ">=6.9.0" } dependencies: - '@babel/helper-validator-identifier': 7.22.20 + "@babel/helper-validator-identifier": 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 dev: true /@babel/parser@7.23.3: - resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==, + } + engines: { node: ">=6.0.0" } hasBin: true dependencies: - '@babel/types': 7.23.3 + "@babel/types": 7.23.3 dev: true /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.3): - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + resolution: + { + integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==, + } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 + "@babel/core": 7.23.3 + "@babel/helper-plugin-utils": 7.22.5 dev: true /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.3): - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + resolution: + { + integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==, + } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 + "@babel/core": 7.23.3 + "@babel/helper-plugin-utils": 7.22.5 dev: true /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.3): - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + resolution: + { + integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==, + } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 + "@babel/core": 7.23.3 + "@babel/helper-plugin-utils": 7.22.5 dev: true /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.3): - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + resolution: + { + integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==, + } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 + "@babel/core": 7.23.3 + "@babel/helper-plugin-utils": 7.22.5 dev: true /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.3): - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + resolution: + { + integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==, + } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 + "@babel/core": 7.23.3 + "@babel/helper-plugin-utils": 7.22.5 dev: true /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==, + } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 + "@babel/core": 7.23.3 + "@babel/helper-plugin-utils": 7.22.5 dev: true /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.3): - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + resolution: + { + integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==, + } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 + "@babel/core": 7.23.3 + "@babel/helper-plugin-utils": 7.22.5 dev: true /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.3): - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + resolution: + { + integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==, + } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 + "@babel/core": 7.23.3 + "@babel/helper-plugin-utils": 7.22.5 dev: true /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.3): - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + resolution: + { + integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==, + } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 + "@babel/core": 7.23.3 + "@babel/helper-plugin-utils": 7.22.5 dev: true /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.3): - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + resolution: + { + integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==, + } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 + "@babel/core": 7.23.3 + "@babel/helper-plugin-utils": 7.22.5 dev: true /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.3): - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + resolution: + { + integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==, + } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 + "@babel/core": 7.23.3 + "@babel/helper-plugin-utils": 7.22.5 dev: true /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.3): - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + resolution: + { + integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==, + } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 + "@babel/core": 7.23.3 + "@babel/helper-plugin-utils": 7.22.5 dev: true /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.3): - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==, + } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 + "@babel/core": 7.23.3 + "@babel/helper-plugin-utils": 7.22.5 dev: true /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==, + } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 + "@babel/core": ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 + "@babel/core": 7.23.3 + "@babel/helper-plugin-utils": 7.22.5 dev: true /@babel/runtime@7.23.2: - resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==, + } + engines: { node: ">=6.9.0" } dependencies: regenerator-runtime: 0.14.0 dev: false /@babel/template@7.22.15: - resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==, + } + engines: { node: ">=6.9.0" } dependencies: - '@babel/code-frame': 7.22.13 - '@babel/parser': 7.23.3 - '@babel/types': 7.23.3 + "@babel/code-frame": 7.22.13 + "@babel/parser": 7.23.3 + "@babel/types": 7.23.3 dev: true /@babel/traverse@7.23.3: - resolution: {integrity: sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==, + } + engines: { node: ">=6.9.0" } dependencies: - '@babel/code-frame': 7.22.13 - '@babel/generator': 7.23.3 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.3 - '@babel/types': 7.23.3 + "@babel/code-frame": 7.22.13 + "@babel/generator": 7.23.3 + "@babel/helper-environment-visitor": 7.22.20 + "@babel/helper-function-name": 7.23.0 + "@babel/helper-hoist-variables": 7.22.5 + "@babel/helper-split-export-declaration": 7.22.6 + "@babel/parser": 7.23.3 + "@babel/types": 7.23.3 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: @@ -507,34 +629,49 @@ packages: dev: true /@babel/types@7.23.3: - resolution: {integrity: sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==, + } + engines: { node: ">=6.9.0" } dependencies: - '@babel/helper-string-parser': 7.22.5 - '@babel/helper-validator-identifier': 7.22.20 + "@babel/helper-string-parser": 7.22.5 + "@babel/helper-validator-identifier": 7.22.20 to-fast-properties: 2.0.0 dev: true /@bcoe/v8-coverage@0.2.3: - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + resolution: + { + integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==, + } dev: true /@colors/colors@1.5.0: - resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} - engines: {node: '>=0.1.90'} + resolution: + { + integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==, + } + engines: { node: ">=0.1.90" } requiresBuild: true dev: true optional: true /@cspotcode/source-map-support@0.8.1: - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==, + } + engines: { node: ">=12" } dependencies: - '@jridgewell/trace-mapping': 0.3.9 + "@jridgewell/trace-mapping": 0.3.9 /@eslint-community/eslint-utils@4.4.0(eslint@8.53.0): - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: @@ -543,13 +680,19 @@ packages: dev: true /@eslint-community/regexpp@4.10.0: - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + resolution: + { + integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==, + } + engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 } dev: true /@eslint/eslintrc@2.1.3: - resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } dependencies: ajv: 6.12.6 debug: 4.3.4 @@ -565,15 +708,21 @@ packages: dev: true /@eslint/js@8.53.0: - resolution: {integrity: sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } dev: true /@humanwhocodes/config-array@0.11.13: - resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} - engines: {node: '>=10.10.0'} + resolution: + { + integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==, + } + engines: { node: ">=10.10.0" } dependencies: - '@humanwhocodes/object-schema': 2.0.1 + "@humanwhocodes/object-schema": 2.0.1 debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: @@ -581,17 +730,26 @@ packages: dev: true /@humanwhocodes/module-importer@1.0.1: - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} + resolution: + { + integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==, + } + engines: { node: ">=12.22" } dev: true /@humanwhocodes/object-schema@2.0.1: - resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} + resolution: + { + integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==, + } dev: true /@isaacs/cliui@8.0.2: - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==, + } + engines: { node: ">=12" } dependencies: string-width: 5.1.2 string-width-cjs: /string-width@4.2.3 @@ -602,8 +760,11 @@ packages: dev: true /@istanbuljs/load-nyc-config@1.1.0: - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==, + } + engines: { node: ">=8" } dependencies: camelcase: 5.3.1 find-up: 4.1.0 @@ -613,16 +774,22 @@ packages: dev: true /@istanbuljs/schema@0.1.3: - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==, + } + engines: { node: ">=8" } dev: true /@jest/console@29.7.0: - resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - '@jest/types': 29.6.3 - '@types/node': 20.9.0 + "@jest/types": 29.6.3 + "@types/node": 20.9.0 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -630,20 +797,23 @@ packages: dev: true /@jest/core@29.7.0(ts-node@10.9.1): - resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: node-notifier: optional: true dependencies: - '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.9.0 + "@jest/console": 29.7.0 + "@jest/reporters": 29.7.0 + "@jest/test-result": 29.7.0 + "@jest/transform": 29.7.0 + "@jest/types": 29.6.3 + "@types/node": 20.9.0 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 @@ -673,25 +843,34 @@ packages: dev: true /@jest/environment@29.7.0: - resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.9.0 + "@jest/fake-timers": 29.7.0 + "@jest/types": 29.6.3 + "@types/node": 20.9.0 jest-mock: 29.7.0 dev: true /@jest/expect-utils@29.7.0: - resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: jest-get-type: 29.6.3 dev: true /@jest/expect@29.7.0: - resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: expect: 29.7.0 jest-snapshot: 29.7.0 @@ -700,45 +879,54 @@ packages: dev: true /@jest/fake-timers@29.7.0: - resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - '@jest/types': 29.6.3 - '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.9.0 + "@jest/types": 29.6.3 + "@sinonjs/fake-timers": 10.3.0 + "@types/node": 20.9.0 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 dev: true /@jest/globals@29.7.0: - resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/types': 29.6.3 + "@jest/environment": 29.7.0 + "@jest/expect": 29.7.0 + "@jest/types": 29.6.3 jest-mock: 29.7.0 transitivePeerDependencies: - supports-color dev: true /@jest/reporters@29.7.0: - resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: node-notifier: optional: true dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.20 - '@types/node': 20.9.0 + "@bcoe/v8-coverage": 0.2.3 + "@jest/console": 29.7.0 + "@jest/test-result": 29.7.0 + "@jest/transform": 29.7.0 + "@jest/types": 29.6.3 + "@jridgewell/trace-mapping": 0.3.20 + "@types/node": 20.9.0 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -761,48 +949,63 @@ packages: dev: true /@jest/schemas@29.6.3: - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - '@sinclair/typebox': 0.27.8 + "@sinclair/typebox": 0.27.8 dev: true /@jest/source-map@29.6.3: - resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - '@jridgewell/trace-mapping': 0.3.20 + "@jridgewell/trace-mapping": 0.3.20 callsites: 3.1.0 graceful-fs: 4.2.11 dev: true /@jest/test-result@29.7.0: - resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - '@jest/console': 29.7.0 - '@jest/types': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 + "@jest/console": 29.7.0 + "@jest/types": 29.6.3 + "@types/istanbul-lib-coverage": 2.0.6 collect-v8-coverage: 1.0.2 dev: true /@jest/test-sequencer@29.7.0: - resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - '@jest/test-result': 29.7.0 + "@jest/test-result": 29.7.0 graceful-fs: 4.2.11 jest-haste-map: 29.7.0 slash: 3.0.0 dev: true /@jest/transform@29.7.0: - resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - '@babel/core': 7.23.3 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.20 + "@babel/core": 7.23.3 + "@jest/types": 29.6.3 + "@jridgewell/trace-mapping": 0.3.20 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 convert-source-map: 2.0.0 @@ -820,93 +1023,126 @@ packages: dev: true /@jest/types@29.6.3: - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - '@jest/schemas': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 20.9.0 - '@types/yargs': 17.0.31 + "@jest/schemas": 29.6.3 + "@types/istanbul-lib-coverage": 2.0.6 + "@types/istanbul-reports": 3.0.4 + "@types/node": 20.9.0 + "@types/yargs": 17.0.31 chalk: 4.1.2 dev: true /@jridgewell/gen-mapping@0.3.3: - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==, + } + engines: { node: ">=6.0.0" } dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.20 + "@jridgewell/set-array": 1.1.2 + "@jridgewell/sourcemap-codec": 1.4.15 + "@jridgewell/trace-mapping": 0.3.20 dev: true /@jridgewell/resolve-uri@3.1.1: - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==, + } + engines: { node: ">=6.0.0" } /@jridgewell/set-array@1.1.2: - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} - engines: {node: '>=6.0.0'} + 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==} + resolution: + { + integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==, + } dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 + "@jridgewell/gen-mapping": 0.3.3 + "@jridgewell/trace-mapping": 0.3.20 dev: true /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + resolution: + { + integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==, + } /@jridgewell/trace-mapping@0.3.20: - resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} + resolution: + { + integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==, + } dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 + "@jridgewell/resolve-uri": 3.1.1 + "@jridgewell/sourcemap-codec": 1.4.15 dev: true /@jridgewell/trace-mapping@0.3.9: - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + resolution: + { + integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==, + } dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 + "@jridgewell/resolve-uri": 3.1.1 + "@jridgewell/sourcemap-codec": 1.4.15 /@lukeed/csprng@1.1.0: - resolution: {integrity: sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==, + } + engines: { node: ">=8" } /@nestjs/cache-manager@2.2.1(@nestjs/common@10.2.8)(@nestjs/core@10.2.8)(cache-manager@5.4.0)(rxjs@7.8.1): - resolution: {integrity: sha512-mXj0zenuyMPJICokwVud4Kjh0+pzBNBAgfpx3I48LozNkd8Qfv/MAhZsb15GihGpbFRxafUo3p6XvtAqRm8GRw==} + resolution: + { + integrity: sha512-mXj0zenuyMPJICokwVud4Kjh0+pzBNBAgfpx3I48LozNkd8Qfv/MAhZsb15GihGpbFRxafUo3p6XvtAqRm8GRw==, + } peerDependencies: - '@nestjs/common': ^9.0.0 || ^10.0.0 - '@nestjs/core': ^9.0.0 || ^10.0.0 + "@nestjs/common": ^9.0.0 || ^10.0.0 + "@nestjs/core": ^9.0.0 || ^10.0.0 cache-manager: <=5 rxjs: ^7.0.0 dependencies: - '@nestjs/common': 10.2.8(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@nestjs/core': 10.2.8(@nestjs/common@10.2.8)(@nestjs/platform-express@10.2.8)(reflect-metadata@0.1.13)(rxjs@7.8.1) + "@nestjs/common": 10.2.8(reflect-metadata@0.1.13)(rxjs@7.8.1) + "@nestjs/core": 10.2.8(@nestjs/common@10.2.8)(@nestjs/platform-express@10.2.8)(reflect-metadata@0.1.13)(rxjs@7.8.1) cache-manager: 5.4.0 rxjs: 7.8.1 dev: false /@nestjs/cli@10.2.1: - resolution: {integrity: sha512-CAJAQwmxFZfB3RTvqz/eaXXWpyU+mZ4QSqfBYzjneTsPgF+uyOAW3yQpaLNn9Dfcv39R9UxSuAhayv6yuFd+Jg==} - engines: {node: '>= 16.14'} + resolution: + { + integrity: sha512-CAJAQwmxFZfB3RTvqz/eaXXWpyU+mZ4QSqfBYzjneTsPgF+uyOAW3yQpaLNn9Dfcv39R9UxSuAhayv6yuFd+Jg==, + } + engines: { node: ">= 16.14" } hasBin: true peerDependencies: - '@swc/cli': ^0.1.62 - '@swc/core': ^1.3.62 + "@swc/cli": ^0.1.62 + "@swc/core": ^1.3.62 peerDependenciesMeta: - '@swc/cli': + "@swc/cli": optional: true - '@swc/core': + "@swc/core": optional: true dependencies: - '@angular-devkit/core': 16.2.8(chokidar@3.5.3) - '@angular-devkit/schematics': 16.2.8(chokidar@3.5.3) - '@angular-devkit/schematics-cli': 16.2.8(chokidar@3.5.3) - '@nestjs/schematics': 10.0.3(chokidar@3.5.3)(typescript@5.2.2) + "@angular-devkit/core": 16.2.8(chokidar@3.5.3) + "@angular-devkit/schematics": 16.2.8(chokidar@3.5.3) + "@angular-devkit/schematics-cli": 16.2.8(chokidar@3.5.3) + "@nestjs/schematics": 10.0.3(chokidar@3.5.3)(typescript@5.2.2) chalk: 4.1.2 chokidar: 3.5.3 cli-table3: 0.6.3 @@ -933,10 +1169,13 @@ packages: dev: true /@nestjs/common@10.2.8(reflect-metadata@0.1.13)(rxjs@7.8.1): - resolution: {integrity: sha512-rmpwcdvq2IWMmsUVP8rsdKub6uDWk7dwCYo0aif50JTwcvcxzaP3iKVFKoSgvp0RKYu8h15+/AEOfaInmPpl0Q==} + resolution: + { + integrity: sha512-rmpwcdvq2IWMmsUVP8rsdKub6uDWk7dwCYo0aif50JTwcvcxzaP3iKVFKoSgvp0RKYu8h15+/AEOfaInmPpl0Q==, + } peerDependencies: - class-transformer: '*' - class-validator: '*' + class-transformer: "*" + class-validator: "*" reflect-metadata: ^0.1.12 rxjs: ^7.1.0 peerDependenciesMeta: @@ -952,26 +1191,29 @@ packages: uid: 2.0.2 /@nestjs/core@10.2.8(@nestjs/common@10.2.8)(@nestjs/platform-express@10.2.8)(reflect-metadata@0.1.13)(rxjs@7.8.1): - resolution: {integrity: sha512-9+MZ2s8ixfY9Bl/M9ofChiyYymcwdK9ZWNH4GDMF7Am7XRAQ1oqde6MYGG05rhQwiVXuTwaYLlXciJKfsrg5qg==} + resolution: + { + integrity: sha512-9+MZ2s8ixfY9Bl/M9ofChiyYymcwdK9ZWNH4GDMF7Am7XRAQ1oqde6MYGG05rhQwiVXuTwaYLlXciJKfsrg5qg==, + } requiresBuild: true peerDependencies: - '@nestjs/common': ^10.0.0 - '@nestjs/microservices': ^10.0.0 - '@nestjs/platform-express': ^10.0.0 - '@nestjs/websockets': ^10.0.0 + "@nestjs/common": ^10.0.0 + "@nestjs/microservices": ^10.0.0 + "@nestjs/platform-express": ^10.0.0 + "@nestjs/websockets": ^10.0.0 reflect-metadata: ^0.1.12 rxjs: ^7.1.0 peerDependenciesMeta: - '@nestjs/microservices': + "@nestjs/microservices": optional: true - '@nestjs/platform-express': + "@nestjs/platform-express": optional: true - '@nestjs/websockets': + "@nestjs/websockets": optional: true dependencies: - '@nestjs/common': 10.2.8(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@nestjs/platform-express': 10.2.8(@nestjs/common@10.2.8)(@nestjs/core@10.2.8) - '@nuxtjs/opencollective': 0.3.2 + "@nestjs/common": 10.2.8(reflect-metadata@0.1.13)(rxjs@7.8.1) + "@nestjs/platform-express": 10.2.8(@nestjs/common@10.2.8)(@nestjs/core@10.2.8) + "@nuxtjs/opencollective": 0.3.2 fast-safe-stringify: 2.1.1 iterare: 1.2.1 path-to-regexp: 3.2.0 @@ -983,9 +1225,12 @@ packages: - encoding /@nestjs/mapped-types@2.0.3(@nestjs/common@10.2.8)(reflect-metadata@0.1.13): - resolution: {integrity: sha512-40Zdqg98lqoF0+7ThWIZFStxgzisK6GG22+1ABO4kZiGF/Tu2FE+DYLw+Q9D94vcFWizJ+MSjNN4ns9r6hIGxw==} + resolution: + { + integrity: sha512-40Zdqg98lqoF0+7ThWIZFStxgzisK6GG22+1ABO4kZiGF/Tu2FE+DYLw+Q9D94vcFWizJ+MSjNN4ns9r6hIGxw==, + } peerDependencies: - '@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0 + "@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 @@ -995,28 +1240,34 @@ packages: class-validator: optional: true dependencies: - '@nestjs/common': 10.2.8(reflect-metadata@0.1.13)(rxjs@7.8.1) + "@nestjs/common": 10.2.8(reflect-metadata@0.1.13)(rxjs@7.8.1) reflect-metadata: 0.1.13 dev: false /@nestjs/passport@10.0.3(@nestjs/common@10.2.8)(passport@0.7.0): - resolution: {integrity: sha512-znJ9Y4S8ZDVY+j4doWAJ8EuuVO7SkQN3yOBmzxbGaXbvcSwFDAdGJ+OMCg52NdzIO4tQoN4pYKx8W6M0ArfFRQ==} + resolution: + { + integrity: sha512-znJ9Y4S8ZDVY+j4doWAJ8EuuVO7SkQN3yOBmzxbGaXbvcSwFDAdGJ+OMCg52NdzIO4tQoN4pYKx8W6M0ArfFRQ==, + } peerDependencies: - '@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0 + "@nestjs/common": ^8.0.0 || ^9.0.0 || ^10.0.0 passport: ^0.4.0 || ^0.5.0 || ^0.6.0 || ^0.7.0 dependencies: - '@nestjs/common': 10.2.8(reflect-metadata@0.1.13)(rxjs@7.8.1) + "@nestjs/common": 10.2.8(reflect-metadata@0.1.13)(rxjs@7.8.1) passport: 0.7.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==} + resolution: + { + integrity: sha512-WoSSVtwIRc5AdGMHWVzWZK4JZLT0f4o2xW8P9gQvcX+omL8W1kXCfY8GQYXNBG84XmBNYH8r0FtC8oMe/lH5NQ==, + } peerDependencies: - '@nestjs/common': ^10.0.0 - '@nestjs/core': ^10.0.0 + "@nestjs/common": ^10.0.0 + "@nestjs/core": ^10.0.0 dependencies: - '@nestjs/common': 10.2.8(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@nestjs/core': 10.2.8(@nestjs/common@10.2.8)(@nestjs/platform-express@10.2.8)(reflect-metadata@0.1.13)(rxjs@7.8.1) + "@nestjs/common": 10.2.8(reflect-metadata@0.1.13)(rxjs@7.8.1) + "@nestjs/core": 10.2.8(@nestjs/common@10.2.8)(@nestjs/platform-express@10.2.8)(reflect-metadata@0.1.13)(rxjs@7.8.1) body-parser: 1.20.2 cors: 2.8.5 express: 4.18.2 @@ -1026,12 +1277,15 @@ packages: - supports-color /@nestjs/schematics@10.0.3(chokidar@3.5.3)(typescript@5.2.2): - resolution: {integrity: sha512-2BRujK0GqGQ7j1Zpz+obVfskDnnOeVKt5aXoSaVngKo8Oczy8uYCY+R547TQB+Kf35epdfFER2pVnQrX3/It5A==} + resolution: + { + integrity: sha512-2BRujK0GqGQ7j1Zpz+obVfskDnnOeVKt5aXoSaVngKo8Oczy8uYCY+R547TQB+Kf35epdfFER2pVnQrX3/It5A==, + } peerDependencies: - typescript: '>=4.8.2' + typescript: ">=4.8.2" dependencies: - '@angular-devkit/core': 16.2.8(chokidar@3.5.3) - '@angular-devkit/schematics': 16.2.8(chokidar@3.5.3) + "@angular-devkit/core": 16.2.8(chokidar@3.5.3) + "@angular-devkit/schematics": 16.2.8(chokidar@3.5.3) comment-json: 4.2.3 jsonc-parser: 3.2.0 pluralize: 8.0.0 @@ -1041,25 +1295,28 @@ packages: dev: true /@nestjs/swagger@7.1.16(@nestjs/common@10.2.8)(@nestjs/core@10.2.8)(reflect-metadata@0.1.13): - resolution: {integrity: sha512-f9KBk/BX9MUKPTj7tQNYJ124wV/jP5W2lwWHLGwe/4qQXixuDOo39zP55HIJ44LE7S04B7BOeUOo9GBJD/vRcw==} + resolution: + { + integrity: sha512-f9KBk/BX9MUKPTj7tQNYJ124wV/jP5W2lwWHLGwe/4qQXixuDOo39zP55HIJ44LE7S04B7BOeUOo9GBJD/vRcw==, + } peerDependencies: - '@fastify/static': ^6.0.0 - '@nestjs/common': ^9.0.0 || ^10.0.0 - '@nestjs/core': ^9.0.0 || ^10.0.0 - class-transformer: '*' - class-validator: '*' + "@fastify/static": ^6.0.0 + "@nestjs/common": ^9.0.0 || ^10.0.0 + "@nestjs/core": ^9.0.0 || ^10.0.0 + class-transformer: "*" + class-validator: "*" reflect-metadata: ^0.1.12 peerDependenciesMeta: - '@fastify/static': + "@fastify/static": optional: true class-transformer: optional: true class-validator: optional: true dependencies: - '@nestjs/common': 10.2.8(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@nestjs/core': 10.2.8(@nestjs/common@10.2.8)(@nestjs/platform-express@10.2.8)(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@nestjs/mapped-types': 2.0.3(@nestjs/common@10.2.8)(reflect-metadata@0.1.13) + "@nestjs/common": 10.2.8(reflect-metadata@0.1.13)(rxjs@7.8.1) + "@nestjs/core": 10.2.8(@nestjs/common@10.2.8)(@nestjs/platform-express@10.2.8)(reflect-metadata@0.1.13)(rxjs@7.8.1) + "@nestjs/mapped-types": 2.0.3(@nestjs/common@10.2.8)(reflect-metadata@0.1.13) js-yaml: 4.1.0 lodash: 4.17.21 path-to-regexp: 3.2.0 @@ -1068,35 +1325,41 @@ packages: dev: false /@nestjs/testing@10.2.8(@nestjs/common@10.2.8)(@nestjs/core@10.2.8)(@nestjs/platform-express@10.2.8): - resolution: {integrity: sha512-9Kj5IQhM67/nj/MT6Wi2OmWr5YQnCMptwKVFrX1TDaikpY12196v7frk0jVjdT7wms7rV07GZle9I2z0aSjqtQ==} + resolution: + { + integrity: sha512-9Kj5IQhM67/nj/MT6Wi2OmWr5YQnCMptwKVFrX1TDaikpY12196v7frk0jVjdT7wms7rV07GZle9I2z0aSjqtQ==, + } peerDependencies: - '@nestjs/common': ^10.0.0 - '@nestjs/core': ^10.0.0 - '@nestjs/microservices': ^10.0.0 - '@nestjs/platform-express': ^10.0.0 + "@nestjs/common": ^10.0.0 + "@nestjs/core": ^10.0.0 + "@nestjs/microservices": ^10.0.0 + "@nestjs/platform-express": ^10.0.0 peerDependenciesMeta: - '@nestjs/microservices': + "@nestjs/microservices": optional: true - '@nestjs/platform-express': + "@nestjs/platform-express": optional: true dependencies: - '@nestjs/common': 10.2.8(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@nestjs/core': 10.2.8(@nestjs/common@10.2.8)(@nestjs/platform-express@10.2.8)(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@nestjs/platform-express': 10.2.8(@nestjs/common@10.2.8)(@nestjs/core@10.2.8) + "@nestjs/common": 10.2.8(reflect-metadata@0.1.13)(rxjs@7.8.1) + "@nestjs/core": 10.2.8(@nestjs/common@10.2.8)(@nestjs/platform-express@10.2.8)(reflect-metadata@0.1.13)(rxjs@7.8.1) + "@nestjs/platform-express": 10.2.8(@nestjs/common@10.2.8)(@nestjs/core@10.2.8) tslib: 2.6.2 dev: true /@nestjs/typeorm@10.0.1(@nestjs/common@10.2.8)(@nestjs/core@10.2.8)(reflect-metadata@0.1.13)(rxjs@7.8.1)(typeorm@0.3.17): - resolution: {integrity: sha512-YVFYL7D25VAVp5/G+KLXIgsRfYomA+VaFZBpm2rtwrrBOmkXNrxr7kuI2bBBO/Xy4kKBDe6wbvIVVFeEA7/ngA==} + resolution: + { + integrity: sha512-YVFYL7D25VAVp5/G+KLXIgsRfYomA+VaFZBpm2rtwrrBOmkXNrxr7kuI2bBBO/Xy4kKBDe6wbvIVVFeEA7/ngA==, + } peerDependencies: - '@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0 - '@nestjs/core': ^8.0.0 || ^9.0.0 || ^10.0.0 + "@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.13 rxjs: ^7.2.0 typeorm: ^0.3.0 dependencies: - '@nestjs/common': 10.2.8(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@nestjs/core': 10.2.8(@nestjs/common@10.2.8)(@nestjs/platform-express@10.2.8)(reflect-metadata@0.1.13)(rxjs@7.8.1) + "@nestjs/common": 10.2.8(reflect-metadata@0.1.13)(rxjs@7.8.1) + "@nestjs/core": 10.2.8(@nestjs/common@10.2.8)(@nestjs/platform-express@10.2.8)(reflect-metadata@0.1.13)(rxjs@7.8.1) reflect-metadata: 0.1.13 rxjs: 7.8.1 typeorm: 0.3.17(pg@8.11.3)(ts-node@10.9.1) @@ -1104,29 +1367,41 @@ packages: dev: false /@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, + } + engines: { node: ">= 8" } dependencies: - '@nodelib/fs.stat': 2.0.5 + "@nodelib/fs.stat": 2.0.5 run-parallel: 1.2.0 dev: true /@nodelib/fs.stat@2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, + } + engines: { node: ">= 8" } dev: true /@nodelib/fs.walk@1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, + } + engines: { node: ">= 8" } dependencies: - '@nodelib/fs.scandir': 2.1.5 + "@nodelib/fs.scandir": 2.1.5 fastq: 1.15.0 dev: true /@nuxtjs/opencollective@0.3.2: - resolution: {integrity: sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==} - engines: {node: '>=8.0.0', npm: '>=5.0.0'} + resolution: + { + integrity: sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==, + } + engines: { node: ">=8.0.0", npm: ">=5.0.0" } hasBin: true dependencies: chalk: 4.1.2 @@ -1136,15 +1411,21 @@ packages: - encoding /@pkgjs/parseargs@0.11.0: - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, + } + engines: { node: ">=14" } requiresBuild: true dev: true optional: true /@pkgr/utils@2.4.2: - resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + resolution: + { + integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==, + } + engines: { node: ^12.20.0 || ^14.18.0 || >=16.0.0 } dependencies: cross-spawn: 7.0.3 fast-glob: 3.3.2 @@ -1155,16 +1436,22 @@ packages: dev: true /@redis/bloom@1.2.0(@redis/client@1.5.14): - resolution: {integrity: sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==} + resolution: + { + integrity: sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==, + } peerDependencies: - '@redis/client': ^1.0.0 + "@redis/client": ^1.0.0 dependencies: - '@redis/client': 1.5.14 + "@redis/client": 1.5.14 dev: false /@redis/client@1.5.14: - resolution: {integrity: sha512-YGn0GqsRBFUQxklhY7v562VMOP0DcmlrHHs3IV1mFE3cbxe31IITUkqhBcIhVSI/2JqtWAJXg5mjV4aU+zD0HA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-YGn0GqsRBFUQxklhY7v562VMOP0DcmlrHHs3IV1mFE3cbxe31IITUkqhBcIhVSI/2JqtWAJXg5mjV4aU+zD0HA==, + } + engines: { node: ">=14" } dependencies: cluster-key-slot: 1.1.2 generic-pool: 3.9.0 @@ -1172,332 +1459,494 @@ packages: dev: false /@redis/graph@1.1.1(@redis/client@1.5.14): - resolution: {integrity: sha512-FEMTcTHZozZciLRl6GiiIB4zGm5z5F3F6a6FZCyrfxdKOhFlGkiAqlexWMBzCi4DcRoyiOsuLfW+cjlGWyExOw==} + resolution: + { + integrity: sha512-FEMTcTHZozZciLRl6GiiIB4zGm5z5F3F6a6FZCyrfxdKOhFlGkiAqlexWMBzCi4DcRoyiOsuLfW+cjlGWyExOw==, + } peerDependencies: - '@redis/client': ^1.0.0 + "@redis/client": ^1.0.0 dependencies: - '@redis/client': 1.5.14 + "@redis/client": 1.5.14 dev: false /@redis/json@1.0.6(@redis/client@1.5.14): - resolution: {integrity: sha512-rcZO3bfQbm2zPRpqo82XbW8zg4G/w4W3tI7X8Mqleq9goQjAGLL7q/1n1ZX4dXEAmORVZ4s1+uKLaUOg7LrUhw==} + resolution: + { + integrity: sha512-rcZO3bfQbm2zPRpqo82XbW8zg4G/w4W3tI7X8Mqleq9goQjAGLL7q/1n1ZX4dXEAmORVZ4s1+uKLaUOg7LrUhw==, + } peerDependencies: - '@redis/client': ^1.0.0 + "@redis/client": ^1.0.0 dependencies: - '@redis/client': 1.5.14 + "@redis/client": 1.5.14 dev: false /@redis/search@1.1.6(@redis/client@1.5.14): - resolution: {integrity: sha512-mZXCxbTYKBQ3M2lZnEddwEAks0Kc7nauire8q20oA0oA/LoA+E/b5Y5KZn232ztPb1FkIGqo12vh3Lf+Vw5iTw==} + resolution: + { + integrity: sha512-mZXCxbTYKBQ3M2lZnEddwEAks0Kc7nauire8q20oA0oA/LoA+E/b5Y5KZn232ztPb1FkIGqo12vh3Lf+Vw5iTw==, + } peerDependencies: - '@redis/client': ^1.0.0 + "@redis/client": ^1.0.0 dependencies: - '@redis/client': 1.5.14 + "@redis/client": 1.5.14 dev: false /@redis/time-series@1.0.5(@redis/client@1.5.14): - resolution: {integrity: sha512-IFjIgTusQym2B5IZJG3XKr5llka7ey84fw/NOYqESP5WUfQs9zz1ww/9+qoz4ka/S6KcGBodzlCeZ5UImKbscg==} + resolution: + { + integrity: sha512-IFjIgTusQym2B5IZJG3XKr5llka7ey84fw/NOYqESP5WUfQs9zz1ww/9+qoz4ka/S6KcGBodzlCeZ5UImKbscg==, + } peerDependencies: - '@redis/client': ^1.0.0 + "@redis/client": ^1.0.0 dependencies: - '@redis/client': 1.5.14 + "@redis/client": 1.5.14 dev: false /@sinclair/typebox@0.27.8: - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + resolution: + { + integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==, + } dev: true /@sinonjs/commons@3.0.0: - resolution: {integrity: sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==} + resolution: + { + integrity: sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==, + } dependencies: type-detect: 4.0.8 dev: true /@sinonjs/fake-timers@10.3.0: - resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + resolution: + { + integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==, + } dependencies: - '@sinonjs/commons': 3.0.0 + "@sinonjs/commons": 3.0.0 dev: true /@sqltools/formatter@1.2.5: - resolution: {integrity: sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==} + resolution: + { + integrity: sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==, + } dev: false /@tsconfig/node10@1.0.9: - resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + resolution: + { + integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==, + } /@tsconfig/node12@1.0.11: - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + resolution: + { + integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==, + } /@tsconfig/node14@1.0.3: - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + resolution: + { + integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==, + } /@tsconfig/node16@1.0.4: - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + resolution: + { + integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==, + } /@types/accepts@1.3.7: - resolution: {integrity: sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==} + resolution: + { + integrity: sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==, + } dependencies: - '@types/node': 20.9.0 + "@types/node": 20.9.0 dev: true /@types/babel__core@7.20.4: - resolution: {integrity: sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==} + resolution: + { + integrity: sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==, + } dependencies: - '@babel/parser': 7.23.3 - '@babel/types': 7.23.3 - '@types/babel__generator': 7.6.7 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.4 + "@babel/parser": 7.23.3 + "@babel/types": 7.23.3 + "@types/babel__generator": 7.6.7 + "@types/babel__template": 7.4.4 + "@types/babel__traverse": 7.20.4 dev: true /@types/babel__generator@7.6.7: - resolution: {integrity: sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==} + resolution: + { + integrity: sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==, + } dependencies: - '@babel/types': 7.23.3 + "@babel/types": 7.23.3 dev: true /@types/babel__template@7.4.4: - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + resolution: + { + integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==, + } dependencies: - '@babel/parser': 7.23.3 - '@babel/types': 7.23.3 + "@babel/parser": 7.23.3 + "@babel/types": 7.23.3 dev: true /@types/babel__traverse@7.20.4: - resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==} + resolution: + { + integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==, + } dependencies: - '@babel/types': 7.23.3 + "@babel/types": 7.23.3 dev: true /@types/body-parser@1.19.5: - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + resolution: + { + integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==, + } dependencies: - '@types/connect': 3.4.38 - '@types/node': 20.9.0 + "@types/connect": 3.4.38 + "@types/node": 20.9.0 dev: true /@types/connect@3.4.38: - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + resolution: + { + integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==, + } dependencies: - '@types/node': 20.9.0 + "@types/node": 20.9.0 dev: true /@types/content-disposition@0.5.8: - resolution: {integrity: sha512-QVSSvno3dE0MgO76pJhmv4Qyi/j0Yk9pBp0Y7TJ2Tlj+KCgJWY6qX7nnxCOLkZ3VYRSIk1WTxCvwUSdx6CCLdg==} + resolution: + { + integrity: sha512-QVSSvno3dE0MgO76pJhmv4Qyi/j0Yk9pBp0Y7TJ2Tlj+KCgJWY6qX7nnxCOLkZ3VYRSIk1WTxCvwUSdx6CCLdg==, + } dev: true /@types/cookiejar@2.1.4: - resolution: {integrity: sha512-b698BLJ6kPVd6uhHsY7wlebZdrWPXYied883PDSzpJZYOP97EOn/oGdLCH3jJf157srkFReIZY5v0H1s8Dozrg==} + resolution: + { + integrity: sha512-b698BLJ6kPVd6uhHsY7wlebZdrWPXYied883PDSzpJZYOP97EOn/oGdLCH3jJf157srkFReIZY5v0H1s8Dozrg==, + } dev: true /@types/cookies@0.7.10: - resolution: {integrity: sha512-hmUCjAk2fwZVPPkkPBcI7jGLIR5mg4OVoNMBwU6aVsMm/iNPY7z9/R+x2fSwLt/ZXoGua6C5Zy2k5xOo9jUyhQ==} + resolution: + { + integrity: sha512-hmUCjAk2fwZVPPkkPBcI7jGLIR5mg4OVoNMBwU6aVsMm/iNPY7z9/R+x2fSwLt/ZXoGua6C5Zy2k5xOo9jUyhQ==, + } dependencies: - '@types/connect': 3.4.38 - '@types/express': 4.17.21 - '@types/keygrip': 1.0.6 - '@types/node': 20.9.0 + "@types/connect": 3.4.38 + "@types/express": 4.17.21 + "@types/keygrip": 1.0.6 + "@types/node": 20.9.0 dev: true /@types/eslint-scope@3.7.7: - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + resolution: + { + integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==, + } dependencies: - '@types/eslint': 8.44.7 - '@types/estree': 1.0.5 + "@types/eslint": 8.44.7 + "@types/estree": 1.0.5 dev: true /@types/eslint@8.44.7: - resolution: {integrity: sha512-f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ==} + resolution: + { + integrity: sha512-f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ==, + } dependencies: - '@types/estree': 1.0.5 - '@types/json-schema': 7.0.15 + "@types/estree": 1.0.5 + "@types/json-schema": 7.0.15 dev: true /@types/estree@1.0.5: - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + resolution: + { + integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==, + } dev: true /@types/express-serve-static-core@4.17.41: - resolution: {integrity: sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==} + resolution: + { + integrity: sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==, + } dependencies: - '@types/node': 20.9.0 - '@types/qs': 6.9.10 - '@types/range-parser': 1.2.7 - '@types/send': 0.17.4 + "@types/node": 20.9.0 + "@types/qs": 6.9.10 + "@types/range-parser": 1.2.7 + "@types/send": 0.17.4 dev: true /@types/express@4.17.21: - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + resolution: + { + integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==, + } dependencies: - '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.17.41 - '@types/qs': 6.9.10 - '@types/serve-static': 1.15.5 + "@types/body-parser": 1.19.5 + "@types/express-serve-static-core": 4.17.41 + "@types/qs": 6.9.10 + "@types/serve-static": 1.15.5 dev: true /@types/graceful-fs@4.1.9: - resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + resolution: + { + integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==, + } dependencies: - '@types/node': 20.9.0 + "@types/node": 20.9.0 dev: true /@types/http-assert@1.5.5: - resolution: {integrity: sha512-4+tE/lwdAahgZT1g30Jkdm9PzFRde0xwxBNUyRsCitRvCQB90iuA2uJYdUnhnANRcqGXaWOGY4FEoxeElNAK2g==} + resolution: + { + integrity: sha512-4+tE/lwdAahgZT1g30Jkdm9PzFRde0xwxBNUyRsCitRvCQB90iuA2uJYdUnhnANRcqGXaWOGY4FEoxeElNAK2g==, + } dev: true /@types/http-errors@2.0.4: - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + resolution: + { + integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==, + } dev: true /@types/istanbul-lib-coverage@2.0.6: - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + resolution: + { + integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==, + } dev: true /@types/istanbul-lib-report@3.0.3: - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + resolution: + { + integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==, + } dependencies: - '@types/istanbul-lib-coverage': 2.0.6 + "@types/istanbul-lib-coverage": 2.0.6 dev: true /@types/istanbul-reports@3.0.4: - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + resolution: + { + integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==, + } dependencies: - '@types/istanbul-lib-report': 3.0.3 + "@types/istanbul-lib-report": 3.0.3 dev: true /@types/jest@29.5.8: - resolution: {integrity: sha512-fXEFTxMV2Co8ZF5aYFJv+YeA08RTYJfhtN5c9JSv/mFEMe+xxjufCb+PHL+bJcMs/ebPUsBu+UNTEz+ydXrR6g==} + resolution: + { + integrity: sha512-fXEFTxMV2Co8ZF5aYFJv+YeA08RTYJfhtN5c9JSv/mFEMe+xxjufCb+PHL+bJcMs/ebPUsBu+UNTEz+ydXrR6g==, + } dependencies: expect: 29.7.0 pretty-format: 29.7.0 dev: true /@types/json-schema@7.0.15: - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + resolution: + { + integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==, + } dev: true /@types/keygrip@1.0.6: - resolution: {integrity: sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==} + resolution: + { + integrity: sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==, + } dev: true /@types/koa-compose@3.2.8: - resolution: {integrity: sha512-4Olc63RY+MKvxMwVknCUDhRQX1pFQoBZ/lXcRLP69PQkEpze/0cr8LNqJQe5NFb/b19DWi2a5bTi2VAlQzhJuA==} + resolution: + { + integrity: sha512-4Olc63RY+MKvxMwVknCUDhRQX1pFQoBZ/lXcRLP69PQkEpze/0cr8LNqJQe5NFb/b19DWi2a5bTi2VAlQzhJuA==, + } dependencies: - '@types/koa': 2.13.12 + "@types/koa": 2.13.12 dev: true /@types/koa@2.13.12: - resolution: {integrity: sha512-vAo1KuDSYWFDB4Cs80CHvfmzSQWeUb909aQib0C0aFx4sw0K9UZFz2m5jaEP+b3X1+yr904iQiruS0hXi31jbw==} + resolution: + { + integrity: sha512-vAo1KuDSYWFDB4Cs80CHvfmzSQWeUb909aQib0C0aFx4sw0K9UZFz2m5jaEP+b3X1+yr904iQiruS0hXi31jbw==, + } dependencies: - '@types/accepts': 1.3.7 - '@types/content-disposition': 0.5.8 - '@types/cookies': 0.7.10 - '@types/http-assert': 1.5.5 - '@types/http-errors': 2.0.4 - '@types/keygrip': 1.0.6 - '@types/koa-compose': 3.2.8 - '@types/node': 20.9.0 + "@types/accepts": 1.3.7 + "@types/content-disposition": 0.5.8 + "@types/cookies": 0.7.10 + "@types/http-assert": 1.5.5 + "@types/http-errors": 2.0.4 + "@types/keygrip": 1.0.6 + "@types/koa-compose": 3.2.8 + "@types/node": 20.9.0 dev: true /@types/mime@1.3.5: - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + resolution: + { + integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==, + } dev: true /@types/mime@3.0.4: - resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} + resolution: + { + integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==, + } dev: true /@types/node@20.9.0: - resolution: {integrity: sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==} + resolution: + { + integrity: sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==, + } dependencies: undici-types: 5.26.5 /@types/passport-http-bearer@1.0.41: - resolution: {integrity: sha512-ecW+9e8C+0id5iz3YZ+uIarsk/vaRPkKSajt1i1Am66t0mC9gDfQDKXZz9fnPOW2xKUufbmCSou4005VM94Feg==} + resolution: + { + integrity: sha512-ecW+9e8C+0id5iz3YZ+uIarsk/vaRPkKSajt1i1Am66t0mC9gDfQDKXZz9fnPOW2xKUufbmCSou4005VM94Feg==, + } dependencies: - '@types/express': 4.17.21 - '@types/koa': 2.13.12 - '@types/passport': 1.0.16 + "@types/express": 4.17.21 + "@types/koa": 2.13.12 + "@types/passport": 1.0.16 dev: true /@types/passport@1.0.16: - resolution: {integrity: sha512-FD0qD5hbPWQzaM0wHUnJ/T0BBCJBxCeemtnCwc/ThhTg3x9jfrAcRUmj5Dopza+MfFS9acTe3wk7rcVnRIp/0A==} + resolution: + { + integrity: sha512-FD0qD5hbPWQzaM0wHUnJ/T0BBCJBxCeemtnCwc/ThhTg3x9jfrAcRUmj5Dopza+MfFS9acTe3wk7rcVnRIp/0A==, + } dependencies: - '@types/express': 4.17.21 + "@types/express": 4.17.21 dev: true /@types/qs@6.9.10: - resolution: {integrity: sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==} + resolution: + { + integrity: sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==, + } dev: true /@types/range-parser@1.2.7: - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + resolution: + { + integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==, + } dev: true /@types/semver@7.5.5: - resolution: {integrity: sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==} + resolution: + { + integrity: sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==, + } dev: true /@types/send@0.17.4: - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + resolution: + { + integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==, + } dependencies: - '@types/mime': 1.3.5 - '@types/node': 20.9.0 + "@types/mime": 1.3.5 + "@types/node": 20.9.0 dev: true /@types/serve-static@1.15.5: - resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} + resolution: + { + integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==, + } dependencies: - '@types/http-errors': 2.0.4 - '@types/mime': 3.0.4 - '@types/node': 20.9.0 + "@types/http-errors": 2.0.4 + "@types/mime": 3.0.4 + "@types/node": 20.9.0 dev: true /@types/stack-utils@2.0.3: - resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + resolution: + { + integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==, + } dev: true /@types/superagent@4.1.21: - resolution: {integrity: sha512-yrbAccEEY9+BSa1wji3ry8R3/BdW9kyWnjkRKctrtw5ebn/k2a2CsMeaQ7dD4iLfomgHkomBVIVgOFRMV4XYHA==} + resolution: + { + integrity: sha512-yrbAccEEY9+BSa1wji3ry8R3/BdW9kyWnjkRKctrtw5ebn/k2a2CsMeaQ7dD4iLfomgHkomBVIVgOFRMV4XYHA==, + } dependencies: - '@types/cookiejar': 2.1.4 - '@types/node': 20.9.0 + "@types/cookiejar": 2.1.4 + "@types/node": 20.9.0 dev: true /@types/supertest@2.0.16: - resolution: {integrity: sha512-6c2ogktZ06tr2ENoZivgm7YnprnhYE4ZoXGMY+oA7IuAf17M8FWvujXZGmxLv8y0PTyts4x5A+erSwVUFA8XSg==} + resolution: + { + integrity: sha512-6c2ogktZ06tr2ENoZivgm7YnprnhYE4ZoXGMY+oA7IuAf17M8FWvujXZGmxLv8y0PTyts4x5A+erSwVUFA8XSg==, + } dependencies: - '@types/superagent': 4.1.21 + "@types/superagent": 4.1.21 dev: true /@types/yargs-parser@21.0.3: - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + resolution: + { + integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==, + } dev: true /@types/yargs@17.0.31: - resolution: {integrity: sha512-bocYSx4DI8TmdlvxqGpVNXOgCNR1Jj0gNPhhAY+iz1rgKDAaYrAYdFYnhDV1IFuiuVc9HkOwyDcFxaTElF3/wg==} + resolution: + { + integrity: sha512-bocYSx4DI8TmdlvxqGpVNXOgCNR1Jj0gNPhhAY+iz1rgKDAaYrAYdFYnhDV1IFuiuVc9HkOwyDcFxaTElF3/wg==, + } dependencies: - '@types/yargs-parser': 21.0.3 + "@types/yargs-parser": 21.0.3 dev: true /@typescript-eslint/eslint-plugin@6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.2.2): - resolution: {integrity: sha512-uoLj4g2OTL8rfUQVx2AFO1hp/zja1wABJq77P6IclQs6I/m9GLrm7jCdgzZkvWdDCQf1uEvoa8s8CupsgWQgVg==} - engines: {node: ^16.0.0 || >=18.0.0} + resolution: + { + integrity: sha512-uoLj4g2OTL8rfUQVx2AFO1hp/zja1wABJq77P6IclQs6I/m9GLrm7jCdgzZkvWdDCQf1uEvoa8s8CupsgWQgVg==, + } + engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + "@typescript-eslint/parser": ^6.0.0 || ^6.0.0-alpha eslint: ^7.0.0 || ^8.0.0 - typescript: '*' + typescript: "*" peerDependenciesMeta: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/scope-manager': 6.10.0 - '@typescript-eslint/type-utils': 6.10.0(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/utils': 6.10.0(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.10.0 + "@eslint-community/regexpp": 4.10.0 + "@typescript-eslint/parser": 6.10.0(eslint@8.53.0)(typescript@5.2.2) + "@typescript-eslint/scope-manager": 6.10.0 + "@typescript-eslint/type-utils": 6.10.0(eslint@8.53.0)(typescript@5.2.2) + "@typescript-eslint/utils": 6.10.0(eslint@8.53.0)(typescript@5.2.2) + "@typescript-eslint/visitor-keys": 6.10.0 debug: 4.3.4 eslint: 8.53.0 graphemer: 1.4.0 @@ -1511,19 +1960,22 @@ packages: dev: true /@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.2.2): - resolution: {integrity: sha512-+sZwIj+s+io9ozSxIWbNB5873OSdfeBEH/FR0re14WLI6BaKuSOnnwCJ2foUiu8uXf4dRp1UqHP0vrZ1zXGrog==} - engines: {node: ^16.0.0 || >=18.0.0} + resolution: + { + integrity: sha512-+sZwIj+s+io9ozSxIWbNB5873OSdfeBEH/FR0re14WLI6BaKuSOnnwCJ2foUiu8uXf4dRp1UqHP0vrZ1zXGrog==, + } + engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: eslint: ^7.0.0 || ^8.0.0 - typescript: '*' + typescript: "*" peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.10.0 - '@typescript-eslint/types': 6.10.0 - '@typescript-eslint/typescript-estree': 6.10.0(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.10.0 + "@typescript-eslint/scope-manager": 6.10.0 + "@typescript-eslint/types": 6.10.0 + "@typescript-eslint/typescript-estree": 6.10.0(typescript@5.2.2) + "@typescript-eslint/visitor-keys": 6.10.0 debug: 4.3.4 eslint: 8.53.0 typescript: 5.2.2 @@ -1532,25 +1984,31 @@ packages: dev: true /@typescript-eslint/scope-manager@6.10.0: - resolution: {integrity: sha512-TN/plV7dzqqC2iPNf1KrxozDgZs53Gfgg5ZHyw8erd6jd5Ta/JIEcdCheXFt9b1NYb93a1wmIIVW/2gLkombDg==} - engines: {node: ^16.0.0 || >=18.0.0} + resolution: + { + integrity: sha512-TN/plV7dzqqC2iPNf1KrxozDgZs53Gfgg5ZHyw8erd6jd5Ta/JIEcdCheXFt9b1NYb93a1wmIIVW/2gLkombDg==, + } + engines: { node: ^16.0.0 || >=18.0.0 } dependencies: - '@typescript-eslint/types': 6.10.0 - '@typescript-eslint/visitor-keys': 6.10.0 + "@typescript-eslint/types": 6.10.0 + "@typescript-eslint/visitor-keys": 6.10.0 dev: true /@typescript-eslint/type-utils@6.10.0(eslint@8.53.0)(typescript@5.2.2): - resolution: {integrity: sha512-wYpPs3hgTFblMYwbYWPT3eZtaDOjbLyIYuqpwuLBBqhLiuvJ+9sEp2gNRJEtR5N/c9G1uTtQQL5AhV0fEPJYcg==} - engines: {node: ^16.0.0 || >=18.0.0} + resolution: + { + integrity: sha512-wYpPs3hgTFblMYwbYWPT3eZtaDOjbLyIYuqpwuLBBqhLiuvJ+9sEp2gNRJEtR5N/c9G1uTtQQL5AhV0fEPJYcg==, + } + engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: eslint: ^7.0.0 || ^8.0.0 - typescript: '*' + typescript: "*" peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.10.0(typescript@5.2.2) - '@typescript-eslint/utils': 6.10.0(eslint@8.53.0)(typescript@5.2.2) + "@typescript-eslint/typescript-estree": 6.10.0(typescript@5.2.2) + "@typescript-eslint/utils": 6.10.0(eslint@8.53.0)(typescript@5.2.2) debug: 4.3.4 eslint: 8.53.0 ts-api-utils: 1.0.3(typescript@5.2.2) @@ -1560,21 +2018,27 @@ packages: dev: true /@typescript-eslint/types@6.10.0: - resolution: {integrity: sha512-36Fq1PWh9dusgo3vH7qmQAj5/AZqARky1Wi6WpINxB6SkQdY5vQoT2/7rW7uBIsPDcvvGCLi4r10p0OJ7ITAeg==} - engines: {node: ^16.0.0 || >=18.0.0} + resolution: + { + integrity: sha512-36Fq1PWh9dusgo3vH7qmQAj5/AZqARky1Wi6WpINxB6SkQdY5vQoT2/7rW7uBIsPDcvvGCLi4r10p0OJ7ITAeg==, + } + engines: { node: ^16.0.0 || >=18.0.0 } dev: true /@typescript-eslint/typescript-estree@6.10.0(typescript@5.2.2): - resolution: {integrity: sha512-ek0Eyuy6P15LJVeghbWhSrBCj/vJpPXXR+EpaRZqou7achUWL8IdYnMSC5WHAeTWswYQuP2hAZgij/bC9fanBg==} - engines: {node: ^16.0.0 || >=18.0.0} + resolution: + { + integrity: sha512-ek0Eyuy6P15LJVeghbWhSrBCj/vJpPXXR+EpaRZqou7achUWL8IdYnMSC5WHAeTWswYQuP2hAZgij/bC9fanBg==, + } + engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: - typescript: '*' + typescript: "*" peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.10.0 - '@typescript-eslint/visitor-keys': 6.10.0 + "@typescript-eslint/types": 6.10.0 + "@typescript-eslint/visitor-keys": 6.10.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -1586,17 +2050,20 @@ packages: dev: true /@typescript-eslint/utils@6.10.0(eslint@8.53.0)(typescript@5.2.2): - resolution: {integrity: sha512-v+pJ1/RcVyRc0o4wAGux9x42RHmAjIGzPRo538Z8M1tVx6HOnoQBCX/NoadHQlZeC+QO2yr4nNSFWOoraZCAyg==} - engines: {node: ^16.0.0 || >=18.0.0} + resolution: + { + integrity: sha512-v+pJ1/RcVyRc0o4wAGux9x42RHmAjIGzPRo538Z8M1tVx6HOnoQBCX/NoadHQlZeC+QO2yr4nNSFWOoraZCAyg==, + } + engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.5 - '@typescript-eslint/scope-manager': 6.10.0 - '@typescript-eslint/types': 6.10.0 - '@typescript-eslint/typescript-estree': 6.10.0(typescript@5.2.2) + "@eslint-community/eslint-utils": 4.4.0(eslint@8.53.0) + "@types/json-schema": 7.0.15 + "@types/semver": 7.5.5 + "@typescript-eslint/scope-manager": 6.10.0 + "@typescript-eslint/types": 6.10.0 + "@typescript-eslint/typescript-estree": 6.10.0(typescript@5.2.2) eslint: 8.53.0 semver: 7.5.4 transitivePeerDependencies: @@ -1605,140 +2072,203 @@ packages: dev: true /@typescript-eslint/visitor-keys@6.10.0: - resolution: {integrity: sha512-xMGluxQIEtOM7bqFCo+rCMh5fqI+ZxV5RUUOa29iVPz1OgCZrtc7rFnz5cLUazlkPKYqX+75iuDq7m0HQ48nCg==} - engines: {node: ^16.0.0 || >=18.0.0} + resolution: + { + integrity: sha512-xMGluxQIEtOM7bqFCo+rCMh5fqI+ZxV5RUUOa29iVPz1OgCZrtc7rFnz5cLUazlkPKYqX+75iuDq7m0HQ48nCg==, + } + engines: { node: ^16.0.0 || >=18.0.0 } dependencies: - '@typescript-eslint/types': 6.10.0 + "@typescript-eslint/types": 6.10.0 eslint-visitor-keys: 3.4.3 dev: true /@ungap/structured-clone@1.2.0: - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + resolution: + { + integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==, + } dev: true /@webassemblyjs/ast@1.11.6: - resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==} + resolution: + { + integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==, + } dependencies: - '@webassemblyjs/helper-numbers': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + "@webassemblyjs/helper-numbers": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 dev: true /@webassemblyjs/floating-point-hex-parser@1.11.6: - resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + resolution: + { + integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==, + } dev: true /@webassemblyjs/helper-api-error@1.11.6: - resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + resolution: + { + integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==, + } dev: true /@webassemblyjs/helper-buffer@1.11.6: - resolution: {integrity: sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==} + resolution: + { + integrity: sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==, + } dev: true /@webassemblyjs/helper-numbers@1.11.6: - resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + resolution: + { + integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==, + } dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.11.6 - '@webassemblyjs/helper-api-error': 1.11.6 - '@xtuc/long': 4.2.2 + "@webassemblyjs/floating-point-hex-parser": 1.11.6 + "@webassemblyjs/helper-api-error": 1.11.6 + "@xtuc/long": 4.2.2 dev: true /@webassemblyjs/helper-wasm-bytecode@1.11.6: - resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + resolution: + { + integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==, + } dev: true /@webassemblyjs/helper-wasm-section@1.11.6: - resolution: {integrity: sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==} + resolution: + { + integrity: sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==, + } dependencies: - '@webassemblyjs/ast': 1.11.6 - '@webassemblyjs/helper-buffer': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/wasm-gen': 1.11.6 + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/helper-buffer": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + "@webassemblyjs/wasm-gen": 1.11.6 dev: true /@webassemblyjs/ieee754@1.11.6: - resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + resolution: + { + integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==, + } dependencies: - '@xtuc/ieee754': 1.2.0 + "@xtuc/ieee754": 1.2.0 dev: true /@webassemblyjs/leb128@1.11.6: - resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + resolution: + { + integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==, + } dependencies: - '@xtuc/long': 4.2.2 + "@xtuc/long": 4.2.2 dev: true /@webassemblyjs/utf8@1.11.6: - resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + resolution: + { + integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==, + } dev: true /@webassemblyjs/wasm-edit@1.11.6: - resolution: {integrity: sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==} + resolution: + { + integrity: sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==, + } dependencies: - '@webassemblyjs/ast': 1.11.6 - '@webassemblyjs/helper-buffer': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/helper-wasm-section': 1.11.6 - '@webassemblyjs/wasm-gen': 1.11.6 - '@webassemblyjs/wasm-opt': 1.11.6 - '@webassemblyjs/wasm-parser': 1.11.6 - '@webassemblyjs/wast-printer': 1.11.6 + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/helper-buffer": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + "@webassemblyjs/helper-wasm-section": 1.11.6 + "@webassemblyjs/wasm-gen": 1.11.6 + "@webassemblyjs/wasm-opt": 1.11.6 + "@webassemblyjs/wasm-parser": 1.11.6 + "@webassemblyjs/wast-printer": 1.11.6 dev: true /@webassemblyjs/wasm-gen@1.11.6: - resolution: {integrity: sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==} + resolution: + { + integrity: sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==, + } dependencies: - '@webassemblyjs/ast': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/ieee754': 1.11.6 - '@webassemblyjs/leb128': 1.11.6 - '@webassemblyjs/utf8': 1.11.6 + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + "@webassemblyjs/ieee754": 1.11.6 + "@webassemblyjs/leb128": 1.11.6 + "@webassemblyjs/utf8": 1.11.6 dev: true /@webassemblyjs/wasm-opt@1.11.6: - resolution: {integrity: sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==} + resolution: + { + integrity: sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==, + } dependencies: - '@webassemblyjs/ast': 1.11.6 - '@webassemblyjs/helper-buffer': 1.11.6 - '@webassemblyjs/wasm-gen': 1.11.6 - '@webassemblyjs/wasm-parser': 1.11.6 + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/helper-buffer": 1.11.6 + "@webassemblyjs/wasm-gen": 1.11.6 + "@webassemblyjs/wasm-parser": 1.11.6 dev: true /@webassemblyjs/wasm-parser@1.11.6: - resolution: {integrity: sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==} + resolution: + { + integrity: sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==, + } dependencies: - '@webassemblyjs/ast': 1.11.6 - '@webassemblyjs/helper-api-error': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/ieee754': 1.11.6 - '@webassemblyjs/leb128': 1.11.6 - '@webassemblyjs/utf8': 1.11.6 + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/helper-api-error": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + "@webassemblyjs/ieee754": 1.11.6 + "@webassemblyjs/leb128": 1.11.6 + "@webassemblyjs/utf8": 1.11.6 dev: true /@webassemblyjs/wast-printer@1.11.6: - resolution: {integrity: sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==} + resolution: + { + integrity: sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==, + } dependencies: - '@webassemblyjs/ast': 1.11.6 - '@xtuc/long': 4.2.2 + "@webassemblyjs/ast": 1.11.6 + "@xtuc/long": 4.2.2 dev: true /@xtuc/ieee754@1.2.0: - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + resolution: + { + integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==, + } dev: true /@xtuc/long@4.2.2: - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + resolution: + { + integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==, + } dev: true /accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==, + } + engines: { node: ">= 0.6" } dependencies: mime-types: 2.1.35 negotiator: 0.6.3 /acorn-import-assertions@1.9.0(acorn@8.11.2): - resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} + resolution: + { + integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==, + } peerDependencies: acorn: ^8 dependencies: @@ -1746,7 +2276,10 @@ packages: dev: true /acorn-jsx@5.3.2(acorn@8.11.2): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + resolution: + { + integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, + } peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: @@ -1754,16 +2287,25 @@ packages: dev: true /acorn-walk@8.3.0: - resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==} - engines: {node: '>=0.4.0'} + resolution: + { + integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==, + } + engines: { node: ">=0.4.0" } /acorn@8.11.2: - resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} - engines: {node: '>=0.4.0'} + resolution: + { + integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==, + } + engines: { node: ">=0.4.0" } hasBin: true /ajv-formats@2.1.1(ajv@8.12.0): - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + resolution: + { + integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==, + } peerDependencies: ajv: ^8.0.0 peerDependenciesMeta: @@ -1774,7 +2316,10 @@ packages: dev: true /ajv-keywords@3.5.2(ajv@6.12.6): - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + resolution: + { + integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==, + } peerDependencies: ajv: ^6.9.1 dependencies: @@ -1782,7 +2327,10 @@ packages: dev: true /ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + resolution: + { + integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, + } dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 @@ -1791,7 +2339,10 @@ packages: dev: true /ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + resolution: + { + integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==, + } dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 @@ -1800,110 +2351,173 @@ packages: dev: true /ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==, + } + engines: { node: ">=6" } dev: true /ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==, + } + engines: { node: ">=8" } dependencies: type-fest: 0.21.3 dev: true /ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, + } + engines: { node: ">=8" } /ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==, + } + engines: { node: ">=12" } dev: true /ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, + } + engines: { node: ">=4" } dependencies: color-convert: 1.9.3 dev: true /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, + } + engines: { node: ">=8" } dependencies: color-convert: 2.0.1 /ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==, + } + engines: { node: ">=10" } dev: true /ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==, + } + engines: { node: ">=12" } dev: true /any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + resolution: + { + integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==, + } dev: false /anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, + } + engines: { node: ">= 8" } dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 dev: true /app-root-path@3.1.0: - resolution: {integrity: sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==} - engines: {node: '>= 6.0.0'} + resolution: + { + integrity: sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==, + } + engines: { node: ">= 6.0.0" } dev: false /append-field@1.0.0: - resolution: {integrity: sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==} + resolution: + { + integrity: sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==, + } /arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + resolution: + { + integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==, + } /argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + resolution: + { + integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==, + } dependencies: sprintf-js: 1.0.3 dev: true /argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + resolution: + { + integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, + } /array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + resolution: + { + integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==, + } /array-timsort@1.0.3: - resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==} + resolution: + { + integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==, + } dev: true /array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, + } + engines: { node: ">=8" } dev: true /asap@2.0.6: - resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + resolution: + { + integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==, + } dev: true /asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + resolution: + { + integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, + } dev: true /babel-jest@29.7.0(@babel/core@7.23.3): - resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } peerDependencies: - '@babel/core': ^7.8.0 + "@babel/core": ^7.8.0 dependencies: - '@babel/core': 7.23.3 - '@jest/transform': 29.7.0 - '@types/babel__core': 7.20.4 + "@babel/core": 7.23.3 + "@jest/transform": 29.7.0 + "@types/babel__core": 7.20.4 babel-plugin-istanbul: 6.1.1 babel-preset-jest: 29.6.3(@babel/core@7.23.3) chalk: 4.1.2 @@ -1914,12 +2528,15 @@ packages: dev: true /babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==, + } + engines: { node: ">=8" } dependencies: - '@babel/helper-plugin-utils': 7.22.5 - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 + "@babel/helper-plugin-utils": 7.22.5 + "@istanbuljs/load-nyc-config": 1.1.0 + "@istanbuljs/schema": 0.1.3 istanbul-lib-instrument: 5.2.1 test-exclude: 6.0.0 transitivePeerDependencies: @@ -1927,64 +2544,88 @@ packages: dev: true /babel-plugin-jest-hoist@29.6.3: - resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - '@babel/template': 7.22.15 - '@babel/types': 7.23.3 - '@types/babel__core': 7.20.4 - '@types/babel__traverse': 7.20.4 + "@babel/template": 7.22.15 + "@babel/types": 7.23.3 + "@types/babel__core": 7.20.4 + "@types/babel__traverse": 7.20.4 dev: true /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.3): - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} + resolution: + { + integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==, + } peerDependencies: - '@babel/core': ^7.0.0 + "@babel/core": ^7.0.0 dependencies: - '@babel/core': 7.23.3 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.3) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.3) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.3) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.3) + "@babel/core": 7.23.3 + "@babel/plugin-syntax-async-generators": 7.8.4(@babel/core@7.23.3) + "@babel/plugin-syntax-bigint": 7.8.3(@babel/core@7.23.3) + "@babel/plugin-syntax-class-properties": 7.12.13(@babel/core@7.23.3) + "@babel/plugin-syntax-import-meta": 7.10.4(@babel/core@7.23.3) + "@babel/plugin-syntax-json-strings": 7.8.3(@babel/core@7.23.3) + "@babel/plugin-syntax-logical-assignment-operators": 7.10.4(@babel/core@7.23.3) + "@babel/plugin-syntax-nullish-coalescing-operator": 7.8.3(@babel/core@7.23.3) + "@babel/plugin-syntax-numeric-separator": 7.10.4(@babel/core@7.23.3) + "@babel/plugin-syntax-object-rest-spread": 7.8.3(@babel/core@7.23.3) + "@babel/plugin-syntax-optional-catch-binding": 7.8.3(@babel/core@7.23.3) + "@babel/plugin-syntax-optional-chaining": 7.8.3(@babel/core@7.23.3) + "@babel/plugin-syntax-top-level-await": 7.14.5(@babel/core@7.23.3) dev: true /babel-preset-jest@29.6.3(@babel/core@7.23.3): - resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } peerDependencies: - '@babel/core': ^7.0.0 + "@babel/core": ^7.0.0 dependencies: - '@babel/core': 7.23.3 + "@babel/core": 7.23.3 babel-plugin-jest-hoist: 29.6.3 babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.3) dev: true /balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + resolution: + { + integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, + } /base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + resolution: + { + integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, + } /big-integer@1.6.51: - resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} - engines: {node: '>=0.6'} + resolution: + { + integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==, + } + engines: { node: ">=0.6" } dev: true /binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==, + } + engines: { node: ">=8" } dev: true /bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + resolution: + { + integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==, + } dependencies: buffer: 5.7.1 inherits: 2.0.4 @@ -1992,8 +2633,11 @@ packages: dev: true /body-parser@1.20.1: - resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + resolution: + { + integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==, + } + engines: { node: ">= 0.8", npm: 1.2.8000 || >= 1.4.16 } dependencies: bytes: 3.1.2 content-type: 1.0.5 @@ -2011,8 +2655,11 @@ packages: - supports-color /body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + resolution: + { + integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==, + } + engines: { node: ">= 0.8", npm: 1.2.8000 || >= 1.4.16 } dependencies: bytes: 3.1.2 content-type: 1.0.5 @@ -2030,34 +2677,49 @@ packages: - supports-color /bplist-parser@0.2.0: - resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} - engines: {node: '>= 5.10.0'} + resolution: + { + integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==, + } + engines: { node: ">= 5.10.0" } dependencies: big-integer: 1.6.51 dev: true /brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + resolution: + { + integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, + } dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 dev: true /brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + resolution: + { + integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, + } dependencies: balanced-match: 1.0.2 /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, + } + engines: { node: ">=8" } dependencies: fill-range: 7.0.1 dev: true /browserslist@4.22.1: - resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + resolution: + { + integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==, + } + engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } hasBin: true dependencies: caniuse-lite: 1.0.30001561 @@ -2067,66 +2729,99 @@ packages: dev: true /bs-logger@0.2.6: - resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==, + } + engines: { node: ">= 6" } dependencies: fast-json-stable-stringify: 2.1.0 dev: true /bser@2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + resolution: + { + integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==, + } dependencies: node-int64: 0.4.0 dev: true /buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + resolution: + { + integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, + } /buffer-writer@2.0.0: - resolution: {integrity: sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==, + } + engines: { node: ">=4" } dev: false /buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + resolution: + { + integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==, + } dependencies: base64-js: 1.5.1 ieee754: 1.2.1 dev: true /buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + resolution: + { + integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==, + } dependencies: base64-js: 1.5.1 ieee754: 1.2.1 dev: false /bundle-name@3.0.0: - resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==, + } + engines: { node: ">=12" } dependencies: run-applescript: 5.0.0 dev: true /busboy@1.6.0: - resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} - engines: {node: '>=10.16.0'} + resolution: + { + integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==, + } + engines: { node: ">=10.16.0" } dependencies: streamsearch: 1.1.0 /bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==, + } + engines: { node: ">= 0.8" } /cache-manager-redis-store@3.0.1: - resolution: {integrity: sha512-o560kw+dFqusC9lQJhcm6L2F2fMKobJ5af+FoR2PdnMVdpQ3f3Bz6qzvObTGyvoazQJxjQNWgMQeChP4vRTuXQ==} - engines: {node: '>= 16.18.0'} + resolution: + { + integrity: sha512-o560kw+dFqusC9lQJhcm6L2F2fMKobJ5af+FoR2PdnMVdpQ3f3Bz6qzvObTGyvoazQJxjQNWgMQeChP4vRTuXQ==, + } + engines: { node: ">= 16.18.0" } dependencies: redis: 4.6.13 dev: false /cache-manager@5.4.0: - resolution: {integrity: sha512-FS7o8vqJosnLpu9rh2gQTo8EOzCRJLF1BJ4XDEUDMqcfvs7SJZs5iuoFTXLauzQ3S5v8sBAST1pCwMaurpyi1A==} + resolution: + { + integrity: sha512-FS7o8vqJosnLpu9rh2gQTo8EOzCRJLF1BJ4XDEUDMqcfvs7SJZs5iuoFTXLauzQ3S5v8sBAST1pCwMaurpyi1A==, + } dependencies: lodash.clonedeep: 4.5.0 lru-cache: 10.2.0 @@ -2134,34 +2829,52 @@ packages: dev: false /call-bind@1.0.5: - resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + resolution: + { + integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==, + } dependencies: function-bind: 1.1.2 get-intrinsic: 1.2.2 set-function-length: 1.1.1 /callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, + } + engines: { node: ">=6" } dev: true /camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==, + } + engines: { node: ">=6" } dev: true /camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==, + } + engines: { node: ">=10" } dev: true /caniuse-lite@1.0.30001561: - resolution: {integrity: sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==} + resolution: + { + integrity: sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==, + } dev: true /chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, + } + engines: { node: ">=4" } dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 @@ -2169,24 +2882,36 @@ packages: dev: true /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, + } + engines: { node: ">=10" } dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 /char-regex@1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==, + } + engines: { node: ">=10" } dev: true /chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + resolution: + { + integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==, + } dev: true /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} + resolution: + { + integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==, + } + engines: { node: ">= 8.10.0" } dependencies: anymatch: 3.1.3 braces: 3.0.2 @@ -2200,29 +2925,44 @@ packages: dev: true /chrome-trace-event@1.0.3: - resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} - engines: {node: '>=6.0'} + resolution: + { + integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==, + } + engines: { node: ">=6.0" } dev: true /ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==, + } + engines: { node: ">=8" } dev: true /cjs-module-lexer@1.2.3: - resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} + resolution: + { + integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==, + } dev: true /cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==, + } + engines: { node: ">=8" } dependencies: restore-cursor: 3.1.0 dev: true /cli-highlight@2.1.11: - resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} - engines: {node: '>=8.0.0', npm: '>=5.0.0'} + resolution: + { + integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==, + } + engines: { node: ">=8.0.0", npm: ">=5.0.0" } hasBin: true dependencies: chalk: 4.1.2 @@ -2234,26 +2974,38 @@ packages: dev: false /cli-spinners@2.9.1: - resolution: {integrity: sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==, + } + engines: { node: ">=6" } dev: true /cli-table3@0.6.3: - resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} - engines: {node: 10.* || >= 12.*} + resolution: + { + integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==, + } + engines: { node: 10.* || >= 12.* } dependencies: string-width: 4.2.3 optionalDependencies: - '@colors/colors': 1.5.0 + "@colors/colors": 1.5.0 dev: true /cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} + 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==} + resolution: + { + integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==, + } dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 @@ -2261,70 +3013,109 @@ packages: dev: false /cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, + } + engines: { node: ">=12" } dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 /clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} + resolution: + { + integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==, + } + engines: { node: ">=0.8" } dev: true /cluster-key-slot@1.1.2: - resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==, + } + engines: { node: ">=0.10.0" } dev: false /co@4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + resolution: + { + integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==, + } + engines: { iojs: ">= 1.0.0", node: ">= 0.12.0" } dev: true /collect-v8-coverage@1.0.2: - resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + resolution: + { + integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==, + } dev: true /color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + resolution: + { + integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, + } dependencies: color-name: 1.1.3 dev: true /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + resolution: + { + integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, + } + engines: { node: ">=7.0.0" } dependencies: color-name: 1.1.4 /color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + resolution: + { + integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, + } dev: true /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + resolution: + { + integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, + } /combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, + } + engines: { node: ">= 0.8" } dependencies: delayed-stream: 1.0.0 dev: true /commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + resolution: + { + integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, + } dev: true /commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==, + } + engines: { node: ">= 6" } dev: true /comment-json@4.2.3: - resolution: {integrity: sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==, + } + engines: { node: ">= 6" } dependencies: array-timsort: 1.0.3 core-util-is: 1.0.3 @@ -2334,16 +3125,25 @@ packages: dev: true /component-emitter@1.3.0: - resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} + resolution: + { + integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==, + } dev: true /concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + resolution: + { + integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, + } dev: true /concat-stream@1.6.2: - resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} - engines: {'0': node >= 0.8} + resolution: + { + integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==, + } + engines: { "0": node >= 0.8 } dependencies: buffer-from: 1.1.2 inherits: 2.0.4 @@ -2351,48 +3151,78 @@ packages: typedarray: 0.0.6 /consola@2.15.3: - resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} + resolution: + { + integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==, + } /content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==, + } + engines: { node: ">= 0.6" } dependencies: safe-buffer: 5.2.1 /content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==, + } + engines: { node: ">= 0.6" } /convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + resolution: + { + integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==, + } dev: true /cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + resolution: + { + integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==, + } /cookie@0.5.0: - resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==, + } + engines: { node: ">= 0.6" } /cookiejar@2.1.4: - resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==} + resolution: + { + integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==, + } dev: true /core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + resolution: + { + integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, + } /cors@2.8.5: - resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} - engines: {node: '>= 0.10'} + resolution: + { + integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==, + } + engines: { node: ">= 0.10" } dependencies: object-assign: 4.1.1 vary: 1.1.2 /cosmiconfig@8.3.6(typescript@5.2.2): - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==, + } + engines: { node: ">=14" } peerDependencies: - typescript: '>=4.9.5' + typescript: ">=4.9.5" peerDependenciesMeta: typescript: optional: true @@ -2405,11 +3235,14 @@ packages: dev: true /create-jest@29.7.0(@types/node@20.9.0)(ts-node@10.9.1): - resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } hasBin: true dependencies: - '@jest/types': 29.6.3 + "@jest/types": 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 @@ -2417,18 +3250,24 @@ packages: jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: - - '@types/node' + - "@types/node" - babel-plugin-macros - supports-color - ts-node dev: true /create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + resolution: + { + integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==, + } /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, + } + engines: { node: ">= 8" } dependencies: path-key: 3.1.1 shebang-command: 2.0.0 @@ -2436,16 +3275,22 @@ packages: dev: true /date-fns@2.30.0: - resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} - engines: {node: '>=0.11'} + resolution: + { + integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==, + } + engines: { node: ">=0.11" } dependencies: - '@babel/runtime': 7.23.2 + "@babel/runtime": 7.23.2 dev: false /debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + resolution: + { + integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, + } peerDependencies: - supports-color: '*' + supports-color: "*" peerDependenciesMeta: supports-color: optional: true @@ -2453,10 +3298,13 @@ packages: ms: 2.0.0 /debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} + resolution: + { + integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, + } + engines: { node: ">=6.0" } peerDependencies: - supports-color: '*' + supports-color: "*" peerDependenciesMeta: supports-color: optional: true @@ -2464,7 +3312,10 @@ packages: ms: 2.1.2 /dedent@1.5.1: - resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} + resolution: + { + integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==, + } peerDependencies: babel-plugin-macros: ^3.1.0 peerDependenciesMeta: @@ -2473,25 +3324,37 @@ packages: dev: true /deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + resolution: + { + integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, + } dev: true /deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==, + } + engines: { node: ">=0.10.0" } dev: true /default-browser-id@3.0.0: - resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==, + } + engines: { node: ">=12" } dependencies: bplist-parser: 0.2.0 untildify: 4.0.0 dev: true /default-browser@4.0.0: - resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==, + } + engines: { node: ">=14.16" } dependencies: bundle-name: 3.0.0 default-browser-id: 3.0.0 @@ -2500,169 +3363,262 @@ packages: dev: true /defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + resolution: + { + integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==, + } dependencies: clone: 1.0.4 dev: true /define-data-property@1.1.1: - resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==, + } + engines: { node: ">= 0.4" } dependencies: get-intrinsic: 1.2.2 gopd: 1.0.1 has-property-descriptors: 1.0.1 /define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==, + } + engines: { node: ">=12" } dev: true /delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} + resolution: + { + integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, + } + engines: { node: ">=0.4.0" } dev: true /depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==, + } + engines: { node: ">= 0.8" } /destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + resolution: + { + integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==, + } + engines: { node: ">= 0.8", npm: 1.2.8000 || >= 1.4.16 } /detect-newline@3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==, + } + engines: { node: ">=8" } dev: true /dezalgo@1.0.4: - resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} + resolution: + { + integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==, + } dependencies: asap: 2.0.6 wrappy: 1.0.2 dev: true /diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dev: true /diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} + resolution: + { + integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==, + } + engines: { node: ">=0.3.1" } /dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, + } + engines: { node: ">=8" } dependencies: path-type: 4.0.0 dev: true /doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==, + } + engines: { node: ">=6.0.0" } dependencies: esutils: 2.0.3 dev: true /dotenv@16.3.1: - resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==, + } + engines: { node: ">=12" } dev: false /eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + resolution: + { + integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, + } dev: true /ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + resolution: + { + integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==, + } /electron-to-chromium@1.4.581: - resolution: {integrity: sha512-6uhqWBIapTJUxgPTCHH9sqdbxIMPt7oXl0VcAL1kOtlU6aECdcMncCrX5Z7sHQ/invtrC9jUQUef7+HhO8vVFw==} + resolution: + { + integrity: sha512-6uhqWBIapTJUxgPTCHH9sqdbxIMPt7oXl0VcAL1kOtlU6aECdcMncCrX5Z7sHQ/invtrC9jUQUef7+HhO8vVFw==, + } dev: true /emittery@0.13.1: - resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==, + } + engines: { node: ">=12" } dev: true /emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + resolution: + { + integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, + } /emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + resolution: + { + integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, + } dev: true /encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==, + } + engines: { node: ">= 0.8" } /end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + resolution: + { + integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==, + } dependencies: once: 1.4.0 dev: true /enhanced-resolve@5.15.0: - resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} - engines: {node: '>=10.13.0'} + resolution: + { + integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==, + } + engines: { node: ">=10.13.0" } dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 dev: true /error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + resolution: + { + integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, + } dependencies: is-arrayish: 0.2.1 dev: true /es-module-lexer@1.4.0: - resolution: {integrity: sha512-lcCr3v3OLezdfFyx9r5NRYHOUTQNnFEQ9E87Mx8Kc+iqyJNkO7MJoB4GQRTlIMw9kLLTwGw0OAkm4BQQud/d9g==} + resolution: + { + integrity: sha512-lcCr3v3OLezdfFyx9r5NRYHOUTQNnFEQ9E87Mx8Kc+iqyJNkO7MJoB4GQRTlIMw9kLLTwGw0OAkm4BQQud/d9g==, + } dev: true /escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, + } + engines: { node: ">=6" } /escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + resolution: + { + integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==, + } /escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} + resolution: + { + integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, + } + engines: { node: ">=0.8.0" } dev: true /escape-string-regexp@2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==, + } + engines: { node: ">=8" } dev: true /escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, + } + engines: { node: ">=10" } dev: true /eslint-config-prettier@9.0.0(eslint@8.53.0): - resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} + resolution: + { + integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==, + } hasBin: true peerDependencies: - eslint: '>=7.0.0' + eslint: ">=7.0.0" dependencies: eslint: 8.53.0 dev: true /eslint-plugin-prettier@5.0.1(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@3.0.3): - resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==} - engines: {node: ^14.18.0 || >=16.0.0} + resolution: + { + integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==, + } + engines: { node: ^14.18.0 || >=16.0.0 } peerDependencies: - '@types/eslint': '>=8.0.0' - eslint: '>=8.0.0' - eslint-config-prettier: '*' - prettier: '>=3.0.0' + "@types/eslint": ">=8.0.0" + eslint: ">=8.0.0" + eslint-config-prettier: "*" + prettier: ">=3.0.0" peerDependenciesMeta: - '@types/eslint': + "@types/eslint": optional: true eslint-config-prettier: optional: true @@ -2675,39 +3631,51 @@ packages: dev: true /eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} + 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==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 dev: true /eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } dev: true /eslint@8.53.0: - resolution: {integrity: sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) - '@eslint-community/regexpp': 4.10.0 - '@eslint/eslintrc': 2.1.3 - '@eslint/js': 8.53.0 - '@humanwhocodes/config-array': 0.11.13 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 + "@eslint-community/eslint-utils": 4.4.0(eslint@8.53.0) + "@eslint-community/regexpp": 4.10.0 + "@eslint/eslintrc": 2.1.3 + "@eslint/js": 8.53.0 + "@humanwhocodes/config-array": 0.11.13 + "@humanwhocodes/module-importer": 1.0.1 + "@nodelib/fs.walk": 1.2.8 + "@ungap/structured-clone": 1.2.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 @@ -2743,8 +3711,11 @@ packages: dev: true /espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } dependencies: acorn: 8.11.2 acorn-jsx: 5.3.2(acorn@8.11.2) @@ -2752,52 +3723,79 @@ packages: dev: true /esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, + } + engines: { node: ">=4" } hasBin: true dev: true /esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} + resolution: + { + integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==, + } + engines: { node: ">=0.10" } dependencies: estraverse: 5.3.0 dev: true /esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} + resolution: + { + integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, + } + engines: { node: ">=4.0" } dependencies: estraverse: 5.3.0 dev: true /estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.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'} + resolution: + { + integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, + } + engines: { node: ">=4.0" } dev: true /esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, + } + engines: { node: ">=0.10.0" } dev: true /etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==, + } + engines: { node: ">= 0.6" } /events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} + resolution: + { + integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==, + } + engines: { node: ">=0.8.x" } dev: true /execa@4.1.0: - resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==, + } + engines: { node: ">=10" } dependencies: cross-spawn: 7.0.3 get-stream: 5.2.0 @@ -2811,8 +3809,11 @@ packages: dev: true /execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==, + } + engines: { node: ">=10" } dependencies: cross-spawn: 7.0.3 get-stream: 6.0.1 @@ -2826,8 +3827,11 @@ packages: dev: true /execa@7.2.0: - resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} - engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + resolution: + { + integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==, + } + engines: { node: ^14.18.0 || ^16.14.0 || >=18.0.0 } dependencies: cross-spawn: 7.0.3 get-stream: 6.0.1 @@ -2841,15 +3845,21 @@ packages: dev: true /exit@0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==, + } + engines: { node: ">= 0.8.0" } dev: true /expect@29.7.0: - resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - '@jest/expect-utils': 29.7.0 + "@jest/expect-utils": 29.7.0 jest-get-type: 29.6.3 jest-matcher-utils: 29.7.0 jest-message-util: 29.7.0 @@ -2857,8 +3867,11 @@ packages: dev: true /express@4.18.2: - resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} - engines: {node: '>= 0.10.0'} + resolution: + { + integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==, + } + engines: { node: ">= 0.10.0" } dependencies: accepts: 1.3.8 array-flatten: 1.1.1 @@ -2895,8 +3908,11 @@ packages: - supports-color /external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==, + } + engines: { node: ">=4" } dependencies: chardet: 0.7.0 iconv-lite: 0.4.24 @@ -2904,71 +3920,107 @@ packages: dev: true /fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + resolution: + { + integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, + } dev: true /fast-diff@1.3.0: - resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + resolution: + { + integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==, + } dev: true /fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} + resolution: + { + integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==, + } + engines: { node: ">=8.6.0" } dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 + "@nodelib/fs.stat": 2.0.5 + "@nodelib/fs.walk": 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 dev: true /fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + resolution: + { + integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, + } dev: true /fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + resolution: + { + integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, + } dev: true /fast-safe-stringify@2.1.1: - resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + resolution: + { + integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==, + } /fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + resolution: + { + integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==, + } dependencies: reusify: 1.0.4 dev: true /fb-watchman@2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + resolution: + { + integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==, + } dependencies: bser: 2.1.1 dev: true /figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==, + } + engines: { node: ">=8" } dependencies: escape-string-regexp: 1.0.5 dev: true /file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + resolution: + { + integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, + } + engines: { node: ^10.12.0 || >=12.0.0 } dependencies: flat-cache: 3.1.1 dev: true /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, + } + engines: { node: ">=8" } dependencies: to-regex-range: 5.0.1 dev: true /finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==, + } + engines: { node: ">= 0.8" } dependencies: debug: 2.6.9 encodeurl: 1.0.2 @@ -2981,24 +4033,33 @@ packages: - supports-color /find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, + } + engines: { node: ">=8" } dependencies: locate-path: 5.0.0 path-exists: 4.0.0 dev: true /find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, + } + engines: { node: ">=10" } dependencies: locate-path: 6.0.0 path-exists: 4.0.0 dev: true /flat-cache@3.1.1: - resolution: {integrity: sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==} - engines: {node: '>=12.0.0'} + resolution: + { + integrity: sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==, + } + engines: { node: ">=12.0.0" } dependencies: flatted: 3.2.9 keyv: 4.5.4 @@ -3006,25 +4067,34 @@ packages: dev: true /flatted@3.2.9: - resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + resolution: + { + integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==, + } dev: true /foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==, + } + engines: { node: ">=14" } dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.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==} - engines: {node: '>=12.13.0', yarn: '>=1.0.0'} + resolution: + { + integrity: sha512-Uochze2R8peoN1XqlSi/rGUkDQpRogtLFocP9+PGu68zk1BDAKXfdeCdyVZpgTk8V8WFVQXdEz426VKjXLO1Gg==, + } + engines: { node: ">=12.13.0", yarn: ">=1.0.0" } peerDependencies: - typescript: '>3.6.0' + typescript: ">3.6.0" webpack: ^5.11.0 dependencies: - '@babel/code-frame': 7.22.13 + "@babel/code-frame": 7.22.13 chalk: 4.1.2 chokidar: 3.5.3 cosmiconfig: 8.3.6(typescript@5.2.2) @@ -3041,8 +4111,11 @@ packages: dev: true /form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==, + } + engines: { node: ">= 6" } dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 @@ -3050,7 +4123,10 @@ packages: dev: true /formidable@2.1.2: - resolution: {integrity: sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==} + resolution: + { + integrity: sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==, + } dependencies: dezalgo: 1.0.4 hexoid: 1.0.0 @@ -3059,16 +4135,25 @@ packages: dev: true /forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==, + } + engines: { node: ">= 0.6" } /fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==, + } + engines: { node: ">= 0.6" } /fs-extra@10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==, + } + engines: { node: ">=12" } dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 @@ -3076,39 +4161,63 @@ packages: dev: true /fs-monkey@1.0.5: - resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} + resolution: + { + integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==, + } dev: true /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + resolution: + { + integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, + } /fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + resolution: + { + integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, + } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } os: [darwin] requiresBuild: true dev: true optional: true /function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + resolution: + { + integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, + } /generic-pool@3.9.0: - resolution: {integrity: sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==} - engines: {node: '>= 4'} + resolution: + { + integrity: sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==, + } + engines: { node: ">= 4" } dev: false /gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, + } + engines: { node: ">=6.9.0" } dev: true /get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} + resolution: + { + integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, + } + engines: { node: 6.* || 8.* || >= 10.* } /get-intrinsic@1.2.2: - resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + resolution: + { + integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==, + } dependencies: function-bind: 1.1.2 has-proto: 1.0.1 @@ -3116,43 +4225,64 @@ packages: hasown: 2.0.0 /get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} + resolution: + { + integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==, + } + engines: { node: ">=8.0.0" } dev: true /get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==, + } + engines: { node: ">=8" } dependencies: pump: 3.0.0 dev: true /get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, + } + engines: { node: ">=10" } dev: true /glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, + } + engines: { node: ">= 6" } dependencies: is-glob: 4.0.3 dev: true /glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} + resolution: + { + integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, + } + engines: { node: ">=10.13.0" } dependencies: is-glob: 4.0.3 dev: true /glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + resolution: + { + integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==, + } dev: true /glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==, + } + engines: { node: ">=16 || 14 >=14.17" } hasBin: true dependencies: foreground-child: 3.1.1 @@ -3163,7 +4293,10 @@ packages: dev: true /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + resolution: + { + integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, + } dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -3174,8 +4307,11 @@ packages: dev: true /glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==, + } + engines: { node: ">=12" } dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -3185,8 +4321,11 @@ packages: dev: false /glob@9.3.5: - resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==, + } + engines: { node: ">=16 || 14 >=14.17" } dependencies: fs.realpath: 1.0.0 minimatch: 8.0.4 @@ -3195,20 +4334,29 @@ packages: dev: true /globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==, + } + engines: { node: ">=4" } dev: true /globals@13.23.0: - resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==, + } + engines: { node: ">=8" } dependencies: type-fest: 0.20.2 dev: true /globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, + } + engines: { node: ">=10" } dependencies: array-union: 2.1.0 dir-glob: 3.0.1 @@ -3219,67 +4367,109 @@ packages: dev: true /gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + resolution: + { + integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, + } dependencies: get-intrinsic: 1.2.2 /graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + resolution: + { + integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, + } dev: true /graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + resolution: + { + integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==, + } dev: true /has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, + } + engines: { node: ">=4" } dev: true /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, + } + engines: { node: ">=8" } /has-own-prop@2.0.0: - resolution: {integrity: sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==, + } + engines: { node: ">=8" } dev: true /has-property-descriptors@1.0.1: - resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} + resolution: + { + integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==, + } dependencies: get-intrinsic: 1.2.2 /has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==, + } + engines: { node: ">= 0.4" } /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, + } + engines: { node: ">= 0.4" } /hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==, + } + engines: { node: ">= 0.4" } dependencies: function-bind: 1.1.2 /hexoid@1.0.0: - resolution: {integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==, + } + engines: { node: ">=8" } dev: true /highlight.js@10.7.3: - resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} + resolution: + { + integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==, + } dev: false /html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + resolution: + { + integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==, + } dev: true /http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==, + } + engines: { node: ">= 0.8" } dependencies: depd: 2.0.0 inherits: 2.0.4 @@ -3288,45 +4478,69 @@ packages: toidentifier: 1.0.1 /human-signals@1.1.1: - resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} - engines: {node: '>=8.12.0'} + 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==} - engines: {node: '>=10.17.0'} + resolution: + { + integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==, + } + engines: { node: ">=10.17.0" } dev: true /human-signals@4.3.1: - resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} - engines: {node: '>=14.18.0'} + resolution: + { + integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==, + } + engines: { node: ">=14.18.0" } dev: true /iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, + } + engines: { node: ">=0.10.0" } dependencies: safer-buffer: 2.1.2 /ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + resolution: + { + integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, + } /ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} - engines: {node: '>= 4'} + resolution: + { + integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==, + } + engines: { node: ">= 4" } dev: true /import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, + } + engines: { node: ">=6" } dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 dev: true /import-local@3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==, + } + engines: { node: ">=8" } hasBin: true dependencies: pkg-dir: 4.2.0 @@ -3334,22 +4548,34 @@ packages: dev: true /imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} + resolution: + { + integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, + } + engines: { node: ">=0.8.19" } dev: true /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + resolution: + { + integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, + } dependencies: once: 1.4.0 wrappy: 1.0.2 /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + resolution: + { + integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, + } /inquirer@8.2.4: - resolution: {integrity: sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==} - engines: {node: '>=12.0.0'} + resolution: + { + integrity: sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==, + } + engines: { node: ">=12.0.0" } dependencies: ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -3369,8 +4595,11 @@ packages: dev: true /inquirer@8.2.6: - resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} - engines: {node: '>=12.0.0'} + resolution: + { + integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==, + } + engines: { node: ">=12.0.0" } dependencies: ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -3390,128 +4619,197 @@ packages: dev: true /interpret@1.4.0: - resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} - engines: {node: '>= 0.10'} + resolution: + { + integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==, + } + engines: { node: ">= 0.10" } dev: true /ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} + resolution: + { + integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==, + } + engines: { node: ">= 0.10" } /is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + resolution: + { + integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, + } dev: true /is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, + } + engines: { node: ">=8" } dependencies: binary-extensions: 2.2.0 dev: true /is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + resolution: + { + integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==, + } dependencies: hasown: 2.0.0 dev: true /is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==, + } + engines: { node: ">=8" } hasBin: true dev: true /is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } hasBin: true dev: true /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, + } + engines: { node: ">=0.10.0" } dev: true /is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, + } + engines: { node: ">=8" } /is-generator-fn@2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==, + } + engines: { node: ">=6" } dev: true /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, + } + 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==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==, + } + engines: { node: ">=14.16" } hasBin: true dependencies: is-docker: 3.0.0 dev: true /is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==, + } + engines: { node: ">=8" } dev: true /is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.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==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==, + } + engines: { node: ">=8" } dev: true /is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, + } + engines: { node: ">=8" } dev: true /is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } dev: true /is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==, + } + engines: { node: ">=10" } dev: true /is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==, + } + engines: { node: ">=8" } dependencies: is-docker: 2.2.1 dev: true /isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + resolution: + { + integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==, + } /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + resolution: + { + integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, + } dev: true /istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==, + } + engines: { node: ">=8" } dev: true /istanbul-lib-instrument@5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==, + } + engines: { node: ">=8" } dependencies: - '@babel/core': 7.23.3 - '@babel/parser': 7.23.3 - '@istanbuljs/schema': 0.1.3 + "@babel/core": 7.23.3 + "@babel/parser": 7.23.3 + "@istanbuljs/schema": 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 transitivePeerDependencies: @@ -3519,12 +4817,15 @@ packages: dev: true /istanbul-lib-instrument@6.0.1: - resolution: {integrity: sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==, + } + engines: { node: ">=10" } dependencies: - '@babel/core': 7.23.3 - '@babel/parser': 7.23.3 - '@istanbuljs/schema': 0.1.3 + "@babel/core": 7.23.3 + "@babel/parser": 7.23.3 + "@istanbuljs/schema": 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.5.4 transitivePeerDependencies: @@ -3532,8 +4833,11 @@ packages: dev: true /istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==, + } + engines: { node: ">=10" } dependencies: istanbul-lib-coverage: 3.2.2 make-dir: 4.0.0 @@ -3541,8 +4845,11 @@ packages: dev: true /istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==, + } + engines: { node: ">=10" } dependencies: debug: 4.3.4 istanbul-lib-coverage: 3.2.2 @@ -3552,29 +4859,41 @@ packages: dev: true /istanbul-reports@3.1.6: - resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==, + } + engines: { node: ">=8" } dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 dev: true /iterare@1.2.1: - resolution: {integrity: sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==, + } + engines: { node: ">=6" } /jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==, + } + engines: { node: ">=14" } dependencies: - '@isaacs/cliui': 8.0.2 + "@isaacs/cliui": 8.0.2 optionalDependencies: - '@pkgjs/parseargs': 0.11.0 + "@pkgjs/parseargs": 0.11.0 dev: true /jest-changed-files@29.7.0: - resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: execa: 5.1.1 jest-util: 29.7.0 @@ -3582,14 +4901,17 @@ packages: dev: true /jest-circus@29.7.0: - resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.9.0 + "@jest/environment": 29.7.0 + "@jest/expect": 29.7.0 + "@jest/test-result": 29.7.0 + "@jest/types": 29.6.3 + "@types/node": 20.9.0 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.1 @@ -3611,8 +4933,11 @@ packages: dev: true /jest-cli@29.7.0(@types/node@20.9.0)(ts-node@10.9.1): - resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } hasBin: true peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -3620,9 +4945,9 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 29.7.0(ts-node@10.9.1) - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 + "@jest/core": 29.7.0(ts-node@10.9.1) + "@jest/test-result": 29.7.0 + "@jest/types": 29.6.3 chalk: 4.1.2 create-jest: 29.7.0(@types/node@20.9.0)(ts-node@10.9.1) exit: 0.1.2 @@ -3632,28 +4957,31 @@ packages: jest-validate: 29.7.0 yargs: 17.7.2 transitivePeerDependencies: - - '@types/node' + - "@types/node" - babel-plugin-macros - supports-color - ts-node dev: true /jest-config@29.7.0(@types/node@20.9.0)(ts-node@10.9.1): - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' + "@types/node": "*" + ts-node: ">=9.0.0" peerDependenciesMeta: - '@types/node': + "@types/node": optional: true ts-node: optional: true dependencies: - '@babel/core': 7.23.3 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.9.0 + "@babel/core": 7.23.3 + "@jest/test-sequencer": 29.7.0 + "@jest/types": 29.6.3 + "@types/node": 20.9.0 babel-jest: 29.7.0(@babel/core@7.23.3) chalk: 4.1.2 ci-info: 3.9.0 @@ -3680,8 +5008,11 @@ packages: dev: true /jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: chalk: 4.1.2 diff-sequences: 29.6.3 @@ -3690,17 +5021,23 @@ packages: dev: true /jest-docblock@29.7.0: - resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: detect-newline: 3.1.0 dev: true /jest-each@29.7.0: - resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - '@jest/types': 29.6.3 + "@jest/types": 29.6.3 chalk: 4.1.2 jest-get-type: 29.6.3 jest-util: 29.7.0 @@ -3708,29 +5045,38 @@ packages: dev: true /jest-environment-node@29.7.0: - resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.9.0 + "@jest/environment": 29.7.0 + "@jest/fake-timers": 29.7.0 + "@jest/types": 29.6.3 + "@types/node": 20.9.0 jest-mock: 29.7.0 jest-util: 29.7.0 dev: true /jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dev: true /jest-haste-map@29.7.0: - resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - '@jest/types': 29.6.3 - '@types/graceful-fs': 4.1.9 - '@types/node': 20.9.0 + "@jest/types": 29.6.3 + "@types/graceful-fs": 4.1.9 + "@types/node": 20.9.0 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -3744,16 +5090,22 @@ packages: dev: true /jest-leak-detector@29.7.0: - resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: jest-get-type: 29.6.3 pretty-format: 29.7.0 dev: true /jest-matcher-utils@29.7.0: - resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: chalk: 4.1.2 jest-diff: 29.7.0 @@ -3762,12 +5114,15 @@ packages: dev: true /jest-message-util@29.7.0: - resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - '@babel/code-frame': 7.22.13 - '@jest/types': 29.6.3 - '@types/stack-utils': 2.0.3 + "@babel/code-frame": 7.22.13 + "@jest/types": 29.6.3 + "@types/stack-utils": 2.0.3 chalk: 4.1.2 graceful-fs: 4.2.11 micromatch: 4.0.5 @@ -3777,19 +5132,25 @@ packages: dev: true /jest-mock@29.7.0: - resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - '@jest/types': 29.6.3 - '@types/node': 20.9.0 + "@jest/types": 29.6.3 + "@types/node": 20.9.0 jest-util: 29.7.0 dev: true /jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==, + } + engines: { node: ">=6" } peerDependencies: - jest-resolve: '*' + jest-resolve: "*" peerDependenciesMeta: jest-resolve: optional: true @@ -3798,13 +5159,19 @@ packages: dev: true /jest-regex-util@29.6.3: - resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dev: true /jest-resolve-dependencies@29.7.0: - resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: jest-regex-util: 29.6.3 jest-snapshot: 29.7.0 @@ -3813,8 +5180,11 @@ packages: dev: true /jest-resolve@29.7.0: - resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: chalk: 4.1.2 graceful-fs: 4.2.11 @@ -3828,15 +5198,18 @@ packages: dev: true /jest-runner@29.7.0: - resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - '@jest/console': 29.7.0 - '@jest/environment': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.9.0 + "@jest/console": 29.7.0 + "@jest/environment": 29.7.0 + "@jest/test-result": 29.7.0 + "@jest/transform": 29.7.0 + "@jest/types": 29.6.3 + "@types/node": 20.9.0 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -3857,17 +5230,20 @@ packages: dev: true /jest-runtime@29.7.0: - resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/globals': 29.7.0 - '@jest/source-map': 29.6.3 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.9.0 + "@jest/environment": 29.7.0 + "@jest/fake-timers": 29.7.0 + "@jest/globals": 29.7.0 + "@jest/source-map": 29.6.3 + "@jest/test-result": 29.7.0 + "@jest/transform": 29.7.0 + "@jest/types": 29.6.3 + "@types/node": 20.9.0 chalk: 4.1.2 cjs-module-lexer: 1.2.3 collect-v8-coverage: 1.0.2 @@ -3887,17 +5263,20 @@ packages: dev: true /jest-snapshot@29.7.0: - resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - '@babel/core': 7.23.3 - '@babel/generator': 7.23.3 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.3) - '@babel/types': 7.23.3 - '@jest/expect-utils': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 + "@babel/core": 7.23.3 + "@babel/generator": 7.23.3 + "@babel/plugin-syntax-jsx": 7.23.3(@babel/core@7.23.3) + "@babel/plugin-syntax-typescript": 7.23.3(@babel/core@7.23.3) + "@babel/types": 7.23.3 + "@jest/expect-utils": 29.7.0 + "@jest/transform": 29.7.0 + "@jest/types": 29.6.3 babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.3) chalk: 4.1.2 expect: 29.7.0 @@ -3915,11 +5294,14 @@ packages: dev: true /jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - '@jest/types': 29.6.3 - '@types/node': 20.9.0 + "@jest/types": 29.6.3 + "@types/node": 20.9.0 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -3927,10 +5309,13 @@ packages: dev: true /jest-validate@29.7.0: - resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - '@jest/types': 29.6.3 + "@jest/types": 29.6.3 camelcase: 6.3.0 chalk: 4.1.2 jest-get-type: 29.6.3 @@ -3939,12 +5324,15 @@ packages: dev: true /jest-watcher@29.7.0: - resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.9.0 + "@jest/test-result": 29.7.0 + "@jest/types": 29.6.3 + "@types/node": 20.9.0 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -3953,27 +5341,36 @@ packages: dev: true /jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} + resolution: + { + integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==, + } + engines: { node: ">= 10.13.0" } dependencies: - '@types/node': 20.9.0 + "@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==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - '@types/node': 20.9.0 + "@types/node": 20.9.0 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true /jest@29.7.0(@types/node@20.9.0)(ts-node@10.9.1): - resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } hasBin: true peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -3981,23 +5378,29 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 29.7.0(ts-node@10.9.1) - '@jest/types': 29.6.3 + "@jest/core": 29.7.0(ts-node@10.9.1) + "@jest/types": 29.6.3 import-local: 3.1.0 jest-cli: 29.7.0(@types/node@20.9.0)(ts-node@10.9.1) transitivePeerDependencies: - - '@types/node' + - "@types/node" - babel-plugin-macros - supports-color - ts-node dev: true /js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + resolution: + { + integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, + } dev: true /js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + resolution: + { + integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==, + } hasBin: true dependencies: argparse: 1.0.10 @@ -4005,49 +5408,79 @@ packages: dev: true /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + resolution: + { + integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, + } hasBin: true dependencies: argparse: 2.0.1 /jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==, + } + engines: { node: ">=4" } hasBin: true dev: true /json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + resolution: + { + integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, + } dev: true /json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + resolution: + { + integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, + } dev: true /json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + resolution: + { + integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, + } dev: true /json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + resolution: + { + integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, + } dev: true /json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + resolution: + { + integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, + } dev: true /json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==, + } + engines: { node: ">=6" } hasBin: true dev: true /jsonc-parser@3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + resolution: + { + integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==, + } dev: true /jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + resolution: + { + integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, + } dependencies: universalify: 2.0.1 optionalDependencies: @@ -4055,258 +5488,402 @@ packages: dev: true /keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + resolution: + { + integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==, + } dependencies: json-buffer: 3.0.1 dev: true /kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==, + } + engines: { node: ">=6" } dev: true /leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==, + } + engines: { node: ">=6" } dev: true /levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, + } + engines: { node: ">= 0.8.0" } dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 dev: true /lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + resolution: + { + integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, + } dev: true /loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} - engines: {node: '>=6.11.5'} + resolution: + { + integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==, + } + engines: { node: ">=6.11.5" } dev: true /locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, + } + engines: { node: ">=8" } dependencies: p-locate: 4.1.0 dev: true /locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, + } + engines: { node: ">=10" } dependencies: p-locate: 5.0.0 dev: true /lodash.clonedeep@4.5.0: - resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} + resolution: + { + integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==, + } dev: false /lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + resolution: + { + integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==, + } dev: true /lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + resolution: + { + integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, + } dev: true /lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + resolution: + { + integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, + } /log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==, + } + engines: { node: ">=10" } dependencies: chalk: 4.1.2 is-unicode-supported: 0.1.0 dev: true /lru-cache@10.0.2: - resolution: {integrity: sha512-Yj9mA8fPiVgOUpByoTZO5pNrcl5Yk37FcSHsUINpAsaBIEZIuqcCclDZJCVxqQShDsmYX8QG63svJiTbOATZwg==} - engines: {node: 14 || >=16.14} + resolution: + { + integrity: sha512-Yj9mA8fPiVgOUpByoTZO5pNrcl5Yk37FcSHsUINpAsaBIEZIuqcCclDZJCVxqQShDsmYX8QG63svJiTbOATZwg==, + } + engines: { node: 14 || >=16.14 } dependencies: semver: 7.5.4 dev: true /lru-cache@10.2.0: - resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} - engines: {node: 14 || >=16.14} + resolution: + { + integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==, + } + engines: { node: 14 || >=16.14 } dev: false /lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + resolution: + { + integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==, + } dependencies: yallist: 3.1.1 dev: true /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, + } + engines: { node: ">=10" } dependencies: yallist: 4.0.0 dev: true /macos-release@2.5.1: - resolution: {integrity: sha512-DXqXhEM7gW59OjZO8NIjBCz9AQ1BEMrfiOAl4AYByHCtVHRF4KoGNO8mqQeM8lRCtQe/UnJ4imO/d2HdkKsd+A==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-DXqXhEM7gW59OjZO8NIjBCz9AQ1BEMrfiOAl4AYByHCtVHRF4KoGNO8mqQeM8lRCtQe/UnJ4imO/d2HdkKsd+A==, + } + engines: { node: ">=6" } dev: true /magic-string@0.30.1: - resolution: {integrity: sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==, + } + engines: { node: ">=12" } dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 + "@jridgewell/sourcemap-codec": 1.4.15 dev: true /make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==, + } + engines: { node: ">=10" } dependencies: semver: 7.5.4 dev: true /make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + resolution: + { + integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==, + } /makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + resolution: + { + integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==, + } dependencies: tmpl: 1.0.5 dev: true /media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==, + } + engines: { node: ">= 0.6" } /memfs@3.5.3: - resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} - engines: {node: '>= 4.0.0'} + resolution: + { + integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==, + } + engines: { node: ">= 4.0.0" } dependencies: fs-monkey: 1.0.5 dev: true /merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + resolution: + { + integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==, + } /merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + resolution: + { + integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, + } dev: true /merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, + } + engines: { node: ">= 8" } dev: true /methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==, + } + engines: { node: ">= 0.6" } /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} + resolution: + { + integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, + } + engines: { node: ">=8.6" } dependencies: braces: 3.0.2 picomatch: 2.3.1 dev: true /mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, + } + engines: { node: ">= 0.6" } /mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, + } + engines: { node: ">= 0.6" } dependencies: mime-db: 1.52.0 /mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==, + } + engines: { node: ">=4" } hasBin: true /mime@2.6.0: - resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} - engines: {node: '>=4.0.0'} + resolution: + { + integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==, + } + engines: { node: ">=4.0.0" } hasBin: true dev: true /mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, + } + engines: { node: ">=6" } dev: true /mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==, + } + engines: { node: ">=12" } dev: true /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + resolution: + { + integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, + } dependencies: brace-expansion: 1.1.11 dev: true /minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==, + } + engines: { node: ">=10" } dependencies: brace-expansion: 2.0.1 dev: false /minimatch@8.0.4: - resolution: {integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==, + } + engines: { node: ">=16 || 14 >=14.17" } dependencies: brace-expansion: 2.0.1 dev: true /minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==, + } + engines: { node: ">=16 || 14 >=14.17" } dependencies: brace-expansion: 2.0.1 dev: true /minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + resolution: + { + integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, + } /minipass@4.2.8: - resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==, + } + engines: { node: ">=8" } dev: true /minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==, + } + engines: { node: ">=16 || 14 >=14.17" } dev: true /mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + resolution: + { + integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==, + } hasBin: true dependencies: minimist: 1.2.8 /mkdirp@2.1.6: - resolution: {integrity: sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==, + } + engines: { node: ">=10" } hasBin: true dev: false /ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + resolution: + { + integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==, + } /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + resolution: + { + integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, + } /ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + resolution: + { + integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, + } /multer@1.4.4-lts.1: - resolution: {integrity: sha512-WeSGziVj6+Z2/MwQo3GvqzgR+9Uc+qt8SwHKh3gvNPiISKfsMfG4SvCOFYlxxgkXt7yIV2i1yczehm0EOKIxIg==} - engines: {node: '>= 6.0.0'} + resolution: + { + integrity: sha512-WeSGziVj6+Z2/MwQo3GvqzgR+9Uc+qt8SwHKh3gvNPiISKfsMfG4SvCOFYlxxgkXt7yIV2i1yczehm0EOKIxIg==, + } + engines: { node: ">= 6.0.0" } dependencies: append-field: 1.0.0 busboy: 1.6.0 @@ -4317,11 +5894,17 @@ packages: xtend: 4.0.2 /mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + resolution: + { + integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==, + } dev: true /mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + resolution: + { + integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==, + } dependencies: any-promise: 1.3.0 object-assign: 4.1.1 @@ -4329,30 +5912,48 @@ packages: dev: false /natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + resolution: + { + integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, + } dev: true /negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==, + } + engines: { node: ">= 0.6" } /neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + resolution: + { + integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==, + } dev: true /node-abort-controller@3.1.1: - resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} + resolution: + { + integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==, + } dev: true /node-emoji@1.11.0: - resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} + 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==} - engines: {node: 4.x || >=6.0.0} + resolution: + { + integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==, + } + engines: { node: 4.x || >=6.0.0 } peerDependencies: encoding: ^0.1.0 peerDependenciesMeta: @@ -4362,67 +5963,103 @@ packages: whatwg-url: 5.0.0 /node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + resolution: + { + integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==, + } dev: true /node-releases@2.0.13: - resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + resolution: + { + integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==, + } dev: true /normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, + } + engines: { node: ">=0.10.0" } dev: true /npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, + } + engines: { node: ">=8" } dependencies: path-key: 3.1.1 dev: true /npm-run-path@5.1.0: - resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } dependencies: path-key: 4.0.0 dev: true /object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, + } + engines: { node: ">=0.10.0" } /object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + resolution: + { + integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==, + } /on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==, + } + engines: { node: ">= 0.8" } dependencies: ee-first: 1.1.1 /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + resolution: + { + integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, + } dependencies: wrappy: 1.0.2 /onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, + } + engines: { node: ">=6" } dependencies: mimic-fn: 2.1.0 dev: true /onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==, + } + engines: { node: ">=12" } dependencies: mimic-fn: 4.0.0 dev: true /open@9.1.0: - resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==, + } + engines: { node: ">=14.16" } dependencies: default-browser: 4.0.0 define-lazy-prop: 3.0.0 @@ -4431,10 +6068,13 @@ packages: dev: true /optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==, + } + engines: { node: ">= 0.8.0" } dependencies: - '@aashutoshrathi/word-wrap': 1.2.6 + "@aashutoshrathi/word-wrap": 1.2.6 deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 @@ -4443,8 +6083,11 @@ packages: dev: true /ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==, + } + engines: { node: ">=10" } dependencies: bl: 4.1.0 chalk: 4.1.2 @@ -4458,105 +6101,156 @@ packages: dev: true /os-name@4.0.1: - resolution: {integrity: sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw==, + } + engines: { node: ">=10" } 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'} + resolution: + { + integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==, + } + engines: { node: ">=0.10.0" } dev: true /p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, + } + engines: { node: ">=6" } dependencies: p-try: 2.2.0 dev: true /p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, + } + engines: { node: ">=10" } dependencies: yocto-queue: 0.1.0 dev: true /p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, + } + engines: { node: ">=8" } dependencies: p-limit: 2.3.0 dev: true /p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, + } + engines: { node: ">=10" } dependencies: p-limit: 3.1.0 dev: true /p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, + } + engines: { node: ">=6" } dev: true /packet-reader@1.0.0: - resolution: {integrity: sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==} + resolution: + { + integrity: sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==, + } dev: false /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, + } + engines: { node: ">=6" } dependencies: callsites: 3.1.0 dev: true /parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, + } + engines: { node: ">=8" } dependencies: - '@babel/code-frame': 7.22.13 + "@babel/code-frame": 7.22.13 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 dev: true /parse5-htmlparser2-tree-adapter@6.0.1: - resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} + resolution: + { + integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==, + } dependencies: parse5: 6.0.1 dev: false /parse5@5.1.1: - resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} + resolution: + { + integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==, + } dev: false /parse5@6.0.1: - resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + resolution: + { + integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==, + } dev: false /parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==, + } + engines: { node: ">= 0.8" } /passport-http-bearer@1.0.1: - resolution: {integrity: sha512-SELQM+dOTuMigr9yu8Wo4Fm3ciFfkMq5h/ZQ8ffi4ELgZrX1xh9PlglqZdcUZ1upzJD/whVyt+YWF62s3U6Ipw==} - engines: {node: '>= 0.4.0'} + resolution: + { + integrity: sha512-SELQM+dOTuMigr9yu8Wo4Fm3ciFfkMq5h/ZQ8ffi4ELgZrX1xh9PlglqZdcUZ1upzJD/whVyt+YWF62s3U6Ipw==, + } + engines: { node: ">= 0.4.0" } dependencies: passport-strategy: 1.0.0 dev: false /passport-strategy@1.0.0: - resolution: {integrity: sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA==} - engines: {node: '>= 0.4.0'} + resolution: + { + integrity: sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA==, + } + engines: { node: ">= 0.4.0" } dev: false /passport@0.7.0: - resolution: {integrity: sha512-cPLl+qZpSc+ireUvt+IzqbED1cHHkDoVYMo30jbJIdOOjQ1MQYZBPiNvmi8UM6lJuOpTPXJGZQk0DtC4y61MYQ==} - engines: {node: '>= 0.4.0'} + resolution: + { + integrity: sha512-cPLl+qZpSc+ireUvt+IzqbED1cHHkDoVYMo30jbJIdOOjQ1MQYZBPiNvmi8UM6lJuOpTPXJGZQk0DtC4y61MYQ==, + } + engines: { node: ">= 0.4.0" } dependencies: passport-strategy: 1.0.0 pause: 0.0.1 @@ -4564,82 +6258,130 @@ packages: dev: false /path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, + } + engines: { node: ">=8" } dev: true /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, + } + engines: { node: ">=0.10.0" } dev: true /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, + } + engines: { node: ">=8" } dev: true /path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==, + } + engines: { node: ">=12" } dev: true /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + resolution: + { + integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, + } dev: true /path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==, + } + engines: { node: ">=16 || 14 >=14.17" } dependencies: lru-cache: 10.0.2 minipass: 7.0.4 dev: true /path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + resolution: + { + integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==, + } /path-to-regexp@3.2.0: - resolution: {integrity: sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==} + resolution: + { + integrity: sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==, + } /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, + } + engines: { node: ">=8" } dev: true /pause@0.0.1: - resolution: {integrity: sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==} + resolution: + { + integrity: sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==, + } dev: false /pg-cloudflare@1.1.1: - resolution: {integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==} + resolution: + { + integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==, + } requiresBuild: true dev: false optional: true /pg-connection-string@2.6.2: - resolution: {integrity: sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==} + resolution: + { + integrity: sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==, + } dev: false /pg-int8@1.0.1: - resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} - engines: {node: '>=4.0.0'} + resolution: + { + integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==, + } + engines: { node: ">=4.0.0" } dev: false /pg-pool@3.6.1(pg@8.11.3): - resolution: {integrity: sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==} + resolution: + { + integrity: sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==, + } peerDependencies: - pg: '>=8.0' + pg: ">=8.0" dependencies: pg: 8.11.3 dev: false /pg-protocol@1.6.0: - resolution: {integrity: sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==} + resolution: + { + integrity: sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==, + } dev: false /pg-types@2.2.0: - resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==, + } + engines: { node: ">=4" } dependencies: pg-int8: 1.0.1 postgres-array: 2.0.0 @@ -4649,10 +6391,13 @@ packages: dev: false /pg@8.11.3: - resolution: {integrity: sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==} - engines: {node: '>= 8.0.0'} + resolution: + { + integrity: sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==, + } + engines: { node: ">= 8.0.0" } peerDependencies: - pg-native: '>=3.0.1' + pg-native: ">=3.0.1" peerDependenciesMeta: pg-native: optional: true @@ -4669,155 +6414,236 @@ packages: dev: false /pgpass@1.0.5: - resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} + resolution: + { + integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==, + } dependencies: split2: 4.2.0 dev: false /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + resolution: + { + integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, + } dev: true /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} + resolution: + { + integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, + } + engines: { node: ">=8.6" } dev: true /pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==, + } + engines: { node: ">= 6" } dev: true /pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==, + } + engines: { node: ">=8" } dependencies: find-up: 4.1.0 dev: true /pluralize@8.0.0: - resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==, + } + engines: { node: ">=4" } dev: true /postgres-array@2.0.0: - resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==, + } + engines: { node: ">=4" } dev: false /postgres-bytea@1.0.0: - resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==, + } + engines: { node: ">=0.10.0" } dev: false /postgres-date@1.0.7: - resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==, + } + engines: { node: ">=0.10.0" } dev: false /postgres-interval@1.2.0: - resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==, + } + engines: { node: ">=0.10.0" } dependencies: xtend: 4.0.2 dev: false /prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, + } + engines: { node: ">= 0.8.0" } dev: true /prettier-linter-helpers@1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==, + } + engines: { node: ">=6.0.0" } dependencies: fast-diff: 1.3.0 dev: true /prettier@3.0.3: - resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==, + } + engines: { node: ">=14" } hasBin: true dev: true /pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - '@jest/schemas': 29.6.3 + "@jest/schemas": 29.6.3 ansi-styles: 5.2.0 react-is: 18.2.0 dev: true /process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + resolution: + { + integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==, + } /promise-coalesce@1.1.2: - resolution: {integrity: sha512-zLaJ9b8hnC564fnJH6NFSOGZYYdzrAJn2JUUIwzoQb32fG2QAakpDNM+CZo1km6keXkRXRM+hml1BFAPVnPkxg==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-zLaJ9b8hnC564fnJH6NFSOGZYYdzrAJn2JUUIwzoQb32fG2QAakpDNM+CZo1km6keXkRXRM+hml1BFAPVnPkxg==, + } + engines: { node: ">=16" } dev: false /prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==, + } + engines: { node: ">= 6" } dependencies: kleur: 3.0.3 sisteransi: 1.0.5 dev: true /proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} + resolution: + { + integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==, + } + engines: { node: ">= 0.10" } dependencies: forwarded: 0.2.0 ipaddr.js: 1.9.1 /pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + resolution: + { + integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==, + } dependencies: end-of-stream: 1.4.4 once: 1.4.0 dev: true /punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==, + } + engines: { node: ">=6" } dev: true /pure-rand@6.0.4: - resolution: {integrity: sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==} + resolution: + { + integrity: sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==, + } dev: true /qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} + resolution: + { + integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==, + } + engines: { node: ">=0.6" } dependencies: side-channel: 1.0.4 /qs@6.11.2: - resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} - engines: {node: '>=0.6'} + resolution: + { + integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==, + } + engines: { node: ">=0.6" } dependencies: side-channel: 1.0.4 dev: true /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + resolution: + { + integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, + } dev: true /randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + 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==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==, + } + engines: { node: ">= 0.6" } /raw-body@2.5.1: - resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==, + } + engines: { node: ">= 0.8" } dependencies: bytes: 3.1.2 http-errors: 2.0.0 @@ -4825,8 +6651,11 @@ packages: unpipe: 1.0.0 /raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==, + } + engines: { node: ">= 0.8" } dependencies: bytes: 3.1.2 http-errors: 2.0.0 @@ -4834,11 +6663,17 @@ packages: unpipe: 1.0.0 /react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + resolution: + { + integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==, + } dev: true /readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + resolution: + { + integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==, + } dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -4849,8 +6684,11 @@ packages: util-deprecate: 1.0.2 /readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==, + } + engines: { node: ">= 6" } dependencies: inherits: 2.0.4 string_decoder: 1.3.0 @@ -4858,75 +6696,114 @@ packages: dev: true /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} + resolution: + { + integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, + } + engines: { node: ">=8.10.0" } dependencies: picomatch: 2.3.1 dev: true /rechoir@0.6.2: - resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} - engines: {node: '>= 0.10'} + resolution: + { + integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==, + } + engines: { node: ">= 0.10" } dependencies: resolve: 1.22.8 dev: true /redis@4.6.13: - resolution: {integrity: sha512-MHgkS4B+sPjCXpf+HfdetBwbRz6vCtsceTmw1pHNYJAsYxrfpOP6dz+piJWGos8wqG7qb3vj/Rrc5qOlmInUuA==} + resolution: + { + integrity: sha512-MHgkS4B+sPjCXpf+HfdetBwbRz6vCtsceTmw1pHNYJAsYxrfpOP6dz+piJWGos8wqG7qb3vj/Rrc5qOlmInUuA==, + } dependencies: - '@redis/bloom': 1.2.0(@redis/client@1.5.14) - '@redis/client': 1.5.14 - '@redis/graph': 1.1.1(@redis/client@1.5.14) - '@redis/json': 1.0.6(@redis/client@1.5.14) - '@redis/search': 1.1.6(@redis/client@1.5.14) - '@redis/time-series': 1.0.5(@redis/client@1.5.14) + "@redis/bloom": 1.2.0(@redis/client@1.5.14) + "@redis/client": 1.5.14 + "@redis/graph": 1.1.1(@redis/client@1.5.14) + "@redis/json": 1.0.6(@redis/client@1.5.14) + "@redis/search": 1.1.6(@redis/client@1.5.14) + "@redis/time-series": 1.0.5(@redis/client@1.5.14) dev: false /reflect-metadata@0.1.13: - resolution: {integrity: sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==} + resolution: + { + integrity: sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==, + } /regenerator-runtime@0.14.0: - resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + resolution: + { + integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==, + } dev: false /repeat-string@1.6.1: - resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} - engines: {node: '>=0.10'} + resolution: + { + integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==, + } + engines: { node: ">=0.10" } dev: true /require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, + } + engines: { node: ">=0.10.0" } /require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, + } + engines: { node: ">=0.10.0" } dev: true /resolve-cwd@3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==, + } + engines: { node: ">=8" } dependencies: resolve-from: 5.0.0 dev: true /resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, + } + engines: { node: ">=4" } dev: true /resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==, + } + engines: { node: ">=8" } dev: true /resolve.exports@2.0.2: - resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==, + } + engines: { node: ">=10" } dev: true /resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + resolution: + { + integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==, + } hasBin: true dependencies: is-core-module: 2.13.1 @@ -4935,90 +6812,135 @@ packages: dev: true /restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==, + } + engines: { node: ">=8" } dependencies: onetime: 5.1.2 signal-exit: 3.0.7 dev: true /reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + resolution: + { + integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, + } + engines: { iojs: ">=1.0.0", node: ">=0.10.0" } dev: true /rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + resolution: + { + integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, + } hasBin: true dependencies: glob: 7.2.3 dev: true /rimraf@4.4.1: - resolution: {integrity: sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==, + } + engines: { node: ">=14" } hasBin: true dependencies: glob: 9.3.5 dev: true /run-applescript@5.0.0: - resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==, + } + engines: { node: ">=12" } dependencies: execa: 5.1.1 dev: true /run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} + 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==} + resolution: + { + integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, + } dependencies: queue-microtask: 1.2.3 dev: true /rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + resolution: + { + integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==, + } dependencies: tslib: 2.6.2 /safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + resolution: + { + integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==, + } /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + resolution: + { + integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, + } /safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + resolution: + { + integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, + } /schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} + resolution: + { + integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==, + } + engines: { node: ">= 10.13.0" } dependencies: - '@types/json-schema': 7.0.15 + "@types/json-schema": 7.0.15 ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) dev: true /semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + resolution: + { + integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==, + } hasBin: true dev: true /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==, + } + engines: { node: ">=10" } hasBin: true dependencies: lru-cache: 6.0.0 dev: true /send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==, + } + engines: { node: ">= 0.8.0" } dependencies: debug: 2.6.9 depd: 2.0.0 @@ -5037,14 +6959,20 @@ packages: - supports-color /serialize-javascript@6.0.1: - resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==} + 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==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==, + } + engines: { node: ">= 0.8.0" } dependencies: encodeurl: 1.0.2 escape-html: 1.0.3 @@ -5054,8 +6982,11 @@ packages: - supports-color /set-function-length@1.1.1: - resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==, + } + engines: { node: ">= 0.4" } dependencies: define-data-property: 1.1.1 get-intrinsic: 1.2.2 @@ -5063,10 +6994,16 @@ packages: has-property-descriptors: 1.0.1 /setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + resolution: + { + integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==, + } /sha.js@2.4.11: - resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} + resolution: + { + integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==, + } hasBin: true dependencies: inherits: 2.0.4 @@ -5074,20 +7011,29 @@ packages: dev: false /shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, + } + engines: { node: ">=8" } dependencies: shebang-regex: 3.0.0 dev: true /shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, + } + engines: { node: ">=8" } dev: true /shelljs@0.8.5: - resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==, + } + engines: { node: ">=4" } hasBin: true dependencies: glob: 7.2.3 @@ -5096,97 +7042,148 @@ packages: dev: true /side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + resolution: + { + integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==, + } dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.2 object-inspect: 1.13.1 /signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + resolution: + { + integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, + } dev: true /signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, + } + engines: { node: ">=14" } dev: true /sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + resolution: + { + integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==, + } dev: true /slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, + } + engines: { node: ">=8" } dev: true /source-map-support@0.5.13: - resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + resolution: + { + integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==, + } dependencies: buffer-from: 1.1.2 source-map: 0.6.1 dev: true /source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + resolution: + { + integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, + } dependencies: buffer-from: 1.1.2 source-map: 0.6.1 dev: true /source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, + } + engines: { node: ">=0.10.0" } dev: true /source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==, + } + engines: { node: ">= 8" } dev: true /split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} + resolution: + { + integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==, + } + engines: { node: ">= 10.x" } dev: false /sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + resolution: + { + integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==, + } dev: true /stack-utils@2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==, + } + engines: { node: ">=10" } dependencies: escape-string-regexp: 2.0.0 dev: true /statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==, + } + engines: { node: ">= 0.8" } /streamsearch@1.1.0: - resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} - engines: {node: '>=10.0.0'} + resolution: + { + integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==, + } + engines: { node: ">=10.0.0" } /string-length@4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==, + } + engines: { node: ">=10" } dependencies: char-regex: 1.0.2 strip-ansi: 6.0.1 dev: true /string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, + } + engines: { node: ">=8" } dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 /string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==, + } + engines: { node: ">=12" } dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 @@ -5194,57 +7191,87 @@ packages: dev: true /string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + resolution: + { + integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==, + } dependencies: safe-buffer: 5.1.2 /string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + resolution: + { + integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, + } dependencies: safe-buffer: 5.2.1 dev: true /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, + } + engines: { node: ">=8" } dependencies: ansi-regex: 5.0.1 /strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==, + } + engines: { node: ">=12" } dependencies: ansi-regex: 6.0.1 dev: true /strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, + } + engines: { node: ">=4" } dev: true /strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==, + } + engines: { node: ">=8" } dev: true /strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==, + } + engines: { node: ">=6" } dev: true /strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==, + } + engines: { node: ">=12" } dev: true /strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, + } + engines: { node: ">=8" } dev: true /superagent@8.1.2: - resolution: {integrity: sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==} - engines: {node: '>=6.4.0 <13 || >=14'} + resolution: + { + integrity: sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==, + } + engines: { node: ">=6.4.0 <13 || >=14" } dependencies: component-emitter: 1.3.0 cookiejar: 2.1.4 @@ -5261,8 +7288,11 @@ packages: dev: true /supertest@6.3.3: - resolution: {integrity: sha512-EMCG6G8gDu5qEqRQ3JjjPs6+FYT1a7Hv5ApHvtSghmOFJYtsU5S+pSb6Y2EUeCEY3CmEL3mmQ8YWlPOzQomabA==} - engines: {node: '>=6.4.0'} + resolution: + { + integrity: sha512-EMCG6G8gDu5qEqRQ3JjjPs6+FYT1a7Hv5ApHvtSghmOFJYtsU5S+pSb6Y2EUeCEY3CmEL3mmQ8YWlPOzQomabA==, + } + engines: { node: ">=6.4.0" } dependencies: methods: 1.1.2 superagent: 8.1.2 @@ -5271,69 +7301,96 @@ packages: dev: true /supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, + } + engines: { node: ">=4" } dependencies: has-flag: 3.0.0 dev: true /supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, + } + engines: { node: ">=8" } dependencies: has-flag: 4.0.0 /supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==, + } + engines: { node: ">=10" } dependencies: has-flag: 4.0.0 dev: true /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, + } + engines: { node: ">= 0.4" } dev: true /swagger-ui-dist@5.9.1: - resolution: {integrity: sha512-5zAx+hUwJb9T3EAntc7TqYkV716CMqG6sZpNlAAMOMWkNXRYxGkN8ADIvD55dQZ10LxN90ZM/TQmN7y1gpICnw==} + resolution: + { + integrity: sha512-5zAx+hUwJb9T3EAntc7TqYkV716CMqG6sZpNlAAMOMWkNXRYxGkN8ADIvD55dQZ10LxN90ZM/TQmN7y1gpICnw==, + } dev: false /symbol-observable@4.0.0: - resolution: {integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==} - engines: {node: '>=0.10'} + resolution: + { + integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==, + } + engines: { node: ">=0.10" } dev: true /synckit@0.8.5: - resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} - engines: {node: ^14.18.0 || >=16.0.0} + resolution: + { + integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==, + } + engines: { node: ^14.18.0 || >=16.0.0 } dependencies: - '@pkgr/utils': 2.4.2 + "@pkgr/utils": 2.4.2 tslib: 2.6.2 dev: true /tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, + } + engines: { node: ">=6" } dev: true /terser-webpack-plugin@5.3.9(webpack@5.89.0): - resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==} - engines: {node: '>= 10.13.0'} + resolution: + { + integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==, + } + engines: { node: ">= 10.13.0" } peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' + "@swc/core": "*" + esbuild: "*" + uglify-js: "*" webpack: ^5.1.0 peerDependenciesMeta: - '@swc/core': + "@swc/core": optional: true esbuild: optional: true uglify-js: optional: true dependencies: - '@jridgewell/trace-mapping': 0.3.20 + "@jridgewell/trace-mapping": 0.3.20 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.1 @@ -5342,117 +7399,165 @@ packages: dev: true /terser@5.24.0: - resolution: {integrity: sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==, + } + engines: { node: ">=10" } hasBin: true dependencies: - '@jridgewell/source-map': 0.3.5 + "@jridgewell/source-map": 0.3.5 acorn: 8.11.2 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==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==, + } + engines: { node: ">=8" } dependencies: - '@istanbuljs/schema': 0.1.3 + "@istanbuljs/schema": 0.1.3 glob: 7.2.3 minimatch: 3.1.2 dev: true /text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + resolution: + { + integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, + } dev: true /thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} + resolution: + { + integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==, + } + engines: { node: ">=0.8" } dependencies: thenify: 3.3.1 dev: false /thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + resolution: + { + integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==, + } dependencies: any-promise: 1.3.0 dev: false /through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + resolution: + { + integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, + } dev: true /titleize@3.0.0: - resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==, + } + engines: { node: ">=12" } dev: true /tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} + resolution: + { + integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==, + } + engines: { node: ">=0.6.0" } dependencies: os-tmpdir: 1.0.2 dev: true /tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + resolution: + { + integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==, + } dev: true /to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==, + } + engines: { node: ">=4" } dev: true /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + resolution: + { + integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, + } + engines: { node: ">=8.0" } dependencies: is-number: 7.0.0 dev: true /toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} + resolution: + { + integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==, + } + engines: { node: ">=0.6" } /tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + resolution: + { + integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==, + } /tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + resolution: + { + integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==, + } hasBin: true dev: true /ts-api-utils@1.0.3(typescript@5.2.2): - resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} - engines: {node: '>=16.13.0'} + resolution: + { + integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==, + } + engines: { node: ">=16.13.0" } peerDependencies: - typescript: '>=4.2.0' + typescript: ">=4.2.0" dependencies: typescript: 5.2.2 dev: true /ts-jest@29.1.1(@babel/core@7.23.3)(jest@29.7.0)(typescript@5.2.2): - resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + resolution: + { + integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } hasBin: true peerDependencies: - '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/types': ^29.0.0 + "@babel/core": ">=7.0.0-beta.0 <8" + "@jest/types": ^29.0.0 babel-jest: ^29.0.0 - esbuild: '*' + esbuild: "*" jest: ^29.0.0 - typescript: '>=4.3 <6' + typescript: ">=4.3 <6" peerDependenciesMeta: - '@babel/core': + "@babel/core": optional: true - '@jest/types': + "@jest/types": optional: true babel-jest: optional: true esbuild: optional: true dependencies: - '@babel/core': 7.23.3 + "@babel/core": 7.23.3 bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 jest: 29.7.0(@types/node@20.9.0)(ts-node@10.9.1) @@ -5466,10 +7571,13 @@ packages: dev: true /ts-loader@9.5.0(typescript@5.2.2)(webpack@5.89.0): - resolution: {integrity: sha512-LLlB/pkB4q9mW2yLdFMnK3dEHbrBjeZTYguaaIfusyojBgAGf5kF+O6KcWqiGzWqHk0LBsoolrp4VftEURhybg==} - engines: {node: '>=12.0.0'} + resolution: + { + integrity: sha512-LLlB/pkB4q9mW2yLdFMnK3dEHbrBjeZTYguaaIfusyojBgAGf5kF+O6KcWqiGzWqHk0LBsoolrp4VftEURhybg==, + } + engines: { node: ">=12.0.0" } peerDependencies: - typescript: '*' + typescript: "*" webpack: ^5.0.0 dependencies: chalk: 4.1.2 @@ -5482,25 +7590,28 @@ packages: dev: true /ts-node@10.9.1(@types/node@20.9.0)(typescript@5.2.2): - resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + resolution: + { + integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==, + } hasBin: true peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' + "@swc/core": ">=1.2.50" + "@swc/wasm": ">=1.2.50" + "@types/node": "*" + typescript: ">=2.7" peerDependenciesMeta: - '@swc/core': + "@swc/core": optional: true - '@swc/wasm': + "@swc/wasm": optional: true dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.9 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 20.9.0 + "@cspotcode/source-map-support": 0.8.1 + "@tsconfig/node10": 1.0.9 + "@tsconfig/node12": 1.0.11 + "@tsconfig/node14": 1.0.3 + "@tsconfig/node16": 1.0.4 + "@types/node": 20.9.0 acorn: 8.11.2 acorn-walk: 8.3.0 arg: 4.1.3 @@ -5512,8 +7623,11 @@ packages: yn: 3.1.1 /tsconfig-paths-webpack-plugin@4.1.0: - resolution: {integrity: sha512-xWFISjviPydmtmgeUAuXp4N1fky+VCtfhOkDUFIv5ea7p4wuTomI4QTrXvFBX2S4jZsmyTSrStQl+E+4w+RzxA==} - engines: {node: '>=10.13.0'} + resolution: + { + integrity: sha512-xWFISjviPydmtmgeUAuXp4N1fky+VCtfhOkDUFIv5ea7p4wuTomI4QTrXvFBX2S4jZsmyTSrStQl+E+4w+RzxA==, + } + engines: { node: ">=10.13.0" } dependencies: chalk: 4.1.2 enhanced-resolve: 5.15.0 @@ -5521,8 +7635,11 @@ packages: dev: true /tsconfig-paths@4.2.0: - resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==, + } + engines: { node: ">=6" } dependencies: json5: 2.2.3 minimist: 1.2.8 @@ -5530,47 +7647,71 @@ packages: dev: true /tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + resolution: + { + integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==, + } /type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, + } + engines: { node: ">= 0.8.0" } dependencies: prelude-ls: 1.2.1 dev: true /type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==, + } + engines: { node: ">=4" } dev: true /type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, + } + engines: { node: ">=10" } dev: true /type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} + 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==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==, + } + engines: { node: ">= 0.6" } dependencies: media-typer: 0.3.0 mime-types: 2.1.35 /typedarray@0.0.6: - resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + resolution: + { + integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==, + } /typeorm@0.3.17(pg@8.11.3)(ts-node@10.9.1): - resolution: {integrity: sha512-UDjUEwIQalO9tWw9O2A4GU+sT3oyoUXheHJy4ft+RFdnRdQctdQ34L9SqE2p7LdwzafHx1maxT+bqXON+Qnmig==} - engines: {node: '>= 12.9.0'} + resolution: + { + integrity: sha512-UDjUEwIQalO9tWw9O2A4GU+sT3oyoUXheHJy4ft+RFdnRdQctdQ34L9SqE2p7LdwzafHx1maxT+bqXON+Qnmig==, + } + engines: { node: ">= 12.9.0" } hasBin: true peerDependencies: - '@google-cloud/spanner': ^5.18.0 - '@sap/hana-client': ^2.12.25 + "@google-cloud/spanner": ^5.18.0 + "@sap/hana-client": ^2.12.25 better-sqlite3: ^7.1.2 || ^8.0.0 hdb-pool: ^0.1.6 ioredis: ^5.0.4 @@ -5587,9 +7728,9 @@ packages: ts-node: ^10.7.0 typeorm-aurora-data-api-driver: ^2.0.0 peerDependenciesMeta: - '@google-cloud/spanner': + "@google-cloud/spanner": optional: true - '@sap/hana-client': + "@sap/hana-client": optional: true better-sqlite3: optional: true @@ -5622,7 +7763,7 @@ packages: typeorm-aurora-data-api-driver: optional: true dependencies: - '@sqltools/formatter': 1.2.5 + "@sqltools/formatter": 1.2.5 app-root-path: 3.1.0 buffer: 6.0.3 chalk: 4.1.2 @@ -5644,38 +7785,59 @@ packages: dev: false /typescript@5.2.2: - resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} - engines: {node: '>=14.17'} + resolution: + { + integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==, + } + engines: { node: ">=14.17" } hasBin: true /uid@2.0.2: - resolution: {integrity: sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==, + } + engines: { node: ">=8" } dependencies: - '@lukeed/csprng': 1.1.0 + "@lukeed/csprng": 1.1.0 /undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + resolution: + { + integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==, + } /universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} + resolution: + { + integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==, + } + engines: { node: ">= 10.0.0" } dev: true /unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==, + } + engines: { node: ">= 0.8" } /untildify@4.0.0: - resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==, + } + engines: { node: ">=8" } dev: true /update-browserslist-db@1.0.13(browserslist@4.22.1): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + resolution: + { + integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==, + } hasBin: true peerDependencies: - browserslist: '>= 4.21.0' + browserslist: ">= 4.21.0" dependencies: browserslist: 4.22.1 escalade: 3.1.1 @@ -5683,87 +7845,129 @@ packages: dev: true /uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + resolution: + { + integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, + } dependencies: punycode: 2.3.1 dev: true /util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + resolution: + { + integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, + } /utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} + resolution: + { + integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==, + } + engines: { node: ">= 0.4.0" } /uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + resolution: + { + integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==, + } hasBin: true dev: false /v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + resolution: + { + integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==, + } /v8-to-istanbul@9.1.3: - resolution: {integrity: sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==} - engines: {node: '>=10.12.0'} + resolution: + { + integrity: sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==, + } + engines: { node: ">=10.12.0" } dependencies: - '@jridgewell/trace-mapping': 0.3.20 - '@types/istanbul-lib-coverage': 2.0.6 + "@jridgewell/trace-mapping": 0.3.20 + "@types/istanbul-lib-coverage": 2.0.6 convert-source-map: 2.0.0 dev: true /vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==, + } + engines: { node: ">= 0.8" } /walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + resolution: + { + integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==, + } dependencies: makeerror: 1.0.12 dev: true /watchpack@2.4.0: - resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} - engines: {node: '>=10.13.0'} + resolution: + { + integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==, + } + engines: { node: ">=10.13.0" } dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 dev: true /wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + 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==} + resolution: + { + integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==, + } /webpack-node-externals@3.0.0: - resolution: {integrity: sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==} - engines: {node: '>=6'} + 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'} + resolution: + { + integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==, + } + engines: { node: ">=10.13.0" } dev: true /webpack@5.89.0: - resolution: {integrity: sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==} - engines: {node: '>=10.13.0'} + resolution: + { + integrity: sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==, + } + engines: { node: ">=10.13.0" } hasBin: true peerDependencies: - webpack-cli: '*' + webpack-cli: "*" peerDependenciesMeta: webpack-cli: optional: true dependencies: - '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.5 - '@webassemblyjs/ast': 1.11.6 - '@webassemblyjs/wasm-edit': 1.11.6 - '@webassemblyjs/wasm-parser': 1.11.6 + "@types/eslint-scope": 3.7.7 + "@types/estree": 1.0.5 + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/wasm-edit": 1.11.6 + "@webassemblyjs/wasm-parser": 1.11.6 acorn: 8.11.2 acorn-import-assertions: 1.9.0(acorn@8.11.2) browserslist: 4.22.1 @@ -5784,35 +7988,47 @@ packages: watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: - - '@swc/core' + - "@swc/core" - esbuild - uglify-js dev: true /whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + resolution: + { + integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==, + } dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, + } + engines: { node: ">= 8" } hasBin: true dependencies: isexe: 2.0.0 dev: true /windows-release@4.0.0: - resolution: {integrity: sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==, + } + engines: { node: ">=10" } dependencies: execa: 4.1.0 dev: true /wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==, + } + engines: { node: ">=8" } dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 @@ -5820,16 +8036,22 @@ packages: dev: true /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, + } + engines: { node: ">=10" } dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 /wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==, + } + engines: { node: ">=12" } dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 @@ -5837,43 +8059,70 @@ packages: dev: true /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + resolution: + { + integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, + } /write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + resolution: + { + integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==, + } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } dependencies: imurmurhash: 0.1.4 signal-exit: 3.0.7 dev: true /xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} + resolution: + { + integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==, + } + engines: { node: ">=0.4" } /y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, + } + engines: { node: ">=10" } /yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + resolution: + { + integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, + } dev: true /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + resolution: + { + integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, + } /yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==, + } + engines: { node: ">=10" } dev: false /yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==, + } + engines: { node: ">=12" } /yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==, + } + engines: { node: ">=10" } dependencies: cliui: 7.0.4 escalade: 3.1.1 @@ -5885,8 +8134,11 @@ packages: dev: false /yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==, + } + engines: { node: ">=12" } dependencies: cliui: 8.0.1 escalade: 3.1.1 @@ -5897,10 +8149,16 @@ packages: yargs-parser: 21.1.1 /yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==, + } + engines: { node: ">=6" } /yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, + } + engines: { node: ">=10" } dev: true diff --git a/backend/src/app.controller.ts b/backend/src/app.controller.ts index ea73f2f..8a8675c 100644 --- a/backend/src/app.controller.ts +++ b/backend/src/app.controller.ts @@ -1,12 +1,12 @@ -import { Controller, Get } from '@nestjs/common'; -import { ApiOperation, ApiTags } from '@nestjs/swagger'; +import { Controller, Get } from "@nestjs/common"; +import { ApiOperation, ApiTags } from "@nestjs/swagger"; -@ApiTags('App') +@ApiTags("App") @Controller() export class AppController { - @ApiOperation({ description: 'check site availability' }) - @Get('ping') - pingpong() { - return 'pong'; - } + @ApiOperation({ description: "check site availability" }) + @Get("ping") + pingpong() { + return "pong"; + } } diff --git a/backend/src/app.module.ts b/backend/src/app.module.ts index 1a0cfbd..66b746e 100644 --- a/backend/src/app.module.ts +++ b/backend/src/app.module.ts @@ -1,36 +1,33 @@ -import { CacheModule } from '@nestjs/cache-manager'; -import { Module } from '@nestjs/common'; -import { TypeOrmModule, TypeOrmModuleOptions } from '@nestjs/typeorm'; -import { config } from 'config'; -import { RedisOptions } from 'config/redis-options'; -import { LibsModule } from 'libs/libs.module'; -import { AppController } from './app.controller'; -import { AdminModule } from './modules/admin/admin.module'; -import { AuthModule } from './modules/auth/auth.module'; -import { ImageModule } from './modules/image/image.module'; -import { AppInitService } from './modules/initialization/app.init.service'; -import { PostModule } from './modules/post/post.module'; -import { ProxyModule } from './modules/proxy/proxy.module'; -import { SettingsModule } from './modules/settings/settings.module'; -import { UserModule } from './modules/user/user.module'; +import { CacheModule } from "@nestjs/cache-manager"; +import { Module } from "@nestjs/common"; +import { TypeOrmModule, TypeOrmModuleOptions } from "@nestjs/typeorm"; +import { config } from "config"; +import { RedisOptions } from "config/redis-options"; +import { LibsModule } from "libs/libs.module"; +import { AppController } from "./app.controller"; +import { AdminModule } from "./modules/admin/admin.module"; +import { AuthModule } from "./modules/auth/auth.module"; +import { ImageModule } from "./modules/image/image.module"; +import { AppInitService } from "./modules/initialization/app.init.service"; +import { PostModule } from "./modules/post/post.module"; +import { ProxyModule } from "./modules/proxy/proxy.module"; +import { SettingsModule } from "./modules/settings/settings.module"; +import { UserModule } from "./modules/user/user.module"; @Module({ - imports: [ - AuthModule, - CacheModule.registerAsync(RedisOptions), - LibsModule, - PostModule, - AdminModule, - UserModule, - ImageModule, - ProxyModule, - SettingsModule, - TypeOrmModule.forRoot(config.database), - ], - controllers: [AppController], - providers: [ - AppInitService, - // { provide: APP_GUARD, useClass: AuthGuard }, // Если будет необходима авторизация - ], + imports: [ + AuthModule, + CacheModule.registerAsync(RedisOptions), + LibsModule, + PostModule, + AdminModule, + UserModule, + ImageModule, + ProxyModule, + SettingsModule, + TypeOrmModule.forRoot(config.database), + ], + controllers: [AppController], + providers: [AppInitService], }) export class AppModule {} diff --git a/backend/src/main.ts b/backend/src/main.ts index 282ef4d..14af778 100644 --- a/backend/src/main.ts +++ b/backend/src/main.ts @@ -1,14 +1,16 @@ -import { Logger } from '@nestjs/common'; -import { NestFactory } from '@nestjs/core'; -import { config } from 'config'; -import { AppModule } from './app.module'; -import { swagger } from './swagger'; +import { Logger } from "@nestjs/common"; +import { NestFactory } from "@nestjs/core"; +import { config } from "config"; +import { AppModule } from "./app.module"; +import { swagger } from "./swagger"; async function bootstrap() { - const app = await NestFactory.create(AppModule, { - logger: ['log', 'debug', 'error', 'warn', 'verbose'], - }); - swagger(app); - await app.listen(config.server.port, () => Logger.log(`Server started on port ${config.server.port}`)); + const app = await NestFactory.create(AppModule, { + logger: ["log", "debug", "error", "warn", "verbose"], + }); + swagger(app); + await app.listen(config.server.port, () => + Logger.log(`Server started on port ${config.server.port}`), + ); } bootstrap(); diff --git a/backend/src/modules/admin/admin.controller.ts b/backend/src/modules/admin/admin.controller.ts index cadecba..994792c 100644 --- a/backend/src/modules/admin/admin.controller.ts +++ b/backend/src/modules/admin/admin.controller.ts @@ -1,26 +1,26 @@ -import { CacheInterceptor, CacheKey, CacheTTL } from '@nestjs/cache-manager'; -import { Controller, Get, Param, UseInterceptors } from '@nestjs/common'; -import { ApiOperation, ApiTags } from '@nestjs/swagger'; -import { AdminService } from './admin.service'; +import { CacheInterceptor, CacheKey, CacheTTL } from "@nestjs/cache-manager"; +import { Controller, Get, Param, UseInterceptors } from "@nestjs/common"; +import { ApiOperation, ApiTags } from "@nestjs/swagger"; +import { AdminService } from "./admin.service"; -@ApiTags('Admin') -@Controller('admin') +@ApiTags("Admin") +@Controller("admin") export class AdminController { - constructor(private adminService: AdminService) {} + constructor(private adminService: AdminService) {} - @ApiOperation({ - description: 'Get admins from db', - }) - @CacheKey('admins') - @CacheTTL({ ttl: 5 } as any) - @UseInterceptors(CacheInterceptor) - @Get('get') - async getAdmin() { - return await this.adminService.getAdmins(); - } - @ApiOperation({ description: 'Check admin is or not' }) - @Get('is-admin/:id') - async isAdmin(@Param('id') id: string) { - return await this.adminService.checkIsAdmin(id); - } + @ApiOperation({ + description: "Get admins from db", + }) + @CacheKey("admins") + @CacheTTL({ ttl: 5 } as any) + @UseInterceptors(CacheInterceptor) + @Get("get") + async getAdmin() { + return await this.adminService.getAdmins(); + } + @ApiOperation({ description: "Check admin is or not" }) + @Get("is-admin/:id") + async isAdmin(@Param("id") id: string) { + return await this.adminService.checkIsAdmin(id); + } } diff --git a/backend/src/modules/admin/admin.module.ts b/backend/src/modules/admin/admin.module.ts index 44faa1e..93b45c7 100644 --- a/backend/src/modules/admin/admin.module.ts +++ b/backend/src/modules/admin/admin.module.ts @@ -1,11 +1,11 @@ -import { Module } from '@nestjs/common'; -import { LibsModule } from 'libs/libs.module'; -import { AdminController } from './admin.controller'; -import { AdminService } from './admin.service'; +import { Module } from "@nestjs/common"; +import { LibsModule } from "libs/libs.module"; +import { AdminController } from "./admin.controller"; +import { AdminService } from "./admin.service"; @Module({ - imports: [LibsModule], - controllers: [AdminController], - providers: [AdminService], + imports: [LibsModule], + controllers: [AdminController], + providers: [AdminService], }) export class AdminModule {} diff --git a/backend/src/modules/admin/admin.service.ts b/backend/src/modules/admin/admin.service.ts index b365390..aad1676 100644 --- a/backend/src/modules/admin/admin.service.ts +++ b/backend/src/modules/admin/admin.service.ts @@ -1,49 +1,52 @@ -import { CACHE_MANAGER } from '@nestjs/cache-manager'; -import { Inject, Injectable, Logger } from '@nestjs/common'; -import { InjectRepository } from '@nestjs/typeorm'; -import { Cache } from 'cache-manager'; -import { Admin } from 'libs/database/admin.entity'; -import { Repository } from 'typeorm'; +import { CACHE_MANAGER } from "@nestjs/cache-manager"; +import { Inject, Injectable, Logger } from "@nestjs/common"; +import { InjectRepository } from "@nestjs/typeorm"; +import { Cache } from "cache-manager"; +import { Admin } from "libs/database/admin.entity"; +import { Repository } from "typeorm"; @Injectable() export class AdminService { - private readonly logger: Logger = new Logger(AdminService.name); - constructor( - @InjectRepository(Admin) private adminRepository: Repository, - @Inject(CACHE_MANAGER) private cacheManager: Cache, - ) {} + private readonly logger: Logger = new Logger(AdminService.name); + constructor( + @InjectRepository(Admin) private adminRepository: Repository, + @Inject(CACHE_MANAGER) private cacheManager: Cache, + ) {} - async getAdmins() { - try { - this.logger.debug(`[admin.getAdmins]`); - const admins = await this.adminRepository.find({ relations: { user: true }, select: { user_id: true, user: { user_name: true } } }); - const result: { user_id: string; user_name: string }[] = admins.map((admin) => ({ - user_id: admin.user_id, - user_name: admin.user.user_name, - })); - return result; - } catch (error) { - this.logger.log(`[getAdmin] ${error}`); - return []; - } + async getAdmins() { + try { + this.logger.debug(`[admin.getAdmins]`); + const admins = await this.adminRepository.find({ + relations: { user: true }, + select: { user_id: true, user: { user_name: true } }, + }); + const result: { user_id: string; user_name: string }[] = admins.map((admin) => ({ + user_id: admin.user_id, + user_name: admin.user.user_name, + })); + return result; + } catch (error) { + this.logger.log(`[getAdmin] ${error}`); + return []; } - async checkIsAdmin(id: string) { - try { - this.logger.debug(`[admin.checkIsAdmin]`); - const is_admin = await this.cacheManager.get(`admin_${id}`); - if (is_admin) return is_admin; - const admins = await this.adminRepository.findOne({ - relations: { user: true }, - where: { user: { id: id } }, - }); - if (!admins) { - await this.cacheManager.set(`admin_${id}`, false, { ttl: 10 } as any); - return false; - } - await this.cacheManager.set(`admin_${id}`, true, { ttl: 10 } as any); - return true; - } catch (error) { - this.logger.debug(`[checkIsAdmin] ${JSON.stringify({ error })}`); - return false; - } + } + async checkIsAdmin(id: string) { + try { + this.logger.debug(`[admin.checkIsAdmin]`); + const is_admin = await this.cacheManager.get(`admin_${id}`); + if (is_admin) return is_admin; + const admins = await this.adminRepository.findOne({ + relations: { user: true }, + where: { user: { id: id } }, + }); + if (!admins) { + await this.cacheManager.set(`admin_${id}`, false, { ttl: 10 } as any); + return false; + } + await this.cacheManager.set(`admin_${id}`, true, { ttl: 10 } as any); + return true; + } catch (error) { + this.logger.debug(`[checkIsAdmin] ${JSON.stringify({ error })}`); + return false; } + } } diff --git a/backend/src/modules/auth/auth.controller.ts b/backend/src/modules/auth/auth.controller.ts index 34c3b89..4e5d328 100644 --- a/backend/src/modules/auth/auth.controller.ts +++ b/backend/src/modules/auth/auth.controller.ts @@ -30,7 +30,6 @@ export class AuthController { @ApiOperation({ description: "Register into system", }) - @HttpCode(HttpStatus.CREATED) @Post("register") register(@Body() signInDto: LoginDto) { return this.authService.register(signInDto.username, signInDto.password); diff --git a/backend/src/modules/auth/auth.guard.ts b/backend/src/modules/auth/auth.guard.ts index cb551c9..cdbee49 100644 --- a/backend/src/modules/auth/auth.guard.ts +++ b/backend/src/modules/auth/auth.guard.ts @@ -2,30 +2,3 @@ import { Injectable } from "@nestjs/common"; import { AuthGuard } from "@nestjs/passport"; @Injectable() export class JwtGuard extends AuthGuard("jwt") {} -// export class AuthGuard implements CanActivate { -// constructor(private jwtService: JwtService) {} - -// async canActivate(context: ExecutionContext): Promise { -// const request = context.switchToHttp().getRequest(); -// const token = this.extractTokenFromHeader(request); -// if (!token) { -// throw new UnauthorizedException(); -// } -// try { -// const payload = await this.jwtService.verifyAsync(token, { -// secret: config.auth.jwt_secret, -// }); - -// request["user"] = payload; -// } catch { -// throw new UnauthorizedException(); -// } - -// return true; -// } - -// private extractTokenFromHeader(request: Request): string | undefined { -// const [type, token] = request.headers.authorization.split(" ") ?? []; -// return type === "Bearer" ? token : undefined; -// } -// } diff --git a/backend/src/modules/auth/auth.service.ts b/backend/src/modules/auth/auth.service.ts index 2a35d64..949b6d2 100644 --- a/backend/src/modules/auth/auth.service.ts +++ b/backend/src/modules/auth/auth.service.ts @@ -1,7 +1,7 @@ -import { Injectable, Logger, UnauthorizedException } from "@nestjs/common"; +import { ImATeapotException, Injectable, Logger, UnauthorizedException } from "@nestjs/common"; import { JwtService } from "@nestjs/jwt"; import { InjectRepository } from "@nestjs/typeorm"; -import * as bcrypt from "bcrypt"; +import * as bcrypt from "bcryptjs"; import { WebUser } from "libs/database/web_user.entity"; import { Repository } from "typeorm"; @@ -35,6 +35,7 @@ export class AuthService { } async register(username: string, password: string): Promise<{ access_token: string }> { + if (1) throw new ImATeapotException(); const user = await this.userRepository.findOne({ where: { login: username } }); if (user) throw new UnauthorizedException("User already exists"); const salt = await bcrypt.genSalt(); diff --git a/backend/src/modules/image/image.controller.ts b/backend/src/modules/image/image.controller.ts index d83fbb4..c79fb13 100644 --- a/backend/src/modules/image/image.controller.ts +++ b/backend/src/modules/image/image.controller.ts @@ -1,16 +1,16 @@ -import { Body, Controller, Post } from '@nestjs/common'; -import { ApiOperation, ApiTags } from '@nestjs/swagger'; -import { IAddImage } from './image.dto'; -import { ImageService } from './image.service'; +import { Body, Controller, Post } from "@nestjs/common"; +import { ApiOperation, ApiTags } from "@nestjs/swagger"; +import { IAddImage } from "./image.dto"; +import { ImageService } from "./image.service"; -@ApiTags('Image') -@Controller('image') +@ApiTags("Image") +@Controller("image") export class ImageController { - constructor(private imageService: ImageService) {} + constructor(private imageService: ImageService) {} - @ApiOperation({ description: 'A method to add photo to post' }) - @Post('add') - async addImage(@Body() data: IAddImage) { - return await this.imageService.add(data); - } + @ApiOperation({ description: "A method to add photo to post" }) + @Post("add") + async addImage(@Body() data: IAddImage) { + return await this.imageService.add(data); + } } diff --git a/backend/src/modules/image/image.dto.ts b/backend/src/modules/image/image.dto.ts index 2d2a35a..0fd282e 100644 --- a/backend/src/modules/image/image.dto.ts +++ b/backend/src/modules/image/image.dto.ts @@ -1,12 +1,23 @@ -import { ApiProperty } from '@nestjs/swagger'; +import { ApiProperty } from "@nestjs/swagger"; export class IAddImage { - // @ApiProperty({ description: 'A post that contains this photo', example: '1212-4324-asdf-23432' }) readonly post_id!: string; - @ApiProperty({ description: 'A telegram file id of photo', example: '1214244' }) readonly file_id!: string; - @ApiProperty({ description: 'Has image the spoiler?', example: false }) readonly has_spoiler!: boolean; - @ApiProperty({ description: 'A photo message id', example: '123124' }) readonly message_id!: number; - @ApiProperty({ description: 'Post text', example: '#neurowaifu', required: false }) readonly post_text?: string; - @ApiProperty({ description: 'A media group id of the photo', example: '1241244', required: false }) readonly media_group_id?: string; - @ApiProperty({ description: 'Message entities of text', example: '[]' }) readonly message_entities?: string; - @ApiProperty({ description: 'The id of user that creating post', example: '1234' }) readonly from_user_id!: string; + // @ApiProperty({ description: 'A post that contains this photo', example: '1212-4324-asdf-23432' }) readonly post_id!: string; + @ApiProperty({ description: "A telegram file id of photo", example: "1214244" }) + readonly file_id!: string; + @ApiProperty({ description: "Has image the spoiler?", example: false }) + readonly has_spoiler!: boolean; + @ApiProperty({ description: "A photo message id", example: "123124" }) + readonly message_id!: number; + @ApiProperty({ description: "Post text", example: "#neurowaifu", required: false }) + readonly post_text?: string; + @ApiProperty({ + description: "A media group id of the photo", + example: "1241244", + required: false, + }) + readonly media_group_id?: string; + @ApiProperty({ description: "Message entities of text", example: "[]" }) + readonly message_entities?: string; + @ApiProperty({ description: "The id of user that creating post", example: "1234" }) + readonly from_user_id!: string; } diff --git a/backend/src/modules/image/image.module.ts b/backend/src/modules/image/image.module.ts index 2c8c6c1..74d61a5 100644 --- a/backend/src/modules/image/image.module.ts +++ b/backend/src/modules/image/image.module.ts @@ -1,11 +1,11 @@ -import { Module } from '@nestjs/common'; -import { LibsModule } from 'libs/libs.module'; -import { ImageController } from './image.controller'; -import { ImageService } from './image.service'; +import { Module } from "@nestjs/common"; +import { LibsModule } from "libs/libs.module"; +import { ImageController } from "./image.controller"; +import { ImageService } from "./image.service"; @Module({ - imports: [LibsModule], - controllers: [ImageController], - providers: [ImageService], + imports: [LibsModule], + controllers: [ImageController], + providers: [ImageService], }) export class ImageModule {} diff --git a/backend/src/modules/image/image.service.ts b/backend/src/modules/image/image.service.ts index 10e01f0..5effec0 100644 --- a/backend/src/modules/image/image.service.ts +++ b/backend/src/modules/image/image.service.ts @@ -1,70 +1,78 @@ -import { HttpException, HttpStatus, Injectable, Logger } from '@nestjs/common'; -import { Admin } from 'libs/database/admin.entity'; -import { Image } from 'libs/database/image.entity'; -import { Post } from 'libs/database/post.entity'; -import { DataSource, EntityManager } from 'typeorm'; -import { IAddImage } from './image.dto'; +import { HttpException, HttpStatus, Injectable, Logger } from "@nestjs/common"; +import { Admin } from "libs/database/admin.entity"; +import { Image } from "libs/database/image.entity"; +import { Post } from "libs/database/post.entity"; +import { DataSource, EntityManager } from "typeorm"; +import { IAddImage } from "./image.dto"; @Injectable() export class ImageService { - private readonly logger: Logger = new Logger(ImageService.name); - constructor(private dataSource: DataSource) {} + private readonly logger: Logger = new Logger(ImageService.name); + constructor(private dataSource: DataSource) {} - async add(data: IAddImage) { - try { - let created_new = false; - await this.dataSource.transaction(async (manager: EntityManager) => { - this.logger.log(`[image.add] data: ${JSON.stringify(data)}`); - if (data.media_group_id) { - let post = await manager.findOne(Post, { where: { media_group_id: data.media_group_id } }); - if (post) { - await manager.save(Image, { - post: post, - file_id: data.file_id, - has_spoiler: data.has_spoiler, - message_id: data.message_id, - }); - if (data.post_text) { - post.text = data.post_text; - post.message_entities = data.message_entities; - post = await manager.save(Post, post); - } - } else { - const user = await manager.findOne(Admin, { where: { user: { id: data.from_user_id } }, relations: { user: true } }); - post = await manager.save(Post, { - media_group_id: data.media_group_id, - text: data.post_text, - message_entities: data.message_entities, - timestamp: new Date(), - from_user: user, - }); - created_new = true; - await manager.save(Image, { - post: post, - file_id: data.file_id, - has_spoiler: data.has_spoiler, - message_id: data.message_id, - }); - } - } else { - const user = await manager.findOne(Admin, { where: { user: { id: data.from_user_id } }, relations: { user: true } }); - const post = await manager.save(Post, { - text: data.post_text, - message_entities: data.message_entities, - timestamp: new Date(), - from_user: user, - }); - await manager.save(Image, { - post: post, - file_id: data.file_id, - has_spoiler: data.has_spoiler, - message_id: data.message_id, - }); - } + async add(data: IAddImage) { + try { + let created_new = false; + await this.dataSource.transaction(async (manager: EntityManager) => { + this.logger.log(`[image.add] data: ${JSON.stringify(data)}`); + if (data.media_group_id) { + let post = await manager.findOne(Post, { + where: { media_group_id: data.media_group_id }, + }); + if (post) { + await manager.save(Image, { + post: post, + file_id: data.file_id, + has_spoiler: data.has_spoiler, + message_id: data.message_id, }); - return { status: 'ok', created: created_new }; - } catch (error) { - this.logger.debug(`[image.add] error: ${JSON.stringify(error)}`); - throw new HttpException('No posts', HttpStatus.BAD_REQUEST); + if (data.post_text) { + post.text = data.post_text; + post.message_entities = data.message_entities; + post = await manager.save(Post, post); + } + } else { + const user = await manager.findOne(Admin, { + where: { user: { id: data.from_user_id } }, + relations: { user: true }, + }); + post = await manager.save(Post, { + media_group_id: data.media_group_id, + text: data.post_text, + message_entities: data.message_entities, + timestamp: new Date(), + from_user: user, + }); + created_new = true; + await manager.save(Image, { + post: post, + file_id: data.file_id, + has_spoiler: data.has_spoiler, + message_id: data.message_id, + }); + } + } else { + const user = await manager.findOne(Admin, { + where: { user: { id: data.from_user_id } }, + relations: { user: true }, + }); + const post = await manager.save(Post, { + text: data.post_text, + message_entities: data.message_entities, + timestamp: new Date(), + from_user: user, + }); + await manager.save(Image, { + post: post, + file_id: data.file_id, + has_spoiler: data.has_spoiler, + message_id: data.message_id, + }); } + }); + return { status: "ok", created: created_new }; + } catch (error) { + this.logger.debug(`[image.add] error: ${JSON.stringify(error)}`); + throw new HttpException("No posts", HttpStatus.BAD_REQUEST); } + } } diff --git a/backend/src/modules/initialization/app.init.service.ts b/backend/src/modules/initialization/app.init.service.ts index d03df83..22c7a6c 100644 --- a/backend/src/modules/initialization/app.init.service.ts +++ b/backend/src/modules/initialization/app.init.service.ts @@ -1,21 +1,23 @@ -import { Injectable, OnModuleInit } from '@nestjs/common'; -import { InjectRepository } from '@nestjs/typeorm'; -import { Admin } from 'libs/database/admin.entity'; -import { Image } from 'libs/database/image.entity'; -import { Post } from 'libs/database/post.entity'; -import { BotSettings } from 'libs/database/settings.entity'; -import { User } from 'libs/database/user.entity'; -import { Repository } from 'typeorm'; +import { Injectable, OnModuleInit } from "@nestjs/common"; +import { InjectRepository } from "@nestjs/typeorm"; +import { Admin } from "libs/database/admin.entity"; +import { Image } from "libs/database/image.entity"; +import { Post } from "libs/database/post.entity"; +import { BotSettings } from "libs/database/settings.entity"; +import { User } from "libs/database/user.entity"; +import { WebUser } from "libs/database/web_user.entity"; +import { Repository } from "typeorm"; @Injectable() export class AppInitService implements OnModuleInit { - constructor( - @InjectRepository(User) private userRepository: Repository, - @InjectRepository(Admin) private adminRepository: Repository, - @InjectRepository(Post) private postRepository: Repository, - @InjectRepository(Image) private ImageRepository: Repository, - @InjectRepository(BotSettings) private BotSettingsRepository: Repository, - ) {} + constructor( + @InjectRepository(User) private userRepository: Repository, + @InjectRepository(Admin) private adminRepository: Repository, + @InjectRepository(Post) private postRepository: Repository, + @InjectRepository(Image) private ImageRepository: Repository, + @InjectRepository(BotSettings) private BotSettingsRepository: Repository, + @InjectRepository(WebUser) private WebUserRepository: Repository, + ) {} - async onModuleInit() {} + async onModuleInit() {} } diff --git a/backend/src/modules/post/post.controller.ts b/backend/src/modules/post/post.controller.ts index 39f1e54..230ae22 100644 --- a/backend/src/modules/post/post.controller.ts +++ b/backend/src/modules/post/post.controller.ts @@ -1,78 +1,78 @@ -import { Body, Controller, Delete, Get, Param, Post, Put } from '@nestjs/common'; -import { ApiOperation, ApiParam, ApiTags } from '@nestjs/swagger'; -import { EGetAll } from 'libs/enums/getAll.enum'; -import { ICreatePost, IEditPost } from './post.dto'; -import { PostService } from './post.service'; +import { Body, Controller, Delete, Get, Param, Post, Put } from "@nestjs/common"; +import { ApiOperation, ApiParam, ApiTags } from "@nestjs/swagger"; +import { EGetAll } from "libs/enums/getAll.enum"; +import { ICreatePost, IEditPost } from "./post.dto"; +import { PostService } from "./post.service"; -@ApiTags('Post') -@Controller('post') +@ApiTags("Post") +@Controller("post") export class PostController { - constructor(private postService: PostService) {} + constructor(private postService: PostService) {} - @ApiOperation({ description: 'Creates a new post' }) - @Post('new') - async newPost(@Body() data: ICreatePost) { - return await this.postService.newPost(data); - } + @ApiOperation({ description: "Creates a new post" }) + @Post("new") + async newPost(@Body() data: ICreatePost) { + return await this.postService.newPost(data); + } - @ApiOperation({ description: 'Getting all posts. By default - all' }) - @Get('get-all/:status') - @ApiParam({ name: 'status', required: false, enum: EGetAll }) - async getAllPosts(@Param('status') status?: EGetAll) { - return await this.postService.getAllPosts(status || EGetAll.all); - } + @ApiOperation({ description: "Getting all posts. By default - all" }) + @Get("get-all/:status") + @ApiParam({ name: "status", required: false, enum: EGetAll }) + async getAllPosts(@Param("status") status?: EGetAll) { + return await this.postService.getAllPosts(status || EGetAll.all); + } - @ApiOperation({ description: 'Getting a post by uuid' }) - @Get('get/:postId') - async getPost(@Param('postId') postId: string) { - return await this.postService.getPost(postId); - } + @ApiOperation({ description: "Getting a post by uuid" }) + @Get("get/:postId") + async getPost(@Param("postId") postId: string) { + return await this.postService.getPost(postId); + } - @ApiOperation({ description: 'Getting a post by its media group id' }) - @Get('get-by-media-group-id/:mediaGroupId') - async getByMediaGroup(@Param('mediaGroupId') mediaGroupId: string) { - return await this.postService.getByMediaGroup(mediaGroupId); - } + @ApiOperation({ description: "Getting a post by its media group id" }) + @Get("get-by-media-group-id/:mediaGroupId") + async getByMediaGroup(@Param("mediaGroupId") mediaGroupId: string) { + return await this.postService.getByMediaGroup(mediaGroupId); + } - @ApiOperation({ description: 'Editing a post by its uuid' }) - @Post('edit/:postId') - async editPost(@Param('postId') postId: string, @Body() data: IEditPost) { - return await this.postService.editPost(postId, data); - } + @ApiOperation({ description: "Editing a post by its uuid" }) + @Post("edit/:postId") + async editPost(@Param("postId") postId: string, @Body() data: IEditPost) { + return await this.postService.editPost(postId, data); + } - @ApiOperation({ description: 'Editing post text by its order num' }) - @Post('edit-post-by-order-num/:order') - async editPostByOrderNum(@Param('order') order: string, @Body() data: IEditPost) { - return await this.postService.editPostByOrderNum(order, data); - } + @ApiOperation({ description: "Editing post text by its order num" }) + @Post("edit-post-by-order-num/:order") + async editPostByOrderNum(@Param("order") order: string, @Body() data: IEditPost) { + return await this.postService.editPostByOrderNum(order, data); + } - @ApiOperation({ description: 'Get post to post' }) - @Get('post') - async post() { - return await this.postService.post(); - } + @ApiOperation({ description: "Get post to post" }) + @Get("post") + async post() { + return await this.postService.post(); + } - @ApiOperation({ description: 'Get post by order' }) - @Get('get-post-by-order/:order') - async getPostByOrder(@Param('order') order: number) { - return await this.postService.getPostByOrder(order); - } + @ApiOperation({ description: "Get post by order" }) + @Get("get-post-by-order/:order") + async getPostByOrder(@Param("order") order: number) { + return await this.postService.getPostByOrder(order); + } - @ApiOperation({ description: 'Delete post by order' }) - @Delete('delete-post-by-order/:order') - async deletePostByOrder(@Param('order') order: number) { - return await this.postService.deletePostByOrder(order); - } + @ApiOperation({ description: "Delete post by order" }) + @Delete("delete-post-by-order/:order") + async deletePostByOrder(@Param("order") order: number) { + return await this.postService.deletePostByOrder(order); + } - @ApiOperation({ description: 'Get deleted posts' }) - @Get('get-deleted') - async getDeletedPosts() { - return await this.postService.getDeletedPosts(); - } + @ApiOperation({ description: "Get deleted posts" }) + @Get("get-deleted") + async getDeletedPosts() { + return await this.postService.getDeletedPosts(); + } - @ApiOperation({ description: 'Restore post by order' }) - @Put('restore-post-by-order/:order') - async restorePostByOrder(@Param('order') order: string) { - return await this.postService.restorePostByOrder(order); - } + @ApiOperation({ description: "Restore post by order" }) + @Put("restore-post-by-order/:order") + async restorePostByOrder(@Param("order") order: string) { + return await this.postService.restorePostByOrder(order); + } } diff --git a/backend/src/modules/post/post.dto.ts b/backend/src/modules/post/post.dto.ts index af1a719..8a78a66 100644 --- a/backend/src/modules/post/post.dto.ts +++ b/backend/src/modules/post/post.dto.ts @@ -1,17 +1,21 @@ -import { ApiProperty } from '@nestjs/swagger'; +import { ApiProperty } from "@nestjs/swagger"; export class ICreatePost { - @ApiProperty({ description: 'Post text', example: 'Post text' }) readonly text!: string; + @ApiProperty({ description: "Post text", example: "Post text" }) readonly text!: string; - @ApiProperty({ description: 'The id of user that creating post', example: '1234' }) readonly from_user_id!: string; + @ApiProperty({ description: "The id of user that creating post", example: "1234" }) + readonly from_user_id!: string; - @ApiProperty({ description: 'Post media group id', example: '123' }) readonly media_group_id?: string; + @ApiProperty({ description: "Post media group id", example: "123" }) + readonly media_group_id?: string; - @ApiProperty({ description: 'Message entities of text', example: '[]' }) readonly message_entities?: string; + @ApiProperty({ description: "Message entities of text", example: "[]" }) + readonly message_entities?: string; } export class IEditPost { - @ApiProperty({ description: 'Post text', example: 'Post text' }) readonly text!: string; + @ApiProperty({ description: "Post text", example: "Post text" }) readonly text!: string; - @ApiProperty({ description: 'Message entities of text', example: '[]' }) readonly message_entities?: string; + @ApiProperty({ description: "Message entities of text", example: "[]" }) + readonly message_entities?: string; } diff --git a/backend/src/modules/post/post.module.ts b/backend/src/modules/post/post.module.ts index 9cabfe0..f2eec0c 100644 --- a/backend/src/modules/post/post.module.ts +++ b/backend/src/modules/post/post.module.ts @@ -1,11 +1,11 @@ -import { Module } from '@nestjs/common'; -import { LibsModule } from 'libs/libs.module'; -import { PostController } from './post.controller'; -import { PostService } from './post.service'; +import { Module } from "@nestjs/common"; +import { LibsModule } from "libs/libs.module"; +import { PostController } from "./post.controller"; +import { PostService } from "./post.service"; @Module({ - imports: [LibsModule], - controllers: [PostController], - providers: [PostService], + imports: [LibsModule], + controllers: [PostController], + providers: [PostService], }) export class PostModule {} diff --git a/backend/src/modules/post/post.service.ts b/backend/src/modules/post/post.service.ts index e2a54c0..499803a 100644 --- a/backend/src/modules/post/post.service.ts +++ b/backend/src/modules/post/post.service.ts @@ -1,223 +1,255 @@ -import { HttpException, HttpStatus, Inject, Injectable, Logger } from '@nestjs/common'; -import { InjectRepository } from '@nestjs/typeorm'; -import { Admin } from 'libs/database/admin.entity'; -import { Post } from 'libs/database/post.entity'; -import { EGetAll } from 'libs/enums/getAll.enum'; -import { DataSource, EntityManager, Repository } from 'typeorm'; -import { ICreatePost, IEditPost } from './post.dto'; +import { HttpException, HttpStatus, Inject, Injectable, Logger } from "@nestjs/common"; +import { InjectRepository } from "@nestjs/typeorm"; +import { Admin } from "libs/database/admin.entity"; +import { Post } from "libs/database/post.entity"; +import { EGetAll } from "libs/enums/getAll.enum"; +import { DataSource, EntityManager, Repository } from "typeorm"; +import { ICreatePost, IEditPost } from "./post.dto"; @Injectable() export class PostService { - private readonly logger: Logger = new Logger(PostService.name); - constructor( - @InjectRepository(Post) private postRepository: Repository, - @InjectRepository(Admin) private adminRepository: Repository, - @Inject(DataSource) private dataSource: DataSource, - ) {} + private readonly logger: Logger = new Logger(PostService.name); + constructor( + @InjectRepository(Post) private postRepository: Repository, + @InjectRepository(Admin) private adminRepository: Repository, + @Inject(DataSource) private dataSource: DataSource, + ) {} - async newPost(data: ICreatePost) { - try { - this.logger.log(`[post.newPost] data: ${JSON.stringify(data)}`); - let result: Post = null; - const user = await this.adminRepository.findOne({ where: { user: { id: data.from_user_id } }, relations: { user: true } }); - await this.dataSource.transaction(async (manager: EntityManager) => { - result = await manager.save(Post, { - text: data.text, - media_group_id: data.media_group_id, - from_user: user, - timestamp: new Date(), - message_entities: data.message_entities, - }); - }); - this.logger.log(`Created new post: ${result.uuid}`); - return result; - } catch (error) { - this.logger.debug(`[post.newPost] error: ${error}`); - throw new HttpException('No user with this id', HttpStatus.BAD_REQUEST); - } + async newPost(data: ICreatePost) { + try { + this.logger.log(`[post.newPost] data: ${JSON.stringify(data)}`); + let result: Post = null; + const user = await this.adminRepository.findOne({ + where: { user: { id: data.from_user_id } }, + relations: { user: true }, + }); + await this.dataSource.transaction(async (manager: EntityManager) => { + result = await manager.save(Post, { + text: data.text, + media_group_id: data.media_group_id, + from_user: user, + timestamp: new Date(), + message_entities: data.message_entities, + }); + }); + this.logger.log(`Created new post: ${result.uuid}`); + return result; + } catch (error) { + this.logger.debug(`[post.newPost] error: ${error}`); + throw new HttpException("No user with this id", HttpStatus.BAD_REQUEST); } + } - async editPost(postId: string, data: IEditPost) { - try { - this.logger.log(`[post.editPost] data: ${JSON.stringify(data)}`); - const post = await this.postRepository.findOne({ where: { uuid: postId } }); - if (!post) { - throw new HttpException('Post not found', HttpStatus.NOT_FOUND); - } - if (post.text !== data.text) { - post.text = data.text; - post.edit_timestamp = new Date(); - await this.postRepository.save(post); - } - return post; - } catch (error) { - this.logger.debug(`[post.editPost] error: ${JSON.stringify(error)}`); - throw new HttpException('Post not found', HttpStatus.NOT_FOUND); - } + async editPost(postId: string, data: IEditPost) { + try { + this.logger.log(`[post.editPost] data: ${JSON.stringify(data)}`); + const post = await this.postRepository.findOne({ where: { uuid: postId } }); + if (!post) { + throw new HttpException("Post not found", HttpStatus.NOT_FOUND); + } + if (post.text !== data.text) { + post.text = data.text; + post.edit_timestamp = new Date(); + await this.postRepository.save(post); + } + return post; + } catch (error) { + this.logger.debug(`[post.editPost] error: ${JSON.stringify(error)}`); + throw new HttpException("Post not found", HttpStatus.NOT_FOUND); } + } - async editPostByOrderNum(order: string, data: IEditPost) { - try { - this.logger.log(`[post.editPostByOrderNum] data: ${JSON.stringify(data)}`); - const posts = await this.postRepository.find({ where: { posted: false, deleted: false }, order: { timestamp: 'ASC' } }); - if (Math.abs(+order) > posts.length) { - throw new HttpException('There are only ' + posts.length + ' unsent messages.', HttpStatus.BAD_REQUEST); - } - const post = posts[Math.abs(+order) - 1]; - if (post.text !== data.text || post.message_entities !== data.message_entities) { - post.text = data.text; - post.message_entities = data.message_entities; - post.edit_timestamp = new Date(); - await this.postRepository.save(post); - } - return post; - } catch (error) { - if (error instanceof HttpException) { - this.logger.debug(`[post.editPostByOrderNum] Order: ${order} is bad`); - throw error; - } - this.logger.debug(`[post.editPostByOrderNum] Bad data. Order: ${order}. Data: ${JSON.stringify(data)}`); - throw new HttpException('Server error', HttpStatus.BAD_GATEWAY); - } + async editPostByOrderNum(order: string, data: IEditPost) { + try { + this.logger.log(`[post.editPostByOrderNum] data: ${JSON.stringify(data)}`); + const posts = await this.postRepository.find({ + where: { posted: false, deleted: false }, + order: { timestamp: "ASC" }, + }); + if (Math.abs(+order) > posts.length) { + throw new HttpException( + "There are only " + posts.length + " unsent messages.", + HttpStatus.BAD_REQUEST, + ); + } + const post = posts[Math.abs(+order) - 1]; + if (post.text !== data.text || post.message_entities !== data.message_entities) { + post.text = data.text; + post.message_entities = data.message_entities; + post.edit_timestamp = new Date(); + await this.postRepository.save(post); + } + return post; + } catch (error) { + if (error instanceof HttpException) { + this.logger.debug(`[post.editPostByOrderNum] Order: ${order} is bad`); + throw error; + } + this.logger.debug( + `[post.editPostByOrderNum] Bad data. Order: ${order}. Data: ${JSON.stringify(data)}`, + ); + throw new HttpException("Server error", HttpStatus.BAD_GATEWAY); } + } - async getAllPosts(status: EGetAll) { - try { - let obj: object; - switch (status) { - case EGetAll.will_post: - obj = { where: { posted: false, deleted: false }, order: { timestamp: 'ASC' } }; - break; - case EGetAll.all: - obj = { order: { timestamp: 'ASC' }, where: { deleted: false } }; - break; - case EGetAll.posted: - obj = { where: { posted: true, deleted: false }, order: { timestamp: 'ASC' } }; - break; - } - return await this.postRepository.find(obj); - } catch (error) { - this.logger.log(`[post.getAllPosts] error: ${JSON.stringify(error)}`); - return []; - } + async getAllPosts(status: EGetAll) { + try { + let obj: object; + switch (status) { + case EGetAll.will_post: + obj = { where: { posted: false, deleted: false }, order: { timestamp: "ASC" } }; + break; + case EGetAll.all: + obj = { order: { timestamp: "ASC" }, where: { deleted: false } }; + break; + case EGetAll.posted: + obj = { where: { posted: true, deleted: false }, order: { timestamp: "ASC" } }; + break; + } + return await this.postRepository.find(obj); + } catch (error) { + this.logger.log(`[post.getAllPosts] error: ${JSON.stringify(error)}`); + return []; } + } - async getPost(postId: string) { - try { - this.logger.log(`[post.getPost] data: ${postId}`); - const post = await this.postRepository.findOne({ where: { uuid: postId }, relations: { images: true } }); - if (!post) throw new Error("Can't find post"); - return post; - } catch (error) { - this.logger.log(`[post.getPost] error: ${JSON.stringify(error)}`); - throw new HttpException('No post with this id', HttpStatus.NOT_FOUND); - } + async getPost(postId: string) { + try { + this.logger.log(`[post.getPost] data: ${postId}`); + const post = await this.postRepository.findOne({ + where: { uuid: postId }, + relations: { images: true }, + }); + if (!post) throw new Error("Can't find post"); + return post; + } catch (error) { + this.logger.log(`[post.getPost] error: ${JSON.stringify(error)}`); + throw new HttpException("No post with this id", HttpStatus.NOT_FOUND); } + } - async getPostByOrder(order: number) { - try { - this.logger.log(`[post.getPostByOrder] data: ${order}`); - const posts = await this.postRepository.find({ - relations: { images: true }, - order: { timestamp: 'ASC' }, - where: { posted: false, deleted: false }, - }); - if (Math.abs(+order) > posts.length) { - throw new HttpException('There are only ' + posts.length + ' posts.', HttpStatus.BAD_REQUEST); - } - return posts[Math.abs(+order) - 1]; - } catch (error) { - this.logger.log(`[post.getPostByOrder] error: ${JSON.stringify(error)}`); - throw new HttpException('No post with this id', HttpStatus.NOT_FOUND); - } + async getPostByOrder(order: number) { + try { + this.logger.log(`[post.getPostByOrder] data: ${order}`); + const posts = await this.postRepository.find({ + relations: { images: true }, + order: { timestamp: "ASC" }, + where: { posted: false, deleted: false }, + }); + if (Math.abs(+order) > posts.length) { + throw new HttpException( + "There are only " + posts.length + " posts.", + HttpStatus.BAD_REQUEST, + ); + } + return posts[Math.abs(+order) - 1]; + } catch (error) { + this.logger.log(`[post.getPostByOrder] error: ${JSON.stringify(error)}`); + throw new HttpException("No post with this id", HttpStatus.NOT_FOUND); } + } - async getByMediaGroup(mediaGroupId: string) { - try { - this.logger.log(`[post.getByMediaGroup] data: ${mediaGroupId}`); - let post: Post = null; - await this.dataSource.transaction(async (manager: EntityManager) => { - post = await manager.findOne(Post, { where: { media_group_id: mediaGroupId } }); - }); - if (!post) throw new Error("Can't find post"); - return post; - } catch (error) { - this.logger.debug(`[post.getByMediaGroup] error: ${error}`); - throw new HttpException("Can't find post with this media group id", HttpStatus.BAD_REQUEST); - } + async getByMediaGroup(mediaGroupId: string) { + try { + this.logger.log(`[post.getByMediaGroup] data: ${mediaGroupId}`); + let post: Post = null; + await this.dataSource.transaction(async (manager: EntityManager) => { + post = await manager.findOne(Post, { where: { media_group_id: mediaGroupId } }); + }); + if (!post) throw new Error("Can't find post"); + return post; + } catch (error) { + this.logger.debug(`[post.getByMediaGroup] error: ${error}`); + throw new HttpException("Can't find post with this media group id", HttpStatus.BAD_REQUEST); } + } - async post() { - try { - const posts = await this.postRepository.find({ - order: { timestamp: 'ASC' }, - where: { posted: false, deleted: false }, - relations: { images: true }, - }); - if (!posts.length) throw new HttpException('Nothing to post', HttpStatus.NOT_FOUND); - const post = posts[0]; - post.posted = true; - this.logger.log(`[post.post] Post ${post.uuid} is posted`); - await this.postRepository.save(post); - return post; - } catch (error) { - if (error instanceof HttpException) { - this.logger.debug('[post.post] Not found'); - throw error; - } - this.logger.debug(`[post.post] error: ${JSON.stringify(error)}`); - throw new HttpException('Bad data', HttpStatus.BAD_REQUEST); - } + async post() { + try { + const posts = await this.postRepository.find({ + order: { timestamp: "ASC" }, + where: { posted: false, deleted: false }, + relations: { images: true }, + }); + if (!posts.length) throw new HttpException("Nothing to post", HttpStatus.NOT_FOUND); + const post = posts[0]; + post.posted = true; + this.logger.log(`[post.post] Post ${post.uuid} is posted`); + await this.postRepository.save(post); + return post; + } catch (error) { + if (error instanceof HttpException) { + this.logger.debug("[post.post] Not found"); + throw error; + } + this.logger.debug(`[post.post] error: ${JSON.stringify(error)}`); + throw new HttpException("Bad data", HttpStatus.BAD_REQUEST); } + } - async deletePostByOrder(order: number) { - try { - const posts = await this.postRepository.find({ order: { timestamp: 'ASC' }, where: { posted: false, deleted: false } }); - if (Math.abs(+order) > posts.length) { - throw new HttpException('There are only ' + posts.length + ' posts.', HttpStatus.BAD_REQUEST); - } - const post = posts[Math.abs(+order) - 1]; - post.deleted = true; - this.logger.log(`[post.deletePostByOrder] Post ${post.uuid} is deleted`); - await this.postRepository.save(post); - return post; - } catch (error) { - if (error instanceof HttpException) { - this.logger.debug('[post.deletePostByOrder] Not found'); - throw error; - } - this.logger.debug(`[post.deletePostByOrder] error: ${JSON.stringify(error)}`); - throw new HttpException('Bad data', HttpStatus.BAD_REQUEST); - } + async deletePostByOrder(order: number) { + try { + const posts = await this.postRepository.find({ + order: { timestamp: "ASC" }, + where: { posted: false, deleted: false }, + }); + if (Math.abs(+order) > posts.length) { + throw new HttpException( + "There are only " + posts.length + " posts.", + HttpStatus.BAD_REQUEST, + ); + } + const post = posts[Math.abs(+order) - 1]; + post.deleted = true; + this.logger.log(`[post.deletePostByOrder] Post ${post.uuid} is deleted`); + await this.postRepository.save(post); + return post; + } catch (error) { + if (error instanceof HttpException) { + this.logger.debug("[post.deletePostByOrder] Not found"); + throw error; + } + this.logger.debug(`[post.deletePostByOrder] error: ${JSON.stringify(error)}`); + throw new HttpException("Bad data", HttpStatus.BAD_REQUEST); } + } - async getDeletedPosts() { - try { - return await this.postRepository.find({ where: { deleted: true, posted: false }, order: { timestamp: 'ASC' } }); - } catch (error) { - this.logger.debug(`[post.getDeleted] error: ${JSON.stringify(error)}`); - throw new HttpException('Bad data', HttpStatus.BAD_REQUEST); - } + async getDeletedPosts() { + try { + return await this.postRepository.find({ + where: { deleted: true, posted: false }, + order: { timestamp: "ASC" }, + }); + } catch (error) { + this.logger.debug(`[post.getDeleted] error: ${JSON.stringify(error)}`); + throw new HttpException("Bad data", HttpStatus.BAD_REQUEST); } + } - async restorePostByOrder(order: string) { - try { - const posts = await this.postRepository.find({ order: { timestamp: 'ASC' }, where: { deleted: true, posted: false } }); - if (Math.abs(+order) > posts.length) { - throw new HttpException('There are only ' + posts.length + ' posts.', HttpStatus.BAD_REQUEST); - } - const post = posts[Math.abs(+order) - 1]; - post.deleted = false; - this.logger.log(`[post.restorePost] Post ${post.uuid} is restored`); - await this.postRepository.save(post); - return post; - } catch (error) { - if (error instanceof HttpException) { - this.logger.debug('[post.restorePost] Not found'); - throw error; - } - this.logger.debug(`[post.restorePost] error: ${JSON.stringify(error)}`); - throw new HttpException('Bad data', HttpStatus.BAD_REQUEST); - } + async restorePostByOrder(order: string) { + try { + const posts = await this.postRepository.find({ + order: { timestamp: "ASC" }, + where: { deleted: true, posted: false }, + }); + if (Math.abs(+order) > posts.length) { + throw new HttpException( + "There are only " + posts.length + " posts.", + HttpStatus.BAD_REQUEST, + ); + } + const post = posts[Math.abs(+order) - 1]; + post.deleted = false; + this.logger.log(`[post.restorePost] Post ${post.uuid} is restored`); + await this.postRepository.save(post); + return post; + } catch (error) { + if (error instanceof HttpException) { + this.logger.debug("[post.restorePost] Not found"); + throw error; + } + this.logger.debug(`[post.restorePost] error: ${JSON.stringify(error)}`); + throw new HttpException("Bad data", HttpStatus.BAD_REQUEST); } + } } diff --git a/backend/src/modules/proxy/proxy.controller.ts b/backend/src/modules/proxy/proxy.controller.ts index 82a25ea..9a4493e 100644 --- a/backend/src/modules/proxy/proxy.controller.ts +++ b/backend/src/modules/proxy/proxy.controller.ts @@ -1,46 +1,46 @@ -import { Body, Controller, Get, Param, Post } from '@nestjs/common'; -import { ApiOperation, ApiTags } from '@nestjs/swagger'; -import { IOperation, IProxyUser } from './proxy.dto'; -import { ProxyService } from './proxy.service'; +import { Body, Controller, Get, Param, Post } from "@nestjs/common"; +import { ApiOperation, ApiTags } from "@nestjs/swagger"; +import { IOperation, IProxyUser } from "./proxy.dto"; +import { ProxyService } from "./proxy.service"; -@ApiTags('Proxy') -@Controller('proxy') +@ApiTags("Proxy") +@Controller("proxy") export class ProxyController { - constructor(private proxyService: ProxyService) {} + constructor(private proxyService: ProxyService) {} - @ApiOperation({ description: 'Method to create a new proxy user' }) - @Post('new-user') - async newUser(@Body() data: IProxyUser) { - return await this.proxyService.newUser(data); - } + @ApiOperation({ description: "Method to create a new proxy user" }) + @Post("new-user") + async newUser(@Body() data: IProxyUser) { + return await this.proxyService.newUser(data); + } - @ApiOperation({ description: 'get user by its username' }) - @Get('get-user/:userName') - async getUser(@Param('userName') userName: string) { - return await this.proxyService.getUser(userName); - } + @ApiOperation({ description: "get user by its username" }) + @Get("get-user/:userName") + async getUser(@Param("userName") userName: string) { + return await this.proxyService.getUser(userName); + } - @ApiOperation({ description: 'get all users of proxy' }) - @Get('get-all-users') - async getAllUsers() { - return await this.proxyService.getAllUsers(); - } + @ApiOperation({ description: "get all users of proxy" }) + @Get("get-all-users") + async getAllUsers() { + return await this.proxyService.getAllUsers(); + } - @ApiOperation({ description: 'adding an operation to user' }) - @Post('operation/add') - async addOperation(@Body() data: IOperation) { - return await this.proxyService.addOperation(data); - } + @ApiOperation({ description: "adding an operation to user" }) + @Post("operation/add") + async addOperation(@Body() data: IOperation) { + return await this.proxyService.addOperation(data); + } - @ApiOperation({ description: 'get user payments' }) - @Get('operation/get/:userName') - async getOperations(@Param('userName') userName: string) { - return this.proxyService.getOperations(userName); - } + @ApiOperation({ description: "get user payments" }) + @Get("operation/get/:userName") + async getOperations(@Param("userName") userName: string) { + return this.proxyService.getOperations(userName); + } - @ApiOperation({ description: 'get all payments' }) - @Get('operation/get-all') - async getAllOperations() { - return this.proxyService.getAllOperations(); - } + @ApiOperation({ description: "get all payments" }) + @Get("operation/get-all") + async getAllOperations() { + return this.proxyService.getAllOperations(); + } } diff --git a/backend/src/modules/proxy/proxy.dto.ts b/backend/src/modules/proxy/proxy.dto.ts index 0dbd923..fcde7da 100644 --- a/backend/src/modules/proxy/proxy.dto.ts +++ b/backend/src/modules/proxy/proxy.dto.ts @@ -1,12 +1,17 @@ -import { ApiProperty } from '@nestjs/swagger'; +import { ApiProperty } from "@nestjs/swagger"; export class IProxyUser { - @ApiProperty({ description: 'user name of user to identify them', example: 'username' }) readonly userName!: string; - @ApiProperty({ description: 'some user description if you want', example: 'Description of user' }) readonly description?: string; - @ApiProperty({ description: 'user link to connect to the proxy', example: 'vless://....' }) readonly link!: string; - @ApiProperty({ description: 'telegram user id to connect to user entity', example: '187564' }) readonly user_id?: string; + @ApiProperty({ description: "user name of user to identify them", example: "username" }) + readonly userName!: string; + @ApiProperty({ description: "some user description if you want", example: "Description of user" }) + readonly description?: string; + @ApiProperty({ description: "user link to connect to the proxy", example: "vless://...." }) + readonly link!: string; + @ApiProperty({ description: "telegram user id to connect to user entity", example: "187564" }) + readonly user_id?: string; } export class IOperation { - @ApiProperty({ description: 'user name of user, that made new operation', example: 'username' }) readonly userName!: string; + @ApiProperty({ description: "user name of user, that made new operation", example: "username" }) + readonly userName!: string; } diff --git a/backend/src/modules/proxy/proxy.module.ts b/backend/src/modules/proxy/proxy.module.ts index 41835f0..f53d2d2 100644 --- a/backend/src/modules/proxy/proxy.module.ts +++ b/backend/src/modules/proxy/proxy.module.ts @@ -1,11 +1,11 @@ -import { Module } from '@nestjs/common'; -import { LibsModule } from 'libs/libs.module'; -import { ProxyController } from './proxy.controller'; -import { ProxyService } from './proxy.service'; +import { Module } from "@nestjs/common"; +import { LibsModule } from "libs/libs.module"; +import { ProxyController } from "./proxy.controller"; +import { ProxyService } from "./proxy.service"; @Module({ - imports: [LibsModule], - controllers: [ProxyController], - providers: [ProxyService], + imports: [LibsModule], + controllers: [ProxyController], + providers: [ProxyService], }) export class ProxyModule {} diff --git a/backend/src/modules/proxy/proxy.service.ts b/backend/src/modules/proxy/proxy.service.ts index 25282cf..cb5c54a 100644 --- a/backend/src/modules/proxy/proxy.service.ts +++ b/backend/src/modules/proxy/proxy.service.ts @@ -1,106 +1,112 @@ -import { HttpException, HttpStatus, Injectable, Logger } from '@nestjs/common'; -import { InjectRepository } from '@nestjs/typeorm'; -import { Payment } from 'libs/database/payment.entity'; -import { ProxyUser } from 'libs/database/proxy_user.entity'; -import { User } from 'libs/database/user.entity'; -import { Repository } from 'typeorm'; -import { IOperation, IProxyUser } from './proxy.dto'; +import { HttpException, HttpStatus, Injectable, Logger } from "@nestjs/common"; +import { InjectRepository } from "@nestjs/typeorm"; +import { Payment } from "libs/database/payment.entity"; +import { ProxyUser } from "libs/database/proxy_user.entity"; +import { User } from "libs/database/user.entity"; +import { Repository } from "typeorm"; +import { IOperation, IProxyUser } from "./proxy.dto"; @Injectable() export class ProxyService { - private readonly logger: Logger = new Logger(ProxyService.name); - constructor( - @InjectRepository(ProxyUser) private proxyUserRepository: Repository, - @InjectRepository(Payment) private paymentRepository: Repository, - @InjectRepository(User) private userRepository: Repository, - ) {} + private readonly logger: Logger = new Logger(ProxyService.name); + constructor( + @InjectRepository(ProxyUser) private proxyUserRepository: Repository, + @InjectRepository(Payment) private paymentRepository: Repository, + @InjectRepository(User) private userRepository: Repository, + ) {} - async newUser(data: IProxyUser) { - try { - if ( - (await this.proxyUserRepository.findOne({ where: { userName: data.userName } })) || data.user_id - ? await this.proxyUserRepository.findOne({ where: { user_id: data.user_id } }) - : false - ) - throw new HttpException('User already exists', HttpStatus.FOUND); - const proxyUser = new ProxyUser(); - const user = data.user_id ? await this.userRepository.findOne({ where: { id: data.user_id } }) : null; - if (user) proxyUser.user = user; - proxyUser.description = data.description; - proxyUser.connectDate = new Date(); - proxyUser.userName = data.userName; - proxyUser.link = data.link; - return await this.proxyUserRepository.save(proxyUser); - } catch (error) { - if (error instanceof HttpException) { - this.logger.debug(`[proxy.newUser] error: user already created`); - throw error; - } - this.logger.debug(`[proxy.newUser] error: ${JSON.stringify(error)}`); - throw new HttpException('Bad data', HttpStatus.BAD_REQUEST); - } + async newUser(data: IProxyUser) { + try { + if ( + (await this.proxyUserRepository.findOne({ where: { userName: data.userName } })) || + data.user_id + ? await this.proxyUserRepository.findOne({ where: { user_id: data.user_id } }) + : false + ) + throw new HttpException("User already exists", HttpStatus.FOUND); + const proxyUser = new ProxyUser(); + const user = data.user_id + ? await this.userRepository.findOne({ where: { id: data.user_id } }) + : null; + if (user) proxyUser.user = user; + proxyUser.description = data.description; + proxyUser.connectDate = new Date(); + proxyUser.userName = data.userName; + proxyUser.link = data.link; + return await this.proxyUserRepository.save(proxyUser); + } catch (error) { + if (error instanceof HttpException) { + this.logger.debug(`[proxy.newUser] error: user already created`); + throw error; + } + this.logger.debug(`[proxy.newUser] error: ${JSON.stringify(error)}`); + throw new HttpException("Bad data", HttpStatus.BAD_REQUEST); } + } - async getUser(userName: string) { - try { - const user = await this.proxyUserRepository.findOne({ where: { userName: userName } }); - if (!user) throw new HttpException('Not found', HttpStatus.NOT_FOUND); - return user; - } catch (error) { - if (error instanceof HttpException) { - this.logger.debug(`[proxy.getUser] error: not found`); - throw error; - } - this.logger.debug(`[proxy.getUser] error: ${JSON.stringify(error)}`); - throw new HttpException('Bad data', HttpStatus.BAD_REQUEST); - } + async getUser(userName: string) { + try { + const user = await this.proxyUserRepository.findOne({ where: { userName: userName } }); + if (!user) throw new HttpException("Not found", HttpStatus.NOT_FOUND); + return user; + } catch (error) { + if (error instanceof HttpException) { + this.logger.debug(`[proxy.getUser] error: not found`); + throw error; + } + this.logger.debug(`[proxy.getUser] error: ${JSON.stringify(error)}`); + throw new HttpException("Bad data", HttpStatus.BAD_REQUEST); } + } - async getAllUsers() { - try { - return await this.proxyUserRepository.find(); - } catch (error) { - this.logger.debug(`[proxy.getAllUsers] error: ${JSON.stringify(error)}`); - throw new HttpException('Bad data', HttpStatus.BAD_REQUEST); - } + async getAllUsers() { + try { + return await this.proxyUserRepository.find(); + } catch (error) { + this.logger.debug(`[proxy.getAllUsers] error: ${JSON.stringify(error)}`); + throw new HttpException("Bad data", HttpStatus.BAD_REQUEST); } + } - async addOperation(data: IOperation) { - try { - const user = await this.proxyUserRepository.findOne({ where: { userName: data.userName } }); - if (!user) throw new HttpException('Not found', HttpStatus.NOT_FOUND); - return await this.paymentRepository.save({ payTime: new Date(), user: user }); - } catch (error) { - if (error instanceof HttpException) { - this.logger.debug(`[proxy.addOperation] error: not found`); - throw error; - } - this.logger.debug(`[proxy.addOperation] error: ${JSON.stringify(error)}`); - throw new HttpException('Bad data', HttpStatus.BAD_REQUEST); - } + async addOperation(data: IOperation) { + try { + const user = await this.proxyUserRepository.findOne({ where: { userName: data.userName } }); + if (!user) throw new HttpException("Not found", HttpStatus.NOT_FOUND); + return await this.paymentRepository.save({ payTime: new Date(), user: user }); + } catch (error) { + if (error instanceof HttpException) { + this.logger.debug(`[proxy.addOperation] error: not found`); + throw error; + } + this.logger.debug(`[proxy.addOperation] error: ${JSON.stringify(error)}`); + throw new HttpException("Bad data", HttpStatus.BAD_REQUEST); } + } - async getOperations(userName: string) { - try { - const user = await this.proxyUserRepository.findOne({ where: { userName: userName }, relations: { payments: true } }); - if (!user) throw new HttpException('Not found', HttpStatus.NOT_FOUND); - return user.payments; - } catch (error) { - if (error instanceof HttpException) { - this.logger.debug(`[proxy.addOperation] error: not found`); - throw error; - } - this.logger.debug(`[proxy.addOperation] error: ${error}`); - throw new HttpException('Bad data', HttpStatus.BAD_REQUEST); - } + async getOperations(userName: string) { + try { + const user = await this.proxyUserRepository.findOne({ + where: { userName: userName }, + relations: { payments: true }, + }); + if (!user) throw new HttpException("Not found", HttpStatus.NOT_FOUND); + return user.payments; + } catch (error) { + if (error instanceof HttpException) { + this.logger.debug(`[proxy.addOperation] error: not found`); + throw error; + } + this.logger.debug(`[proxy.addOperation] error: ${error}`); + throw new HttpException("Bad data", HttpStatus.BAD_REQUEST); } + } - async getAllOperations() { - try { - return await this.paymentRepository.find(); - } catch (error) { - this.logger.debug(`[proxy.addOperation] error: ${error}`); - throw new HttpException('Bad data', HttpStatus.BAD_REQUEST); - } + async getAllOperations() { + try { + return await this.paymentRepository.find(); + } catch (error) { + this.logger.debug(`[proxy.addOperation] error: ${error}`); + throw new HttpException("Bad data", HttpStatus.BAD_REQUEST); } + } } diff --git a/backend/src/modules/settings/settings.controller.ts b/backend/src/modules/settings/settings.controller.ts index f1b003d..78340e7 100644 --- a/backend/src/modules/settings/settings.controller.ts +++ b/backend/src/modules/settings/settings.controller.ts @@ -1,52 +1,52 @@ -import { CacheInterceptor, CacheKey, CacheTTL } from '@nestjs/cache-manager'; -import { Body, Controller, Delete, Get, Param, Post, UseInterceptors } from '@nestjs/common'; -import { ApiOperation, ApiTags } from '@nestjs/swagger'; -import { ICreateBotSettingsProfile, IEditBotSettingsProfile } from './settings.dto'; -import { SettingsService } from './settings.service'; +import { CacheInterceptor, CacheKey, CacheTTL } from "@nestjs/cache-manager"; +import { Body, Controller, Delete, Get, Param, Post, UseInterceptors } from "@nestjs/common"; +import { ApiOperation, ApiTags } from "@nestjs/swagger"; +import { ICreateBotSettingsProfile, IEditBotSettingsProfile } from "./settings.dto"; +import { SettingsService } from "./settings.service"; // Если нужна будет авторизация, для выключения авторизации на конкретном // const AllowUnathorizedRequest = () => SetMetadata('allowUnathorizedRequest', true); -@ApiTags('Settings') -@Controller('settings') +@ApiTags("Settings") +@Controller("settings") export class SettingsController { - constructor(private settingsService: SettingsService) {} + constructor(private settingsService: SettingsService) {} - @ApiOperation({ description: 'Get settings for bot' }) - @Get() - @CacheKey('settings') - @CacheTTL({ ttl: 600 } as any) - @UseInterceptors(CacheInterceptor) - async getSettings() { - return await this.settingsService.getSettings(); - } + @ApiOperation({ description: "Get settings for bot" }) + @Get() + @CacheKey("settings") + @CacheTTL({ ttl: 600 } as any) + @UseInterceptors(CacheInterceptor) + async getSettings() { + return await this.settingsService.getSettings(); + } - @ApiOperation({ description: 'Get active settings' }) - @Get('active') - async getActiveSettings() { - return await this.settingsService.getActiveSettings(); - } + @ApiOperation({ description: "Get active settings" }) + @Get("active") + async getActiveSettings() { + return await this.settingsService.getActiveSettings(); + } - @ApiOperation({ description: 'Get all bot settings profiles' }) - @Get('profile') - async getProfiles() { - return await this.settingsService.getProfiles(); - } + @ApiOperation({ description: "Get all bot settings profiles" }) + @Get("profile") + async getProfiles() { + return await this.settingsService.getProfiles(); + } - @ApiOperation({ description: 'Create new settings profile' }) - @Post('profile/new') - async newProfile(@Body() data: ICreateBotSettingsProfile) { - return await this.settingsService.newProfile(data); - } + @ApiOperation({ description: "Create new settings profile" }) + @Post("profile/new") + async newProfile(@Body() data: ICreateBotSettingsProfile) { + return await this.settingsService.newProfile(data); + } - @ApiOperation({ description: 'Edit settings profile' }) - @Post('profile/edit') - async editProfile(@Body() data: IEditBotSettingsProfile) { - return await this.settingsService.editProfile(data); - } + @ApiOperation({ description: "Edit settings profile" }) + @Post("profile/edit") + async editProfile(@Body() data: IEditBotSettingsProfile) { + return await this.settingsService.editProfile(data); + } - @ApiOperation({ description: 'Delete settings profile' }) - @Delete('profile/delete/:uuid') - async deleteProfile(@Param('uuid') uuid: string) { - return await this.settingsService.deleteProfile(uuid); - } + @ApiOperation({ description: "Delete settings profile" }) + @Delete("profile/delete/:uuid") + async deleteProfile(@Param("uuid") uuid: string) { + return await this.settingsService.deleteProfile(uuid); + } } diff --git a/backend/src/modules/settings/settings.dto.ts b/backend/src/modules/settings/settings.dto.ts index 6bb6429..03d0b6e 100644 --- a/backend/src/modules/settings/settings.dto.ts +++ b/backend/src/modules/settings/settings.dto.ts @@ -1,13 +1,21 @@ -import { ApiProperty } from '@nestjs/swagger'; +import { ApiProperty } from "@nestjs/swagger"; export class ICreateBotSettingsProfile { - @ApiProperty({ description: 'Channel', example: '@neurowoman_test' }) readonly channel: string; - @ApiProperty({ description: 'Post times', example: ['12:00', '14:00'] }) readonly postTimes: string[]; + @ApiProperty({ description: "Channel", example: "@neurowoman_test" }) readonly channel: string; + @ApiProperty({ description: "Post times", example: ["12:00", "14:00"] }) + readonly postTimes: string[]; } export class IEditBotSettingsProfile { - @ApiProperty({ description: 'Channel', example: '@neurowoman_test' }) readonly channel: string | undefined; - @ApiProperty({ description: 'Profile uuid', example: '96e7d1b3-20ca-46e8-ac68-e406f79b7eb9' }) readonly uuid: string; - @ApiProperty({ description: 'Post times', example: ['12:00', '14:00'] }) readonly postTimes: string[] | undefined; - @ApiProperty({ description: 'Is active?', example: false }) readonly isActive: boolean | undefined; + @ApiProperty({ description: "Channel", example: "@neurowoman_test" }) readonly channel: + | string + | undefined; + @ApiProperty({ description: "Profile uuid", example: "96e7d1b3-20ca-46e8-ac68-e406f79b7eb9" }) + readonly uuid: string; + @ApiProperty({ description: "Post times", example: ["12:00", "14:00"] }) readonly postTimes: + | string[] + | undefined; + @ApiProperty({ description: "Is active?", example: false }) readonly isActive: + | boolean + | undefined; } diff --git a/backend/src/modules/settings/settings.module.ts b/backend/src/modules/settings/settings.module.ts index bfac8c5..c37feae 100644 --- a/backend/src/modules/settings/settings.module.ts +++ b/backend/src/modules/settings/settings.module.ts @@ -1,11 +1,11 @@ -import { Module } from '@nestjs/common'; -import { LibsModule } from 'libs/libs.module'; -import { SettingsController } from './settings.controller'; -import { SettingsService } from './settings.service'; +import { Module } from "@nestjs/common"; +import { LibsModule } from "libs/libs.module"; +import { SettingsController } from "./settings.controller"; +import { SettingsService } from "./settings.service"; @Module({ - imports: [LibsModule], - controllers: [SettingsController], - providers: [SettingsService], + imports: [LibsModule], + controllers: [SettingsController], + providers: [SettingsService], }) export class SettingsModule {} diff --git a/backend/src/modules/settings/settings.service.ts b/backend/src/modules/settings/settings.service.ts index bdc321b..c908a72 100644 --- a/backend/src/modules/settings/settings.service.ts +++ b/backend/src/modules/settings/settings.service.ts @@ -1,82 +1,85 @@ -import { CACHE_MANAGER } from '@nestjs/cache-manager'; -import { HttpException, Inject, Injectable, Logger } from '@nestjs/common'; -import { InjectRepository } from '@nestjs/typeorm'; -import { Cache } from 'cache-manager'; -import { BotSettings } from 'libs/database/settings.entity'; -import { Repository } from 'typeorm'; -import { ICreateBotSettingsProfile, IEditBotSettingsProfile } from './settings.dto'; +import { CACHE_MANAGER } from "@nestjs/cache-manager"; +import { HttpException, Inject, Injectable, Logger } from "@nestjs/common"; +import { InjectRepository } from "@nestjs/typeorm"; +import { Cache } from "cache-manager"; +import { BotSettings } from "libs/database/settings.entity"; +import { Repository } from "typeorm"; +import { ICreateBotSettingsProfile, IEditBotSettingsProfile } from "./settings.dto"; @Injectable() export class SettingsService { - constructor( - @InjectRepository(BotSettings) private botSettingsRepository: Repository, - @Inject(CACHE_MANAGER) private cacheManager: Cache, - ) {} - private readonly logger: Logger = new Logger(SettingsService.name); + constructor( + @InjectRepository(BotSettings) private botSettingsRepository: Repository, + @Inject(CACHE_MANAGER) private cacheManager: Cache, + ) {} + private readonly logger: Logger = new Logger(SettingsService.name); - async getSettings() { - this.logger.debug('[settings.getSettings]'); - const settings = await this.botSettingsRepository.findOneBy({ isActive: true }); - if (settings) return settings; - this.logger.debug(`[settings.getSettings] No active settings found`); - throw new HttpException('No settings found', 404); + async getSettings() { + this.logger.debug("[settings.getSettings]"); + const settings = await this.botSettingsRepository.findOneBy({ isActive: true }); + if (settings) return settings; + this.logger.debug(`[settings.getSettings] No active settings found`); + throw new HttpException("No settings found", 404); + } + + async getActiveSettings() { + this.logger.debug("[settings.getActiveSettings]"); + const settings = await this.botSettingsRepository.findOneBy({ isActive: true }); + await this.cacheManager.set("settings", settings, { ttl: 600 } as any); + if (settings) return settings; + this.logger.debug(`[settings.getActiveSettings] No active settings found`); + throw new HttpException("No settings found", 404); + } + + async newProfile(data: ICreateBotSettingsProfile) { + this.logger.log(`[settings.newProfile] data: ${JSON.stringify(data)}`); + await this.cacheManager.del("settings"); + return await this.botSettingsRepository.save({ + channel: data.channel, + messageTimes: data.postTimes, + }); + } + + async getProfiles() { + this.logger.log(`[settings.getProfiles]`); + return await this.botSettingsRepository.find(); + } + + async editProfile(data: IEditBotSettingsProfile) { + this.logger.log(`[settings.editProfile] data: ${JSON.stringify(data)}`); + await this.cacheManager.del("settings"); + const editProfile = await this.botSettingsRepository.findOneBy({ uuid: data.uuid }); + if (!editProfile) { + this.logger.debug(`[settings.editProfile] No profile found`); + throw new HttpException("No profile found", 404); } - - async getActiveSettings() { - this.logger.debug('[settings.getActiveSettings]'); - const settings = await this.botSettingsRepository.findOneBy({ isActive: true }); - await this.cacheManager.set('settings', settings, { ttl: 600 } as any); - if (settings) return settings; - this.logger.debug(`[settings.getActiveSettings] No active settings found`); - throw new HttpException('No settings found', 404); - } - - async newProfile(data: ICreateBotSettingsProfile) { - this.logger.log(`[settings.newProfile] data: ${JSON.stringify(data)}`); - await this.cacheManager.del('settings'); - return await this.botSettingsRepository.save({ channel: data.channel, messageTimes: data.postTimes }); - } - - async getProfiles() { - this.logger.log(`[settings.getProfiles]`); - return await this.botSettingsRepository.find(); - } - - async editProfile(data: IEditBotSettingsProfile) { - this.logger.log(`[settings.editProfile] data: ${JSON.stringify(data)}`); - await this.cacheManager.del('settings'); - const editProfile = await this.botSettingsRepository.findOneBy({ uuid: data.uuid }); - if (!editProfile) { - this.logger.debug(`[settings.editProfile] No profile found`); - throw new HttpException('No profile found', 404); + data.channel ? (editProfile.channel = data.channel) : ""; + data.postTimes ? (editProfile.messageTimes = data.postTimes) : ""; + if (data.isActive !== undefined) { + editProfile.isActive = data.isActive; + if (data.isActive) { + const nowActive = await this.botSettingsRepository.findOneBy({ isActive: true }); + if (nowActive) { + nowActive.isActive = false; + await this.botSettingsRepository.save(nowActive); } - data.channel ? (editProfile.channel = data.channel) : ''; - data.postTimes ? (editProfile.messageTimes = data.postTimes) : ''; - if (data.isActive !== undefined) { - editProfile.isActive = data.isActive; - if (data.isActive) { - const nowActive = await this.botSettingsRepository.findOneBy({ isActive: true }); - if (nowActive) { - nowActive.isActive = false; - await this.botSettingsRepository.save(nowActive); - } - } - } - return await this.botSettingsRepository.save(editProfile); + } } + return await this.botSettingsRepository.save(editProfile); + } - async deleteProfile(profile_uuid: string) { - this.logger.log(`[settings.deleteProfile] uuid: ${profile_uuid}`); - await this.cacheManager.del('settings'); - const deleteProfile = await this.botSettingsRepository.findOneBy({ uuid: profile_uuid }); - if (!deleteProfile) { - this.logger.debug(`[settings.deleteProfile] No profile found`); - throw new HttpException('No profile found', 404); - } - if (deleteProfile.isActive) { - this.logger.debug(`[settings.deleteProfile] Can't delete active profile`); - throw new HttpException("Can't delete active profile", 400); - } - return await this.botSettingsRepository.delete(deleteProfile.uuid); + async deleteProfile(profile_uuid: string) { + this.logger.log(`[settings.deleteProfile] uuid: ${profile_uuid}`); + await this.cacheManager.del("settings"); + const deleteProfile = await this.botSettingsRepository.findOneBy({ uuid: profile_uuid }); + if (!deleteProfile) { + this.logger.debug(`[settings.deleteProfile] No profile found`); + throw new HttpException("No profile found", 404); } + if (deleteProfile.isActive) { + this.logger.debug(`[settings.deleteProfile] Can't delete active profile`); + throw new HttpException("Can't delete active profile", 400); + } + return await this.botSettingsRepository.delete(deleteProfile.uuid); + } } diff --git a/backend/src/modules/user/user.controller.ts b/backend/src/modules/user/user.controller.ts index 260e2a1..83a92fc 100644 --- a/backend/src/modules/user/user.controller.ts +++ b/backend/src/modules/user/user.controller.ts @@ -1,42 +1,42 @@ -import { Body, Controller, Get, Param, Post, Put } from '@nestjs/common'; -import { ApiOperation, ApiTags } from '@nestjs/swagger'; -import { IGetUser } from './user.dto'; -import { UserService } from './user.service'; +import { Body, Controller, Get, Param, Post, Put } from "@nestjs/common"; +import { ApiOperation, ApiTags } from "@nestjs/swagger"; +import { IGetUser } from "./user.dto"; +import { UserService } from "./user.service"; -@ApiTags('User') -@Controller('user') +@ApiTags("User") +@Controller("user") export class UserController { - constructor(private userService: UserService) {} + constructor(private userService: UserService) {} - @ApiOperation({ - description: 'Create or get user from db', - }) - @Post('get') - async getUser(@Body() data: IGetUser) { - return await this.userService.getUser(data); - } + @ApiOperation({ + description: "Create or get user from db", + }) + @Post("get") + async getUser(@Body() data: IGetUser) { + return await this.userService.getUser(data); + } - @ApiOperation({ - description: 'Ban user by its telegram id', - }) - @Put('ban/:id') - async banUser(@Param('id') id: string) { - return await this.userService.banUser(id); - } + @ApiOperation({ + description: "Ban user by its telegram id", + }) + @Put("ban/:id") + async banUser(@Param("id") id: string) { + return await this.userService.banUser(id); + } - @ApiOperation({ - description: 'Unban user by its telegram id', - }) - @Put('unBan/:id') - async unBanUser(@Param('id') id: string) { - return await this.userService.unBanUser(id); - } + @ApiOperation({ + description: "Unban user by its telegram id", + }) + @Put("unBan/:id") + async unBanUser(@Param("id") id: string) { + return await this.userService.unBanUser(id); + } - @ApiOperation({ - description: 'Get all banned users', - }) - @Get('banned') - async getBannedUsers() { - return await this.userService.getBannedUsers(); - } + @ApiOperation({ + description: "Get all banned users", + }) + @Get("banned") + async getBannedUsers() { + return await this.userService.getBannedUsers(); + } } diff --git a/backend/src/modules/user/user.dto.ts b/backend/src/modules/user/user.dto.ts index b6a44b9..bf4d326 100644 --- a/backend/src/modules/user/user.dto.ts +++ b/backend/src/modules/user/user.dto.ts @@ -1,6 +1,6 @@ -import { ApiProperty } from '@nestjs/swagger'; +import { ApiProperty } from "@nestjs/swagger"; export class IGetUser { - @ApiProperty({ description: 'telegram id', example: '123456' }) readonly id: string; - @ApiProperty({ description: 'telegram username', example: 'durov' }) readonly username?: string; + @ApiProperty({ description: "telegram id", example: "123456" }) readonly id: string; + @ApiProperty({ description: "telegram username", example: "durov" }) readonly username?: string; } diff --git a/backend/src/modules/user/user.module.ts b/backend/src/modules/user/user.module.ts index 45f7945..d038eb6 100644 --- a/backend/src/modules/user/user.module.ts +++ b/backend/src/modules/user/user.module.ts @@ -1,11 +1,11 @@ -import { Module } from '@nestjs/common'; -import { LibsModule } from 'libs/libs.module'; -import { UserController } from './user.controller'; -import { UserService } from './user.service'; +import { Module } from "@nestjs/common"; +import { LibsModule } from "libs/libs.module"; +import { UserController } from "./user.controller"; +import { UserService } from "./user.service"; @Module({ - imports: [LibsModule], - controllers: [UserController], - providers: [UserService], + imports: [LibsModule], + controllers: [UserController], + providers: [UserService], }) export class UserModule {} diff --git a/backend/src/modules/user/user.service.ts b/backend/src/modules/user/user.service.ts index ce1e84c..adb7da9 100644 --- a/backend/src/modules/user/user.service.ts +++ b/backend/src/modules/user/user.service.ts @@ -1,87 +1,90 @@ -import { CACHE_MANAGER } from '@nestjs/cache-manager'; -import { HttpException, HttpStatus, Inject, Injectable, Logger } from '@nestjs/common'; -import { InjectRepository } from '@nestjs/typeorm'; -import { Cache } from 'cache-manager'; -import { User } from 'libs/database/user.entity'; -import { Repository } from 'typeorm'; -import { IGetUser } from './user.dto'; +import { CACHE_MANAGER } from "@nestjs/cache-manager"; +import { HttpException, HttpStatus, Inject, Injectable, Logger } from "@nestjs/common"; +import { InjectRepository } from "@nestjs/typeorm"; +import { Cache } from "cache-manager"; +import { User } from "libs/database/user.entity"; +import { Repository } from "typeorm"; +import { IGetUser } from "./user.dto"; @Injectable() export class UserService { - private readonly logger: Logger = new Logger(UserService.name); - constructor( - @InjectRepository(User) private userRepository: Repository, - @Inject(CACHE_MANAGER) private cacheManager: Cache, - ) {} + private readonly logger: Logger = new Logger(UserService.name); + constructor( + @InjectRepository(User) private userRepository: Repository, + @Inject(CACHE_MANAGER) private cacheManager: Cache, + ) {} - async getUser(data: IGetUser) { - try { - this.logger.debug(`[user.getUser] data: ${JSON.stringify(data)}`); - let user = await this.cacheManager.get(`user_${data.id}`); - if (user) return user; - user = await this.userRepository.findOne({ - where: { id: data.id }, - }); - if (!user) { - user = await this.userRepository.save({ id: data.id, user_name: data.username }); - this.logger.log(`User ${data.id} created`); - } - await this.cacheManager.set(`user_${data.id}`, user, { ttl: 600 } as any); - return user; - } catch (error) { - this.logger.debug(`[user.getUser] ${JSON.stringify({ error })}`); - throw new HttpException('Internal Server Error', HttpStatus.INTERNAL_SERVER_ERROR); - } + async getUser(data: IGetUser) { + try { + this.logger.debug(`[user.getUser] data: ${JSON.stringify(data)}`); + let user = await this.cacheManager.get(`user_${data.id}`); + if (user) return user; + user = await this.userRepository.findOne({ + where: { id: data.id }, + }); + if (!user) { + user = await this.userRepository.save({ id: data.id, user_name: data.username }); + this.logger.log(`User ${data.id} created`); + } + await this.cacheManager.set(`user_${data.id}`, user, { ttl: 600 } as any); + return user; + } catch (error) { + this.logger.debug(`[user.getUser] ${JSON.stringify({ error })}`); + throw new HttpException("Internal Server Error", HttpStatus.INTERNAL_SERVER_ERROR); } + } - async banUser(id: string) { - try { - this.logger.debug(`[user.banUser] id: ${JSON.stringify(id)}`); - let user = await this.userRepository.findOne({ - where: { id: id }, - }); - if (user) { - user.banned = true; - await this.userRepository.save(user); - return user; - } + async banUser(id: string) { + try { + this.logger.debug(`[user.banUser] id: ${JSON.stringify(id)}`); + let user = await this.userRepository.findOne({ + where: { id: id }, + }); + if (user) { + user.banned = true; + await this.userRepository.save(user); + return user; + } - user = await this.userRepository.save({ id: id, banned: true }); - return user; - } catch (error) { - this.logger.debug(`[user.banUser] ${JSON.stringify({ error })}`); - throw new HttpException('Error occurred', HttpStatus.INTERNAL_SERVER_ERROR); - } + user = await this.userRepository.save({ id: id, banned: true }); + return user; + } catch (error) { + this.logger.debug(`[user.banUser] ${JSON.stringify({ error })}`); + throw new HttpException("Error occurred", HttpStatus.INTERNAL_SERVER_ERROR); } + } - async unBanUser(id: string) { - try { - this.logger.debug(`[user.unBanUser] id: ${JSON.stringify(id)}`); - let user = await this.userRepository.findOne({ - where: { id: id }, - }); - if (!user) { - throw new HttpException('No user with this id', HttpStatus.NOT_FOUND); - } - user = await this.userRepository.save({ id: user.id, banned: false }); - return user; - } catch (error) { - if (error instanceof HttpException) { - this.logger.debug(`[user.unBanUser] User with id: ${id} not found`); - throw error; - } - this.logger.debug(`[user.deBanUser] ${JSON.stringify({ error })}`); - throw new HttpException(`Error occurred`, HttpStatus.INTERNAL_SERVER_ERROR); - } + async unBanUser(id: string) { + try { + this.logger.debug(`[user.unBanUser] id: ${JSON.stringify(id)}`); + let user = await this.userRepository.findOne({ + where: { id: id }, + }); + if (!user) { + throw new HttpException("No user with this id", HttpStatus.NOT_FOUND); + } + user = await this.userRepository.save({ id: user.id, banned: false }); + return user; + } catch (error) { + if (error instanceof HttpException) { + this.logger.debug(`[user.unBanUser] User with id: ${id} not found`); + throw error; + } + this.logger.debug(`[user.deBanUser] ${JSON.stringify({ error })}`); + throw new HttpException(`Error occurred`, HttpStatus.INTERNAL_SERVER_ERROR); } + } - async getBannedUsers() { - try { - this.logger.log('[user.getBannedUsers]'); - return await this.userRepository.find({ where: { banned: true }, select: { id: true, user_name: true } }); - } catch (error) { - this.logger.debug(`[user.getBannedUsers] ${error}`); - throw new HttpException('Error occurred', HttpStatus.INTERNAL_SERVER_ERROR); - } + async getBannedUsers() { + try { + this.logger.log("[user.getBannedUsers]"); + return await this.userRepository.find({ + where: { banned: true }, + select: { id: true, user_name: true }, + }); + } catch (error) { + this.logger.debug(`[user.getBannedUsers] ${error}`); + throw new HttpException("Error occurred", HttpStatus.INTERNAL_SERVER_ERROR); } + } } diff --git a/backend/test/app.e2e-spec.ts b/backend/test/app.e2e-spec.ts index 50cda62..dde7438 100644 --- a/backend/test/app.e2e-spec.ts +++ b/backend/test/app.e2e-spec.ts @@ -1,9 +1,9 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { INestApplication } from '@nestjs/common'; -import * as request from 'supertest'; -import { AppModule } from './../src/app.module'; +import { Test, TestingModule } from "@nestjs/testing"; +import { INestApplication } from "@nestjs/common"; +import * as request from "supertest"; +import { AppModule } from "./../src/app.module"; -describe('AppController (e2e)', () => { +describe("AppController (e2e)", () => { let app: INestApplication; beforeEach(async () => { @@ -15,10 +15,7 @@ describe('AppController (e2e)', () => { await app.init(); }); - it('/ (GET)', () => { - return request(app.getHttpServer()) - .get('/') - .expect(200) - .expect('Hello World!'); + it("/ (GET)", () => { + return request(app.getHttpServer()).get("/").expect(200).expect("Hello World!"); }); }); diff --git a/backend/tsconfig.json b/backend/tsconfig.json index 000fbb1..95f5641 100644 --- a/backend/tsconfig.json +++ b/backend/tsconfig.json @@ -18,4 +18,4 @@ "forceConsistentCasingInFileNames": false, "noFallthroughCasesInSwitch": false } -} \ No newline at end of file +} diff --git a/package.json b/package.json deleted file mode 100644 index 5e4cc93..0000000 --- a/package.json +++ /dev/null @@ -1 +0,0 @@ -{ "dependencies": { "@nestjs/jwt": "^10.2.0" } } \ No newline at end of file