diff --git a/README.md b/README.md index 97ebb5812..33c491b4f 100644 --- a/README.md +++ b/README.md @@ -34,14 +34,14 @@ ## Important -> Very limited documentation, and will move to stateful authorization +> Very limited documentation * The features will be relate with AWS / Amazon web service * Stateless Authorization * If you want to implement `database transactions`. You must run MongoDB as a `replication set`. * If you want to implement `Google SSO`. You must have google cloud console account, then create your own SSO / Credential API to get the `clientId` and `clientSecret`. * If you change the environment value of `APP_ENV` to `production`, that will trigger. - 1. CorsMiddleware will implement `src/configs/middleware.config.ts`. + 1. CorsMiddleware will implement config from `src/configs/middleware.config.ts`. 2. Documentation will `disable`. * For monitoring, this project will use sentry.io, and only send `500` or `internal server error`. @@ -52,9 +52,9 @@ * [x] Debugger env change * [x] Add exception filter to Sentry.io * [x] Add Email Module with AWS SES -* [ ] CI Push docker image to AWS ECR -* [ ] CD Using AWS ECS and deploy to AWS EC2 -* [ ] Update Package, and remove unused package +* [ ] CI Push docker image to AWS ECR, `currently using Docker Hub` +* [ ] CD Using AWS ECS and deploy to AWS EC2, `currently only using AWS EC2` +* [x] Update Package, and remove unused package * [ ] Update Documentation, add behaviors * [ ] Update Documentation, and include an diagram for easier comprehension * [ ] Add Redis / Move to stateful Authorization Token (security and ux reason) diff --git a/package.json b/package.json index 8d0bc8551..753ef50e8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ack-nestjs-boilerplate", - "version": "5.6.3", + "version": "5.6.5", "description": "Ack NestJs Boilerplate", "repository": { "type": "git", @@ -47,48 +47,47 @@ "rollback": "yarn rollback:email && yarn rollback:apikey && yarn rollback:user && yarn rollback:role" }, "dependencies": { - "@aws-sdk/client-s3": "^3.473.0", - "@aws-sdk/client-ses": "^3.473.0", + "@aws-sdk/client-s3": "^3.498.0", + "@aws-sdk/client-ses": "^3.498.0", "@casl/ability": "^6.5.0", "@faker-js/faker": "^8.3.1", "@joi/date": "^2.1.0", "@nestjs/axios": "^3.0.1", - "@nestjs/common": "^10.2.10", + "@nestjs/common": "^10.3.1", "@nestjs/config": "^3.1.1", - "@nestjs/core": "^10.2.10", + "@nestjs/core": "^10.3.1", "@nestjs/jwt": "^10.2.0", "@nestjs/mongoose": "^10.0.2", "@nestjs/passport": "^10.0.3", - "@nestjs/platform-express": "^10.2.10", + "@nestjs/platform-express": "^10.3.1", "@nestjs/schedule": "^4.0.0", - "@nestjs/swagger": "^7.1.17", + "@nestjs/swagger": "^7.2.0", "@nestjs/terminus": "^10.2.0", - "@nestjs/throttler": "^5.1.0", - "@ntegral/nestjs-sentry": "^4.0.0", - "@sentry/node": "^7.87.0", + "@nestjs/throttler": "^5.1.1", + "@ntegral/nestjs-sentry": "^4.0.1", + "@sentry/node": "^7.95.0", "@types/response-time": "^2.3.8", - "axios": "^1.6.2", + "axios": "^1.6.5", "bcryptjs": "^2.4.3", "case": "^1.6.3", "class-transformer": "^0.5.1", - "class-validator": "^0.14.0", + "class-validator": "^0.14.1", "crypto-js": "^4.2.0", - "google-auth-library": "^9.4.1", + "google-auth-library": "^9.4.2", "helmet": "^7.1.0", - "joi": "^17.11.0", - "moment": "^2.29.4", - "moment-timezone": "^0.5.43", - "mongoose": "^8.0.3", + "joi": "^17.12.0", + "moment": "^2.30.1", + "moment-timezone": "^0.5.44", + "mongoose": "^8.1.0", "nest-winston": "^1.9.4", "nestjs-command": "^3.1.4", "nestjs-i18n": "^10.4.0", "passport": "^0.7.0", "passport-headerapikey": "^1.2.2", "passport-jwt": "^4.0.1", - "reflect-metadata": "^0.2.0", + "reflect-metadata": "^0.2.1", "response-time": "^2.3.2", - "rimraf": "^5.0.5", - "rotating-file-stream": "^3.1.1", + "rotating-file-stream": "^3.2.1", "rxjs": "^7.8.1", "ua-parser-js": "^1.0.37", "winston": "^3.11.0", @@ -98,35 +97,35 @@ "yarn": "^1.22.21" }, "devDependencies": { - "@nestjs/cli": "^10.2.1", - "@nestjs/schematics": "^10.0.3", - "@nestjs/testing": "^10.2.10", + "@nestjs/cli": "^10.3.0", + "@nestjs/schematics": "^10.1.0", + "@nestjs/testing": "^10.3.1", "@types/bcryptjs": "^2.4.6", "@types/bytes": "^3.1.4", "@types/cors": "^2.8.17", "@types/cron": "^2.0.1", - "@types/crypto-js": "^4.2.1", + "@types/crypto-js": "^4.2.2", "@types/express": "^4.17.21", "@types/jest": "^29.5.11", "@types/lodash": "^4.14.202", "@types/ms": "^0.7.34", "@types/multer": "^1.4.11", - "@types/node": "^20.10.4", - "@types/passport-jwt": "^3.0.13", - "@types/supertest": "^2.0.16", + "@types/node": "^20.11.6", + "@types/passport-jwt": "^4.0.0", + "@types/supertest": "^6.0.2", "@types/ua-parser-js": "^0.7.39", "@types/uuid": "^9.0.7", - "@typescript-eslint/eslint-plugin": "^6.14.0", - "@typescript-eslint/parser": "^6.14.0", - "cspell": "^8.1.3", - "eslint": "^8.55.0", + "@typescript-eslint/eslint-plugin": "^6.19.1", + "@typescript-eslint/parser": "^6.19.1", + "cspell": "^8.3.2", + "eslint": "^8.56.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-import": "^2.29.0", + "eslint-plugin-import": "^2.29.1", "husky": "^8.0.3", "jest": "^29.7.0", - "prettier": "^3.1.1", - "supertest": "^6.3.3", - "ts-jest": "^29.1.1", + "prettier": "^3.2.4", + "supertest": "^6.3.4", + "ts-jest": "^29.1.2", "ts-loader": "^9.5.1", "ts-node": "^10.9.2", "ts-prune": "^0.10.3", diff --git a/src/app/constants/app.constant.ts b/src/app/constants/app.constant.ts index 58273f5bf..2552d2c77 100644 --- a/src/app/constants/app.constant.ts +++ b/src/app/constants/app.constant.ts @@ -1 +1,3 @@ export const APP_LANGUAGE = 'en'; + +export const APP_TZ = 'Asia/Jakarta'; diff --git a/src/app/constants/app.enum.constant.ts b/src/app/constants/app.enum.constant.ts index 70efee60e..96033ea2f 100644 --- a/src/app/constants/app.enum.constant.ts +++ b/src/app/constants/app.enum.constant.ts @@ -3,5 +3,3 @@ export enum ENUM_APP_ENVIRONMENT { STAGING = 'staging', DEVELOPMENT = 'development', } - -export const APP_TZ = 'Asia/Jakarta'; diff --git a/src/common/api-key/controllers/api-key.admin.controller.ts b/src/common/api-key/controllers/api-key.admin.controller.ts index 498218ef1..bcd6509b2 100644 --- a/src/common/api-key/controllers/api-key.admin.controller.ts +++ b/src/common/api-key/controllers/api-key.admin.controller.ts @@ -127,14 +127,15 @@ export class ApiKeyAdminController { ...type, }; - const apiKeys: ApiKeyDoc[] = await this.apiKeyService.findAll(find, { - paging: { - limit: _limit, - offset: _offset, - }, - order: _order, - plainObject: true, - }); + const apiKeys: ApiKeyEntity[] = + await this.apiKeyService.findAll(find, { + paging: { + limit: _limit, + offset: _offset, + }, + order: _order, + plainObject: true, + }); const total: number = await this.apiKeyService.getTotal(find); const totalPage: number = this.paginationService.totalPage( total, diff --git a/src/common/api-key/interfaces/api-key.service.interface.ts b/src/common/api-key/interfaces/api-key.service.interface.ts index 6292dfefc..4777e0cb8 100644 --- a/src/common/api-key/interfaces/api-key.service.interface.ts +++ b/src/common/api-key/interfaces/api-key.service.interface.ts @@ -7,10 +7,7 @@ import { ApiKeyUpdateDto, } from 'src/common/api-key/dtos/api-key.update.dto'; import { IApiKeyCreated } from 'src/common/api-key/interfaces/api-key.interface'; -import { - ApiKeyDoc, - ApiKeyEntity, -} from 'src/common/api-key/repository/entities/api-key.entity'; +import { ApiKeyDoc } from 'src/common/api-key/repository/entities/api-key.entity'; import { IDatabaseCreateOptions, IDatabaseFindAllOptions, @@ -21,10 +18,10 @@ import { } from 'src/common/database/interfaces/database.interface'; export interface IApiKeyService { - findAll( + findAll( find?: Record, options?: IDatabaseFindAllOptions - ): Promise; + ): Promise; findOneById( _id: string, options?: IDatabaseFindOneOptions diff --git a/src/common/api-key/services/api-key.service.ts b/src/common/api-key/services/api-key.service.ts index b2840dbbc..d25c61f28 100644 --- a/src/common/api-key/services/api-key.service.ts +++ b/src/common/api-key/services/api-key.service.ts @@ -41,11 +41,11 @@ export class ApiKeyService implements IApiKeyService { this.env = this.configService.get('app.env'); } - async findAll( + async findAll( find?: Record, options?: IDatabaseFindAllOptions - ): Promise { - return this.apiKeyRepository.findAll(find, options); + ): Promise { + return this.apiKeyRepository.findAll(find, options); } async findOneById( diff --git a/src/common/aws/interfaces/aws.interface.ts b/src/common/aws/interfaces/aws.interface.ts index e907cbf86..4b2a60f85 100644 --- a/src/common/aws/interfaces/aws.interface.ts +++ b/src/common/aws/interfaces/aws.interface.ts @@ -1,6 +1,12 @@ import { ObjectCannedACL } from '@aws-sdk/client-s3'; export interface IAwsS3PutItemOptions { - path: string; + path?: string; + customFilename?: string; acl?: ObjectCannedACL; } + +export interface IAwsS3RandomFilename { + path: string; + customFilename: string; +} diff --git a/src/common/aws/interfaces/aws.s3-service.interface.ts b/src/common/aws/interfaces/aws.s3-service.interface.ts index 0ce171a2f..848923b46 100644 --- a/src/common/aws/interfaces/aws.s3-service.interface.ts +++ b/src/common/aws/interfaces/aws.s3-service.interface.ts @@ -1,14 +1,11 @@ -import { - CompletedPart, - HeadBucketCommandOutput, - UploadPartRequest, -} from '@aws-sdk/client-s3'; +import { HeadBucketCommandOutput, UploadPartRequest } from '@aws-sdk/client-s3'; import { IAwsS3PutItemOptions } from 'src/common/aws/interfaces/aws.interface'; import { AwsS3MultipartPartsSerialization, AwsS3MultipartSerialization, } from 'src/common/aws/serializations/aws.s3-multipart.serialization'; import { AwsS3Serialization } from 'src/common/aws/serializations/aws.s3.serialization'; +import { IFile } from 'src/common/file/interfaces/file.interface'; import { Readable } from 'stream'; export interface IAwsS3Service { @@ -16,38 +13,31 @@ export interface IAwsS3Service { listBucket(): Promise; listItemInBucket(prefix?: string): Promise; getItemInBucket( - filename: string, - path?: string + pathWithFilename: string ): Promise | Blob>; putItemInBucket( - filename: string, - content: - | string - | Uint8Array - | Buffer - | Readable - | ReadableStream - | Blob, + file: IFile, options?: IAwsS3PutItemOptions ): Promise; - deleteItemInBucket(filename: string): Promise; - deleteItemsInBucket(filenames: string[]): Promise; + deleteItemInBucket(pathWithFilename: string): Promise; + deleteItemsInBucket(pathWithFilename: string[]): Promise; deleteFolder(dir: string): Promise; createMultiPart( - filename: string, + file: IFile, + maxPartNumber: number, options?: IAwsS3PutItemOptions ): Promise; uploadPart( - path: string, - content: UploadPartRequest['Body'] | string | Uint8Array | Buffer, - uploadId: string, - partNumber: number + multipart: AwsS3MultipartSerialization, + partNumber: number, + content: UploadPartRequest['Body'] | string | Uint8Array | Buffer ): Promise; - completeMultipart( - path: string, - uploadId: string, - parts: CompletedPart[] - ): Promise; - abortMultipart(path: string, uploadId: string): Promise; + updateMultiPart( + { size, parts, ...others }: AwsS3MultipartSerialization, + part: AwsS3MultipartPartsSerialization + ): Promise; + completeMultipart(multipart: AwsS3MultipartSerialization): Promise; + abortMultipart(multipart: AwsS3MultipartSerialization): Promise; getFilenameFromCompletedUrl(completedUrl: string): Promise; + createRandomFilename(path?: string): Promise>; } diff --git a/src/common/aws/serializations/aws.s3-multipart.serialization.ts b/src/common/aws/serializations/aws.s3-multipart.serialization.ts index 925367e32..9fec7339c 100644 --- a/src/common/aws/serializations/aws.s3-multipart.serialization.ts +++ b/src/common/aws/serializations/aws.s3-multipart.serialization.ts @@ -11,7 +11,7 @@ export class AwsS3MultipartPartsSerialization { description: 'ETag from aws after init multipart', }) @Type(() => String) - ETag: string; + eTag: string; @ApiProperty({ required: true, @@ -19,7 +19,15 @@ export class AwsS3MultipartPartsSerialization { example: 1, }) @Type(() => Number) - PartNumber: number; + partNumber: number; + + @ApiProperty({ + required: true, + nullable: false, + example: 1, + }) + @Type(() => Number) + size: number; } export class AwsS3MultipartSerialization extends AwsS3Serialization { @@ -33,26 +41,26 @@ export class AwsS3MultipartSerialization extends AwsS3Serialization { uploadId: string; @ApiProperty({ - required: false, - nullable: true, + required: true, + nullable: false, example: 1, description: 'Last part number uploaded', }) @Type(() => Number) - partNumber?: number; + lastPartNumber: number; @ApiProperty({ - required: false, - nullable: true, + required: true, + nullable: false, example: 200, description: 'Max part number, or length of the chunk', }) @Type(() => Number) - maxPartNumber?: number; + maxPartNumber: number; @ApiProperty({ - required: false, - nullable: true, + required: true, + nullable: false, oneOf: [ { $ref: getSchemaPath(AwsS3MultipartPartsSerialization), @@ -61,5 +69,5 @@ export class AwsS3MultipartSerialization extends AwsS3Serialization { ], }) @Type(() => AwsS3MultipartPartsSerialization) - parts?: AwsS3MultipartPartsSerialization[]; + parts: AwsS3MultipartPartsSerialization[]; } diff --git a/src/common/aws/serializations/aws.s3.serialization.ts b/src/common/aws/serializations/aws.s3.serialization.ts index fb09581c3..17e84ea90 100644 --- a/src/common/aws/serializations/aws.s3.serialization.ts +++ b/src/common/aws/serializations/aws.s3.serialization.ts @@ -3,6 +3,13 @@ import { ApiProperty } from '@nestjs/swagger'; import { Type } from 'class-transformer'; export class AwsS3Serialization { + @ApiProperty({ + required: true, + nullable: false, + }) + @Type(() => String) + bucket: string; + @ApiProperty({ required: true, nullable: false, @@ -50,4 +57,16 @@ export class AwsS3Serialization { }) @Type(() => String) mime: string; + + @ApiProperty({ + required: false, + nullable: true, + }) + duration?: number; + + @ApiProperty({ + required: true, + nullable: false, + }) + size: number; } diff --git a/src/common/aws/services/aws.s3.service.ts b/src/common/aws/services/aws.s3.service.ts index d16ae4d72..4359839b1 100644 --- a/src/common/aws/services/aws.s3.service.ts +++ b/src/common/aws/services/aws.s3.service.ts @@ -1,6 +1,9 @@ import { Injectable } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; -import { IAwsS3PutItemOptions } from 'src/common/aws/interfaces/aws.interface'; +import { + IAwsS3PutItemOptions, + IAwsS3RandomFilename, +} from 'src/common/aws/interfaces/aws.interface'; import { IAwsS3Service } from 'src/common/aws/interfaces/aws.s3-service.interface'; import { AwsS3MultipartPartsSerialization, @@ -23,11 +26,9 @@ import { UploadPartCommand, CompleteMultipartUploadCommandInput, CompleteMultipartUploadCommand, - CompletedPart, GetObjectCommandInput, AbortMultipartUploadCommand, AbortMultipartUploadCommandInput, - UploadPartRequest, HeadBucketCommand, HeadBucketCommandOutput, ListBucketsOutput, @@ -52,7 +53,10 @@ import { Bucket, _Object, ObjectCannedACL, + CompletedPart, } from '@aws-sdk/client-s3'; +import { IFile } from 'src/common/file/interfaces/file.interface'; +import { HelperStringService } from 'src/common/helper/services/helper.string.service'; @Injectable() export class AwsS3Service implements IAwsS3Service { @@ -60,7 +64,10 @@ export class AwsS3Service implements IAwsS3Service { private readonly bucket: string; private readonly baseUrl: string; - constructor(private readonly configService: ConfigService) { + constructor( + private readonly configService: ConfigService, + private readonly helperStringService: HelperStringService + ) { this.s3Client = new S3Client({ credentials: { accessKeyId: this.configService.get( @@ -129,17 +136,20 @@ export class AwsS3Service implements IAwsS3Service { lastIndex + 1, val.Key.length ); - const mime: string = filename - .substring(filename.lastIndexOf('.') + 1, filename.length) - .toLocaleUpperCase(); + const mime: string = filename.substring( + filename.lastIndexOf('.') + 1, + filename.length + ); return { + bucket: this.bucket, path, pathWithFilename: val.Key, filename: filename, completedUrl: `${this.baseUrl}/${val.Key}`, baseUrl: this.baseUrl, mime, + size: val.Size, }; }); @@ -150,16 +160,11 @@ export class AwsS3Service implements IAwsS3Service { } async getItemInBucket( - filename: string, - path?: string + pathWithFilename: string ): Promise | Blob> { - if (path) - path = path.startsWith('/') ? path.replace('/', '') : `${path}`; - - const key: string = path ? `${path}/${filename}` : filename; const command: GetObjectCommand = new GetObjectCommand({ Bucket: this.bucket, - Key: key, + Key: pathWithFilename, }); try { @@ -174,27 +179,23 @@ export class AwsS3Service implements IAwsS3Service { } async putItemInBucket( - filename: string, - content: - | string - | Uint8Array - | Buffer - | Readable - | ReadableStream - | Blob, + file: IFile, options?: IAwsS3PutItemOptions ): Promise { let path: string = options?.path; + path = path?.startsWith('/') ? path.replace('/', '') : path; const acl: ObjectCannedACL = options?.acl ? (options.acl as ObjectCannedACL) : ObjectCannedACL.public_read; - if (path) - path = path.startsWith('/') ? path.replace('/', '') : `${path}`; - - const mime: string = filename - .substring(filename.lastIndexOf('.') + 1, filename.length) - .toUpperCase(); + const mime: string = file.originalname.substring( + file.originalname.lastIndexOf('.') + 1, + file.originalname.length + ); + const filename = options?.customFilename + ? `${options?.customFilename}.${mime}` + : file.originalname; + const content: string | Uint8Array | Buffer = file.buffer; const key: string = path ? `${path}/${filename}` : filename; const command: PutObjectCommand = new PutObjectCommand({ Bucket: this.bucket, @@ -208,24 +209,26 @@ export class AwsS3Service implements IAwsS3Service { PutObjectCommandInput, PutObjectCommandOutput >(command); + + return { + bucket: this.bucket, + path, + pathWithFilename: key, + filename: filename, + completedUrl: `${this.baseUrl}/${key}`, + baseUrl: this.baseUrl, + mime, + size: file.size, + }; } catch (err: any) { throw err; } - - return { - path, - pathWithFilename: key, - filename: filename, - completedUrl: `${this.baseUrl}/${key}`, - baseUrl: this.baseUrl, - mime, - }; } - async deleteItemInBucket(filename: string): Promise { + async deleteItemInBucket(pathWithFilename: string): Promise { const command: DeleteObjectCommand = new DeleteObjectCommand({ Bucket: this.bucket, - Key: filename, + Key: pathWithFilename, }); try { @@ -239,10 +242,12 @@ export class AwsS3Service implements IAwsS3Service { } } - async deleteItemsInBucket(filenames: string[]): Promise { - const keys: ObjectIdentifier[] = filenames.map((val: string) => ({ - Key: val, - })); + async deleteItemsInBucket(pathWithFilename: string[]): Promise { + const keys: ObjectIdentifier[] = pathWithFilename.map( + (val: string) => ({ + Key: val, + }) + ); const command: DeleteObjectsCommand = new DeleteObjectsCommand({ Bucket: this.bucket, Delete: { @@ -304,22 +309,24 @@ export class AwsS3Service implements IAwsS3Service { } async createMultiPart( - filename: string, + file: IFile, + maxPartNumber: number, options?: IAwsS3PutItemOptions ): Promise { - let path: string = options?.path; + let path: string = options?.path ?? '/'; + path = path.startsWith('/') ? path.replace('/', '') : path; const acl: ObjectCannedACL = options?.acl ? (options.acl as ObjectCannedACL) : ObjectCannedACL.public_read; - if (path) - path = path.startsWith('/') ? path.replace('/', '') : `${path}`; - - const mime: string = filename - .substring(filename.lastIndexOf('.') + 1, filename.length) - .toUpperCase(); + const mime: string = file.originalname.substring( + file.originalname.lastIndexOf('.') + 1, + file.originalname.length + ); + const filename = options?.customFilename + ? `${options?.customFilename}.${mime}` + : file.originalname; const key: string = path ? `${path}/${filename}` : filename; - const multiPartCommand: CreateMultipartUploadCommand = new CreateMultipartUploadCommand({ Bucket: this.bucket, @@ -334,6 +341,7 @@ export class AwsS3Service implements IAwsS3Service { >(multiPartCommand); return { + bucket: this.bucket, uploadId: response.UploadId, path, pathWithFilename: key, @@ -341,6 +349,10 @@ export class AwsS3Service implements IAwsS3Service { completedUrl: `${this.baseUrl}/${key}`, baseUrl: this.baseUrl, mime, + size: 0, + lastPartNumber: 0, + maxPartNumber: maxPartNumber, + parts: [], }; } catch (err: any) { throw err; @@ -348,17 +360,16 @@ export class AwsS3Service implements IAwsS3Service { } async uploadPart( - path: string, - content: UploadPartRequest['Body'] | string | Uint8Array | Buffer, - uploadId: string, - partNumber: number + multipart: AwsS3MultipartSerialization, + partNumber: number, + content: string | Uint8Array | Buffer ): Promise { const uploadPartCommand: UploadPartCommand = new UploadPartCommand({ Bucket: this.bucket, - Key: path, + Key: multipart.path, Body: content, PartNumber: partNumber, - UploadId: uploadId, + UploadId: multipart.uploadId, }); try { @@ -368,26 +379,38 @@ export class AwsS3Service implements IAwsS3Service { >(uploadPartCommand); return { - ETag, - PartNumber: partNumber, + eTag: ETag, + partNumber: partNumber, + size: content.length, }; } catch (err: any) { throw err; } } + async updateMultiPart( + { size, parts, ...others }: AwsS3MultipartSerialization, + part: AwsS3MultipartPartsSerialization + ): Promise { + parts.push(part); + return { + ...others, + size: size + part.size, + lastPartNumber: part.partNumber, + parts, + }; + } + async completeMultipart( - path: string, - uploadId: string, - parts: CompletedPart[] + multipart: AwsS3MultipartSerialization ): Promise { const completeMultipartCommand: CompleteMultipartUploadCommand = new CompleteMultipartUploadCommand({ Bucket: this.bucket, - Key: path, - UploadId: uploadId, + Key: multipart.path, + UploadId: multipart.uploadId, MultipartUpload: { - Parts: parts, + Parts: multipart.parts as CompletedPart[], }, }); @@ -403,12 +426,14 @@ export class AwsS3Service implements IAwsS3Service { } } - async abortMultipart(path: string, uploadId: string): Promise { + async abortMultipart( + multipart: AwsS3MultipartSerialization + ): Promise { const abortMultipartCommand: AbortMultipartUploadCommand = new AbortMultipartUploadCommand({ Bucket: this.bucket, - Key: path, - UploadId: uploadId, + Key: multipart.path, + UploadId: multipart.uploadId, }); try { @@ -424,6 +449,15 @@ export class AwsS3Service implements IAwsS3Service { } async getFilenameFromCompletedUrl(completedUrl: string): Promise { - return completedUrl.replace(`${this.baseUrl}/`, ''); + return completedUrl.replace(`${this.baseUrl}`, ''); + } + + async createRandomFilename(path?: string): Promise { + const filename: string = this.helperStringService.random(20); + + return { + path: path ?? '/', + customFilename: filename, + }; } } diff --git a/src/common/doc/decorators/doc.decorator.ts b/src/common/doc/decorators/doc.decorator.ts index ab602f544..2e9f49a1b 100644 --- a/src/common/doc/decorators/doc.decorator.ts +++ b/src/common/doc/decorators/doc.decorator.ts @@ -33,7 +33,7 @@ import { IDocResponseOptions, } from 'src/common/doc/interfaces/doc.interface'; import { ENUM_ERROR_STATUS_CODE_ERROR } from 'src/common/error/constants/error.status-code.constant'; -import { ENUM_FILE_EXCEL_MIME } from 'src/common/file/constants/file.enum.constant'; +import { ENUM_FILE_MIME } from 'src/common/file/constants/file.enum.constant'; import { ENUM_PAGINATION_ORDER_DIRECTION_TYPE } from 'src/common/pagination/constants/pagination.enum.constant'; import { ENUM_POLICY_STATUS_CODE_ERROR } from 'src/common/policy/constants/policy.status-code.constant'; import { ENUM_REQUEST_STATUS_CODE_ERROR } from 'src/common/request/constants/request.status-code.constant'; @@ -570,7 +570,7 @@ export function DocResponseFile( const httpStatus: HttpStatus = options?.httpStatus ?? HttpStatus.OK; return applyDecorators( - ApiProduces(options?.fileType ?? ENUM_FILE_EXCEL_MIME.CSV), + ApiProduces(options?.fileType ?? ENUM_FILE_MIME.CSV), ApiResponse({ status: httpStatus, }) diff --git a/src/common/doc/interfaces/doc.interface.ts b/src/common/doc/interfaces/doc.interface.ts index cadc284ee..d70f0375c 100644 --- a/src/common/doc/interfaces/doc.interface.ts +++ b/src/common/doc/interfaces/doc.interface.ts @@ -2,7 +2,7 @@ import { HttpStatus } from '@nestjs/common'; import { ApiParamOptions, ApiQueryOptions } from '@nestjs/swagger'; import { ClassConstructor } from 'class-transformer'; import { ENUM_DOC_REQUEST_BODY_TYPE } from 'src/common/doc/constants/doc.enum.constant'; -import { ENUM_FILE_EXCEL_MIME } from 'src/common/file/constants/file.enum.constant'; +import { ENUM_FILE_MIME } from 'src/common/file/constants/file.enum.constant'; export interface IDocOptions { summary?: string; @@ -58,7 +58,7 @@ export interface IDocResponsePagingOptions export interface IDocResponseFileOptions extends Omit, 'serialization' | 'statusCode'> { - fileType?: ENUM_FILE_EXCEL_MIME; + fileType?: ENUM_FILE_MIME; } export interface IDocErrorOptions { diff --git a/src/common/file/constants/file.constant.ts b/src/common/file/constants/file.constant.ts index 14713cd3a..e52bf0589 100644 --- a/src/common/file/constants/file.constant.ts +++ b/src/common/file/constants/file.constant.ts @@ -1,5 +1,5 @@ import bytes from 'bytes'; -export const FILE_SIZE_IN_BYTES: number = bytes('1mb'); -export const FILE_SIZE_MEDIUM_IN_BYTES: number = bytes('5mb'); -export const FILE_SIZE_LARGE_IN_BYTES: number = bytes('10mb'); +export const FILE_SIZE_IN_BYTES: number = bytes('5mb'); +export const FILE_SIZE_MEDIUM_IN_BYTES: number = bytes('10mb'); +export const FILE_SIZE_LARGE_IN_BYTES: number = bytes('20mb'); diff --git a/src/common/file/constants/file.enum.constant.ts b/src/common/file/constants/file.enum.constant.ts index 99ff0345f..628692a76 100644 --- a/src/common/file/constants/file.enum.constant.ts +++ b/src/common/file/constants/file.enum.constant.ts @@ -1,24 +1,15 @@ -export enum ENUM_FILE_IMAGE_MIME { +export enum ENUM_FILE_MIME { JPG = 'image/jpg', JPEG = 'image/jpeg', PNG = 'image/png', -} - -export enum ENUM_FILE_EXCEL_MIME { XLS = 'application/vnd.ms-excel', XLSX = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', CSV = 'text/csv', -} - -export enum ENUM_FILE_AUDIO_MIME { + PDF = 'application/pdf', MPEG = 'audio/mpeg', MP3 = 'audio/mp3', - MP4 = 'audio/mp4', -} - -export enum ENUM_FILE_VIDEO_MIME { + M4A = 'audio/x-m4a', MP4 = 'video/mp4', - APPLICATION_MP4 = 'application/mp4', } export enum ENUM_FILE_TYPE { diff --git a/src/common/file/decorators/file.decorator.ts b/src/common/file/decorators/file.decorator.ts index 0ba2a255a..2c1b1f422 100644 --- a/src/common/file/decorators/file.decorator.ts +++ b/src/common/file/decorators/file.decorator.ts @@ -4,46 +4,24 @@ import { ExecutionContext, UseInterceptors, } from '@nestjs/common'; -import { FileInterceptor, FilesInterceptor } from '@nestjs/platform-express'; import { - FILE_SIZE_IN_BYTES, - FILE_SIZE_LARGE_IN_BYTES, - FILE_SIZE_MEDIUM_IN_BYTES, -} from 'src/common/file/constants/file.constant'; + FileFieldsInterceptor, + FileInterceptor, + FilesInterceptor, +} from '@nestjs/platform-express'; +import { FILE_SIZE_IN_BYTES } from 'src/common/file/constants/file.constant'; +import { IFileMultipleField } from 'src/common/file/interfaces/file.interface'; import { IRequestApp } from 'src/common/request/interfaces/request.interface'; -export function FileUploadSingle(field?: string): MethodDecorator { - return applyDecorators( - UseInterceptors( - FileInterceptor(field ?? 'file', { - limits: { - fileSize: FILE_SIZE_IN_BYTES, - files: 1, - }, - }) - ) - ); -} - -export function FileUploadSingleMedium(field?: string): MethodDecorator { - return applyDecorators( - UseInterceptors( - FileInterceptor(field ?? 'file', { - limits: { - fileSize: FILE_SIZE_MEDIUM_IN_BYTES, - files: 1, - }, - }) - ) - ); -} - -export function FileUploadSingleLarge(field?: string): MethodDecorator { +export function FileUploadSingle( + field?: string, + fileSize = FILE_SIZE_IN_BYTES +): MethodDecorator { return applyDecorators( UseInterceptors( FileInterceptor(field ?? 'file', { limits: { - fileSize: FILE_SIZE_LARGE_IN_BYTES, + fileSize, files: 1, }, }) @@ -53,43 +31,14 @@ export function FileUploadSingleLarge(field?: string): MethodDecorator { export function FileUploadMultiple( field?: string, - maxFiles?: number + maxFiles?: number, + fileSize = FILE_SIZE_IN_BYTES ): MethodDecorator { return applyDecorators( UseInterceptors( FilesInterceptor(field ?? 'files', maxFiles ?? 2, { limits: { - fileSize: FILE_SIZE_IN_BYTES, - }, - }) - ) - ); -} - -export function FileUploadMultipleMedium( - field?: string, - maxFiles?: number -): MethodDecorator { - return applyDecorators( - UseInterceptors( - FilesInterceptor(field ?? 'files', maxFiles ?? 2, { - limits: { - fileSize: FILE_SIZE_MEDIUM_IN_BYTES, - }, - }) - ) - ); -} - -export function FileUploadMultipleLarge( - field?: string, - maxFiles?: number -): MethodDecorator { - return applyDecorators( - UseInterceptors( - FilesInterceptor(field ?? 'files', maxFiles ?? 2, { - limits: { - fileSize: FILE_SIZE_LARGE_IN_BYTES, + fileSize, }, }) ) @@ -103,3 +52,24 @@ export const FilePartNumber: () => ParameterDecorator = createParamDecorator( return headers['x-part-number'] ? Number(headers['x-part-number']) : 0; } ); + +export function FileUploadMultipleFields( + fields: IFileMultipleField[], + fileSize = FILE_SIZE_IN_BYTES +): MethodDecorator { + return applyDecorators( + UseInterceptors( + FileFieldsInterceptor( + fields.map((e) => ({ + name: e.field, + maxCount: e.maxFiles, + })), + { + limits: { + fileSize, + }, + } + ) + ) + ); +} diff --git a/src/common/file/interfaces/file.interface.ts b/src/common/file/interfaces/file.interface.ts index 6508db9d8..6effe5ccd 100644 --- a/src/common/file/interfaces/file.interface.ts +++ b/src/common/file/interfaces/file.interface.ts @@ -11,3 +11,8 @@ export type IFileExtractAllSheets = IFile & { extracts: IHelperFileRows[][]; dto?: T[][]; }; + +export interface IFileMultipleField { + field: string; + maxFiles: number; +} diff --git a/src/common/file/pipes/file.extract.pipe.ts b/src/common/file/pipes/file.excel-extract.pipe.ts similarity index 87% rename from src/common/file/pipes/file.extract.pipe.ts rename to src/common/file/pipes/file.excel-extract.pipe.ts index 328e7633d..f1a3cdaf7 100644 --- a/src/common/file/pipes/file.extract.pipe.ts +++ b/src/common/file/pipes/file.excel-extract.pipe.ts @@ -1,6 +1,6 @@ import { Injectable, UnsupportedMediaTypeException } from '@nestjs/common'; import { PipeTransform } from '@nestjs/common/interfaces'; -import { ENUM_FILE_EXCEL_MIME } from 'src/common/file/constants/file.enum.constant'; +import { ENUM_FILE_MIME } from 'src/common/file/constants/file.enum.constant'; import { ENUM_FILE_STATUS_CODE_ERROR } from 'src/common/file/constants/file.status-code.constant'; import { IFile, @@ -12,7 +12,7 @@ import { HelperFileService } from 'src/common/helper/services/helper.file.servic // only for excel @Injectable() -export class FileExtractPipe implements PipeTransform { +export class FileExcelExtractPipe implements PipeTransform { constructor(private readonly helperFileService: HelperFileService) {} async transform( @@ -45,7 +45,7 @@ export class FileExtractPipe implements PipeTransform { async validate(mimetype: string): Promise { if ( - !Object.values(ENUM_FILE_EXCEL_MIME).find( + ![ENUM_FILE_MIME.CSV, ENUM_FILE_MIME.XLS, ENUM_FILE_MIME.XLSX].find( (val) => val === mimetype.toLowerCase() ) ) { @@ -71,7 +71,7 @@ export class FileExtractPipe implements PipeTransform { // only for excel @Injectable() -export class FileExtractAllSheetPipe implements PipeTransform { +export class FileExcelExtractAllSheetPipe implements PipeTransform { constructor(private readonly helperFileService: HelperFileService) {} async transform( @@ -87,9 +87,8 @@ export class FileExtractAllSheetPipe implements PipeTransform { for (const val of value) { await this.validate(val.mimetype); - const extract: IFileExtractAllSheets = await this.extract( - val - ); + const extract: IFileExtractAllSheets = + await this.extract(val); extracts.push(extract); } @@ -106,7 +105,7 @@ export class FileExtractAllSheetPipe implements PipeTransform { async validate(mimetype: string): Promise { if ( - !Object.values(ENUM_FILE_EXCEL_MIME).find( + ![ENUM_FILE_MIME.CSV, ENUM_FILE_MIME.XLS, ENUM_FILE_MIME.XLSX].find( (val) => val === mimetype.toLowerCase() ) ) { diff --git a/src/common/file/pipes/file.validation.pipe.ts b/src/common/file/pipes/file.excel-validation.pipe.ts similarity index 95% rename from src/common/file/pipes/file.validation.pipe.ts rename to src/common/file/pipes/file.excel-validation.pipe.ts index 19d8f6f58..951648529 100644 --- a/src/common/file/pipes/file.validation.pipe.ts +++ b/src/common/file/pipes/file.excel-validation.pipe.ts @@ -12,14 +12,14 @@ import { IFileExtract, IFileExtractAllSheets, } from 'src/common/file/interfaces/file.interface'; -import { ENUM_FILE_EXCEL_MIME } from 'src/common/file/constants/file.enum.constant'; import { ENUM_FILE_STATUS_CODE_ERROR } from 'src/common/file/constants/file.status-code.constant'; import { ERROR_TYPE } from 'src/common/error/constants/error.enum.constant'; +import { ENUM_FILE_MIME } from 'src/common/file/constants/file.enum.constant'; // only for excel // must use after FileExtractPipe @Injectable() -export class FileValidationPipe implements PipeTransform { +export class FileExcelValidationPipe implements PipeTransform { constructor(private readonly dto: ClassConstructor) {} async transform( @@ -81,7 +81,7 @@ export class FileValidationPipe implements PipeTransform { async validate(value: IFileExtract): Promise { if ( - !Object.values(ENUM_FILE_EXCEL_MIME).find( + ![ENUM_FILE_MIME.CSV, ENUM_FILE_MIME.XLS, ENUM_FILE_MIME.XLSX].find( (val) => val === value.mimetype.toLowerCase() ) ) { @@ -135,7 +135,9 @@ export class FileValidationPipe implements PipeTransform { } @Injectable() -export class FileValidationAllSheetPipe implements PipeTransform { +export class FileExcelValidationAllSheetPipe + implements PipeTransform +{ constructor(private readonly dto: T) {} async transform( @@ -213,7 +215,7 @@ export class FileValidationAllSheetPipe implements PipeTransform { async validate(value: IFileExtractAllSheets): Promise { if ( - !Object.values(ENUM_FILE_EXCEL_MIME).find( + ![ENUM_FILE_MIME.CSV, ENUM_FILE_MIME.XLS, ENUM_FILE_MIME.XLSX].find( (val) => val === value.mimetype.toLowerCase() ) ) { diff --git a/src/common/file/pipes/file.required.pipe.ts b/src/common/file/pipes/file.required.pipe.ts index b2f394891..41c3b1875 100644 --- a/src/common/file/pipes/file.required.pipe.ts +++ b/src/common/file/pipes/file.required.pipe.ts @@ -8,14 +8,25 @@ import { IFile } from 'src/common/file/interfaces/file.interface'; @Injectable() export class FileRequiredPipe implements PipeTransform { + constructor(readonly field?: string) {} + async transform(value: IFile | IFile[]): Promise { - await this.validate(value); + let fieldValue = value; + if (this.field) { + fieldValue = value[this.field]; + } + + await this.validate(fieldValue); return value; } async validate(value: IFile | IFile[]): Promise { - if (!value || (Array.isArray(value) && value.length === 0)) { + if ( + !value || + Object.keys(value).length === 0 || + (Array.isArray(value) && value.length === 0) + ) { throw new UnprocessableEntityException({ statusCode: ENUM_FILE_STATUS_CODE_ERROR.FILE_NEEDED_ERROR, message: 'file.error.notFound', diff --git a/src/common/file/pipes/file.type.pipe.ts b/src/common/file/pipes/file.type.pipe.ts index 8067a55a6..09a982683 100644 --- a/src/common/file/pipes/file.type.pipe.ts +++ b/src/common/file/pipes/file.type.pipe.ts @@ -3,141 +3,51 @@ import { Injectable, UnsupportedMediaTypeException, } from '@nestjs/common'; -import { - ENUM_FILE_AUDIO_MIME, - ENUM_FILE_EXCEL_MIME, - ENUM_FILE_IMAGE_MIME, - ENUM_FILE_VIDEO_MIME, -} from 'src/common/file/constants/file.enum.constant'; +import { ENUM_FILE_MIME } from 'src/common/file/constants/file.enum.constant'; import { ENUM_FILE_STATUS_CODE_ERROR } from 'src/common/file/constants/file.status-code.constant'; import { IFile } from 'src/common/file/interfaces/file.interface'; @Injectable() -export class FileTypeImagePipe implements PipeTransform { - async transform(value: IFile | IFile[]): Promise { - if (!value) { - return; - } - - if (Array.isArray(value)) { - for (const val of value) { - await this.validate(val.mimetype); - } +export class FileTypePipe implements PipeTransform { + constructor( + readonly type: ENUM_FILE_MIME[], + readonly field?: string + ) {} + async transform(value: any): Promise { + if (!value) { return value; } - const file = value as IFile; - await this.validate(file.mimetype); - - return value; - } - - async validate(mimetype: string): Promise { - if ( - !Object.values(ENUM_FILE_IMAGE_MIME).find( - (val) => val === mimetype.toLowerCase() - ) - ) { - throw new UnsupportedMediaTypeException({ - statusCode: ENUM_FILE_STATUS_CODE_ERROR.FILE_EXTENSION_ERROR, - message: 'file.error.mimeInvalid', - }); - } - - return; - } -} - -@Injectable() -export class FileTypeVideoPipe implements PipeTransform { - async transform(value: IFile | IFile[]): Promise { - if (Array.isArray(value)) { - for (const val of value) { - await this.validate(val.mimetype); - } - - return value; + let fieldValue = value; + if (this.field) { + fieldValue = value[this.field]; } - const file = value as IFile; - await this.validate(file.mimetype); - - return value; - } - - async validate(mimetype: string): Promise { if ( - !Object.values(ENUM_FILE_VIDEO_MIME).find( - (val) => val === mimetype.toLowerCase() - ) + !fieldValue || + Object.keys(fieldValue).length === 0 || + (Array.isArray(fieldValue) && fieldValue.length === 0) ) { - throw new UnsupportedMediaTypeException({ - statusCode: ENUM_FILE_STATUS_CODE_ERROR.FILE_EXTENSION_ERROR, - message: 'file.error.mimeInvalid', - }); - } - - return; - } -} - -@Injectable() -export class FileTypeAudioPipe implements PipeTransform { - async transform(value: IFile | IFile[]): Promise { - if (Array.isArray(value)) { - for (const val of value) { - await this.validate(val.mimetype); - } - return value; } - const file = value as IFile; - await this.validate(file.mimetype); - - return value; - } - - async validate(mimetype: string): Promise { - if ( - !Object.values(ENUM_FILE_AUDIO_MIME).find( - (val) => val === mimetype.toLowerCase() - ) - ) { - throw new UnsupportedMediaTypeException({ - statusCode: ENUM_FILE_STATUS_CODE_ERROR.FILE_EXTENSION_ERROR, - message: 'file.error.mimeInvalid', - }); - } - - return; - } -} - -@Injectable() -export class FileTypeExcelPipe implements PipeTransform { - async transform(value: IFile | IFile[]): Promise { - if (Array.isArray(value)) { - for (const val of value) { + if (Array.isArray(fieldValue)) { + for (const val of fieldValue) { await this.validate(val.mimetype); } return value; } - const file: IFile = value as IFile; + const file: IFile = fieldValue as IFile; await this.validate(file.mimetype); return value; } async validate(mimetype: string): Promise { - if ( - !Object.values(ENUM_FILE_EXCEL_MIME).find( - (val) => val === mimetype.toLowerCase() - ) - ) { + if (!this.type.find((val) => val === mimetype.toLowerCase())) { throw new UnsupportedMediaTypeException({ statusCode: ENUM_FILE_STATUS_CODE_ERROR.FILE_EXTENSION_ERROR, message: 'file.error.mimeInvalid', diff --git a/src/common/helper/constants/helper.enum.constant.ts b/src/common/helper/constants/helper.enum.constant.ts index 49a24a11a..f3c04fe88 100644 --- a/src/common/helper/constants/helper.enum.constant.ts +++ b/src/common/helper/constants/helper.enum.constant.ts @@ -16,6 +16,7 @@ export enum ENUM_HELPER_DATE_FORMAT { MINUTE_SHORT = 'm', SECOND_LONG = 'ss', SECOND_SHORT = 's', + TIMEZONE = 'Z', } export enum ENUM_HELPER_DATE_DIFF { diff --git a/src/common/helper/interfaces/helper.date-service.interface.ts b/src/common/helper/interfaces/helper.date-service.interface.ts index 4cb5fb21b..54bf0c8a8 100644 --- a/src/common/helper/interfaces/helper.date-service.interface.ts +++ b/src/common/helper/interfaces/helper.date-service.interface.ts @@ -5,6 +5,7 @@ import { IHelperDateOptionsDiff, IHelperDateOptionsFormat, IHelperDateOptionsForward, + IHelperDateSetTimeOptions, IHelperDateStartAndEnd, IHelperDateStartAndEndDate, } from 'src/common/helper/interfaces/helper.interface'; @@ -67,6 +68,18 @@ export interface IHelperDateService { startOfYear(date?: Date): Date; endOfDay(date?: Date): Date; startOfDay(date?: Date): Date; + setTime( + date: Date, + { hour, minute, second }: IHelperDateSetTimeOptions + ): Date; + addTime( + date: Date, + { hour, minute, second }: IHelperDateSetTimeOptions + ): Date; + minusTime( + date: Date, + { hour, minute, second }: IHelperDateSetTimeOptions + ): Date; extractDate(date: string | Date | number): IHelperDateExtractDate; getStartAndEndDate( options?: IHelperDateStartAndEnd diff --git a/src/common/helper/interfaces/helper.interface.ts b/src/common/helper/interfaces/helper.interface.ts index 90a2f7139..3d6c67cd5 100644 --- a/src/common/helper/interfaces/helper.interface.ts +++ b/src/common/helper/interfaces/helper.interface.ts @@ -27,6 +27,12 @@ export interface IHelperStringRandomOptions { } // Helper Date +export interface IHelperDateSetTimeOptions { + hour?: number; + minute?: number; + second?: number; +} + export interface IHelperDateStartAndEnd { month?: number; year?: number; diff --git a/src/common/helper/services/helper.date.service.ts b/src/common/helper/services/helper.date.service.ts index 8c8c547b1..e4699967a 100644 --- a/src/common/helper/services/helper.date.service.ts +++ b/src/common/helper/services/helper.date.service.ts @@ -14,6 +14,7 @@ import { IHelperDateOptionsFormat, IHelperDateOptionsForward, IHelperDateOptionsRoundDown, + IHelperDateSetTimeOptions, IHelperDateStartAndEnd, IHelperDateStartAndEndDate, } from 'src/common/helper/interfaces/helper.interface'; @@ -231,6 +232,49 @@ export class HelperDateService implements IHelperDateService { return moment(date).tz(this.defTz).startOf('day').toDate(); } + setTime( + date: Date, + { hour, minute, second }: IHelperDateSetTimeOptions + ): Date { + return moment(date) + .tz(this.defTz) + .set({ + h: hour, + m: minute, + second: second, + ms: 0, + }) + .toDate(); + } + + addTime( + date: Date, + { hour, minute, second }: IHelperDateSetTimeOptions + ): Date { + return moment(date) + .tz(this.defTz) + .add({ + h: hour, + m: minute, + second: second, + }) + .toDate(); + } + + minusTime( + date: Date, + { hour, minute, second }: IHelperDateSetTimeOptions + ): Date { + return moment(date) + .tz(this.defTz) + .subtract({ + h: hour, + m: minute, + second: second, + }) + .toDate(); + } + extractDate(date: string | Date | number): IHelperDateExtractDate { const newDate = this.create(date); const day: string = this.format(newDate, { diff --git a/src/common/response/interceptors/response.file.interceptor.ts b/src/common/response/interceptors/response.file.interceptor.ts index 1e4b2a990..8d024113e 100644 --- a/src/common/response/interceptors/response.file.interceptor.ts +++ b/src/common/response/interceptors/response.file.interceptor.ts @@ -24,7 +24,6 @@ import { } from 'src/common/response/constants/response.constant'; import { WorkBook } from 'xlsx'; import { ENUM_HELPER_FILE_TYPE } from 'src/common/helper/constants/helper.enum.constant'; -import { ENUM_FILE_EXCEL_MIME } from 'src/common/file/constants/file.enum.constant'; import { HelperDateService } from 'src/common/helper/services/helper.date.service'; @Injectable() @@ -84,10 +83,7 @@ export class ResponseFileInterceptor implements NestInterceptor> { // set headers const timestamp = this.helperDateService.timestamp(); response - .setHeader( - 'Content-Type', - ENUM_FILE_EXCEL_MIME[fileType.toUpperCase()] - ) + .setHeader('Content-Type', fileType.toUpperCase()) .setHeader( 'Content-Disposition', `attachment; filename=export-${timestamp}.${fileType}` diff --git a/src/configs/app.config.ts b/src/configs/app.config.ts index ecb55dc04..5da8c5e93 100644 --- a/src/configs/app.config.ts +++ b/src/configs/app.config.ts @@ -1,9 +1,7 @@ import { registerAs } from '@nestjs/config'; import { version } from 'package.json'; -import { - APP_TZ, - ENUM_APP_ENVIRONMENT, -} from 'src/app/constants/app.enum.constant'; +import { ENUM_APP_ENVIRONMENT } from 'src/app/constants/app.enum.constant'; +import { APP_TZ } from 'src/app/constants/app.constant'; export default registerAs( 'app', @@ -12,6 +10,7 @@ export default registerAs( name: process.env.APP_NAME ?? 'ack', env: process.env.APP_ENV ?? ENUM_APP_ENVIRONMENT.DEVELOPMENT, + tz: process.env.APP_TZ ?? APP_TZ, repoVersion: version, diff --git a/src/configs/user.config.ts b/src/configs/user.config.ts index c30422b9f..eddde4aa9 100644 --- a/src/configs/user.config.ts +++ b/src/configs/user.config.ts @@ -6,8 +6,8 @@ export default registerAs( (): Record => ({ uploadPath: process.env.NODE_ENV === ENUM_APP_ENVIRONMENT.PRODUCTION - ? '/user' - : '/test/user', + ? '/user/{user}' + : '/test/user/{user}', mobileNumberCountryCodeAllowed: ['628'], }) ); diff --git a/src/modules/role/controllers/role.admin.controller.ts b/src/modules/role/controllers/role.admin.controller.ts index ac0db30b8..37c0c2cfb 100644 --- a/src/modules/role/controllers/role.admin.controller.ts +++ b/src/modules/role/controllers/role.admin.controller.ts @@ -118,14 +118,17 @@ export class RoleAdminController { ...type, }; - const roles: RoleEntity[] = await this.roleService.findAll(find, { - paging: { - limit: _limit, - offset: _offset, - }, - order: _order, - plainObject: true, - }); + const roles: RoleEntity[] = await this.roleService.findAll( + find, + { + paging: { + limit: _limit, + offset: _offset, + }, + order: _order, + plainObject: true, + } + ); const total: number = await this.roleService.getTotal(find); const totalPage: number = this.paginationService.totalPage( diff --git a/src/modules/role/interfaces/role.service.interface.ts b/src/modules/role/interfaces/role.service.interface.ts index 8faf64321..740bb5562 100644 --- a/src/modules/role/interfaces/role.service.interface.ts +++ b/src/modules/role/interfaces/role.service.interface.ts @@ -11,16 +11,13 @@ import { import { RoleCreateDto } from 'src/modules/role/dtos/role.create.dto'; import { RoleUpdatePermissionDto } from 'src/modules/role/dtos/role.update-permission.dto'; import { RoleUpdateDto } from 'src/modules/role/dtos/role.update.dto'; -import { - RoleDoc, - RoleEntity, -} from 'src/modules/role/repository/entities/role.entity'; +import { RoleDoc } from 'src/modules/role/repository/entities/role.entity'; export interface IRoleService { - findAll( + findAll( find?: Record, options?: IDatabaseFindAllOptions - ): Promise; + ): Promise; findOneById( _id: string, options?: IDatabaseFindOneOptions diff --git a/src/modules/role/services/role.service.ts b/src/modules/role/services/role.service.ts index 14a66436b..c7276acca 100644 --- a/src/modules/role/services/role.service.ts +++ b/src/modules/role/services/role.service.ts @@ -23,11 +23,11 @@ import { RoleRepository } from 'src/modules/role/repository/repositories/role.re export class RoleService implements IRoleService { constructor(private readonly roleRepository: RoleRepository) {} - async findAll( + async findAll( find?: Record, options?: IDatabaseFindAllOptions - ): Promise { - return this.roleRepository.findAll(find, options); + ): Promise { + return this.roleRepository.findAll(find, options); } async findOneById( diff --git a/src/modules/setting/controllers/setting.admin.controller.ts b/src/modules/setting/controllers/setting.admin.controller.ts index f6afdd18e..61cb080c1 100644 --- a/src/modules/setting/controllers/setting.admin.controller.ts +++ b/src/modules/setting/controllers/setting.admin.controller.ts @@ -1,23 +1,57 @@ -import { BadRequestException, Body, Controller, Put } from '@nestjs/common'; +import { + BadRequestException, + Body, + Controller, + Get, + Put, +} from '@nestjs/common'; import { ApiTags } from '@nestjs/swagger'; import { ApiKeyPublicProtected } from 'src/common/api-key/decorators/api-key.decorator'; import { AuthJwtAdminAccessProtected } from 'src/common/auth/decorators/auth.jwt.decorator'; +import { PaginationQuery } from 'src/common/pagination/decorators/pagination.decorator'; +import { PaginationListDto } from 'src/common/pagination/dtos/pagination.list.dto'; +import { PaginationService } from 'src/common/pagination/services/pagination.service'; import { ENUM_POLICY_ACTION, ENUM_POLICY_SUBJECT, } from 'src/common/policy/constants/policy.enum.constant'; import { PolicyAbilityProtected } from 'src/common/policy/decorators/policy.decorator'; import { RequestParamGuard } from 'src/common/request/decorators/request.decorator'; -import { Response } from 'src/common/response/decorators/response.decorator'; -import { IResponse } from 'src/common/response/interfaces/response.interface'; +import { + Response, + ResponsePaging, +} from 'src/common/response/decorators/response.decorator'; +import { + IResponse, + IResponsePaging, +} from 'src/common/response/interfaces/response.interface'; import { ResponseIdSerialization } from 'src/common/response/serializations/response.id.serialization'; +import { + SETTING_DEFAULT_AVAILABLE_ORDER_BY, + SETTING_DEFAULT_AVAILABLE_SEARCH, + SETTING_DEFAULT_ORDER_BY, + SETTING_DEFAULT_ORDER_DIRECTION, + SETTING_DEFAULT_PER_PAGE, +} from 'src/modules/setting/constants/setting.list.constant'; import { ENUM_SETTING_STATUS_CODE_ERROR } from 'src/modules/setting/constants/setting.status-code.constant'; -import { SettingAdminUpdateGuard } from 'src/modules/setting/decorators/setting.admin.decorator'; +import { + SettingAdminGetGuard, + SettingAdminUpdateGuard, +} from 'src/modules/setting/decorators/setting.admin.decorator'; import { GetSetting } from 'src/modules/setting/decorators/setting.decorator'; -import { SettingAdminUpdateDoc } from 'src/modules/setting/docs/setting.admin.doc'; +import { + SettingAdminGetDoc, + SettingAdminListDoc, + SettingAdminUpdateDoc, +} from 'src/modules/setting/docs/setting.admin.doc'; import { SettingRequestDto } from 'src/modules/setting/dtos/setting.request.dto'; import { SettingUpdateValueDto } from 'src/modules/setting/dtos/setting.update-value.dto'; -import { SettingDoc } from 'src/modules/setting/repository/entities/setting.entity'; +import { + SettingDoc, + SettingEntity, +} from 'src/modules/setting/repository/entities/setting.entity'; +import { SettingGetSerialization } from 'src/modules/setting/serializations/setting.get.serialization'; +import { SettingListSerialization } from 'src/modules/setting/serializations/setting.list.serialization'; import { SettingService } from 'src/modules/setting/services/setting.service'; @ApiTags('modules.admin.setting') @@ -26,7 +60,63 @@ import { SettingService } from 'src/modules/setting/services/setting.service'; path: '/setting', }) export class SettingAdminController { - constructor(private readonly settingService: SettingService) {} + constructor( + private readonly settingService: SettingService, + private readonly paginationService: PaginationService + ) {} + + @SettingAdminListDoc() + @ResponsePaging('setting.list', { + serialization: SettingListSerialization, + }) + @ApiKeyPublicProtected() + @Get('/list') + async list( + @PaginationQuery( + SETTING_DEFAULT_PER_PAGE, + SETTING_DEFAULT_ORDER_BY, + SETTING_DEFAULT_ORDER_DIRECTION, + SETTING_DEFAULT_AVAILABLE_SEARCH, + SETTING_DEFAULT_AVAILABLE_ORDER_BY + ) + { _search, _limit, _offset, _order }: PaginationListDto + ): Promise { + const find: Record = { + ..._search, + }; + + const settings: SettingEntity[] = + await this.settingService.findAll(find, { + paging: { + limit: _limit, + offset: _offset, + }, + order: _order, + plainObject: true, + }); + const total: number = await this.settingService.getTotal(find); + const totalPage: number = this.paginationService.totalPage( + total, + _limit + ); + + return { + _pagination: { total, totalPage }, + data: settings, + }; + } + + @SettingAdminGetDoc() + @Response('setting.get', { + serialization: SettingGetSerialization, + }) + @SettingAdminGetGuard() + @ApiKeyPublicProtected() + @RequestParamGuard(SettingRequestDto) + @Get('get/:setting') + async get(@GetSetting(true) setting: SettingEntity): Promise { + return { data: setting }; + } @SettingAdminUpdateDoc() @Response('setting.update', { diff --git a/src/modules/setting/controllers/setting.public.controller.ts b/src/modules/setting/controllers/setting.public.controller.ts index f4aecb467..31b00a2d8 100644 --- a/src/modules/setting/controllers/setting.public.controller.ts +++ b/src/modules/setting/controllers/setting.public.controller.ts @@ -7,38 +7,12 @@ import { FILE_SIZE_MEDIUM_IN_BYTES, } from 'src/common/file/constants/file.constant'; import { MessageService } from 'src/common/message/services/message.service'; -import { PaginationQuery } from 'src/common/pagination/decorators/pagination.decorator'; -import { PaginationListDto } from 'src/common/pagination/dtos/pagination.list.dto'; -import { PaginationService } from 'src/common/pagination/services/pagination.service'; -import { RequestParamGuard } from 'src/common/request/decorators/request.decorator'; -import { - Response, - ResponsePaging, -} from 'src/common/response/decorators/response.decorator'; -import { - IResponse, - IResponsePaging, -} from 'src/common/response/interfaces/response.interface'; -import { - SETTING_DEFAULT_AVAILABLE_ORDER_BY, - SETTING_DEFAULT_AVAILABLE_SEARCH, - SETTING_DEFAULT_ORDER_BY, - SETTING_DEFAULT_ORDER_DIRECTION, - SETTING_DEFAULT_PER_PAGE, -} from 'src/modules/setting/constants/setting.list.constant'; -import { GetSetting } from 'src/modules/setting/decorators/setting.decorator'; -import { SettingPublicGetGuard } from 'src/modules/setting/decorators/setting.public.decorator'; -import { - SettingPublicCoreDoc, - SettingPublicGetDoc, - SettingPublicListDoc, -} from 'src/modules/setting/docs/setting.public.doc'; -import { SettingRequestDto } from 'src/modules/setting/dtos/setting.request.dto'; -import { SettingEntity } from 'src/modules/setting/repository/entities/setting.entity'; +import { Response } from 'src/common/response/decorators/response.decorator'; +import { IResponse } from 'src/common/response/interfaces/response.interface'; +import { SettingPublicCoreDoc } from 'src/modules/setting/docs/setting.public.doc'; import { SettingCoreSerialization } from 'src/modules/setting/serializations/setting.core.serialization'; import { SettingFileSerialization } from 'src/modules/setting/serializations/setting.file.serialization'; -import { SettingGetSerialization } from 'src/modules/setting/serializations/setting.get.serialization'; -import { SettingListSerialization } from 'src/modules/setting/serializations/setting.list.serialization'; +import { SettingTimezoneSerialization } from 'src/modules/setting/serializations/setting.timezone.serialization'; import { SettingService } from 'src/modules/setting/services/setting.service'; @ApiTags('modules.public.setting') @@ -49,65 +23,9 @@ import { SettingService } from 'src/modules/setting/services/setting.service'; export class SettingPublicController { constructor( private readonly settingService: SettingService, - private readonly messageService: MessageService, - private readonly paginationService: PaginationService + private readonly messageService: MessageService ) {} - @SettingPublicListDoc() - @ResponsePaging('setting.list', { - serialization: SettingListSerialization, - }) - @ApiKeyPublicProtected() - @Get('/list') - async list( - @PaginationQuery( - SETTING_DEFAULT_PER_PAGE, - SETTING_DEFAULT_ORDER_BY, - SETTING_DEFAULT_ORDER_DIRECTION, - SETTING_DEFAULT_AVAILABLE_SEARCH, - SETTING_DEFAULT_AVAILABLE_ORDER_BY - ) - { _search, _limit, _offset, _order }: PaginationListDto - ): Promise { - const find: Record = { - ..._search, - }; - - const settings: SettingEntity[] = await this.settingService.findAll( - find, - { - paging: { - limit: _limit, - offset: _offset, - }, - order: _order, - plainObject: true, - } - ); - const total: number = await this.settingService.getTotal(find); - const totalPage: number = this.paginationService.totalPage( - total, - _limit - ); - - return { - _pagination: { total, totalPage }, - data: settings, - }; - } - - @SettingPublicGetDoc() - @Response('setting.get', { - serialization: SettingGetSerialization, - }) - @SettingPublicGetGuard() - @ApiKeyPublicProtected() - @RequestParamGuard(SettingRequestDto) - @Get('get/:setting') - async get(@GetSetting(true) setting: SettingEntity): Promise { - return { data: setting }; - } - @SettingPublicCoreDoc() @Response('setting.core', { serialization: SettingCoreSerialization, @@ -117,6 +35,15 @@ export class SettingPublicController { async getUserMaxCertificate(): Promise { const languages: string[] = this.messageService.getAvailableLanguages(); + const tz: string = await this.settingService.getTimezone(); + const timezoneOffset: string = + await this.settingService.getTimezoneOffset(); + + const timezone: SettingTimezoneSerialization = { + timezone: tz, + timezoneOffset: timezoneOffset, + }; + const file: SettingFileSerialization = { sizeInBytes: FILE_SIZE_IN_BYTES, sizeMediumInBytes: FILE_SIZE_MEDIUM_IN_BYTES, @@ -127,6 +54,7 @@ export class SettingPublicController { data: { languages, file, + timezone, }, }; } diff --git a/src/modules/setting/decorators/setting.admin.decorator.ts b/src/modules/setting/decorators/setting.admin.decorator.ts index 1d3999348..151c31f2d 100644 --- a/src/modules/setting/decorators/setting.admin.decorator.ts +++ b/src/modules/setting/decorators/setting.admin.decorator.ts @@ -2,6 +2,12 @@ import { applyDecorators, UseGuards } from '@nestjs/common'; import { SettingNotFoundGuard } from 'src/modules/setting/guards/setting.not-found.guard'; import { SettingPutToRequestGuard } from 'src/modules/setting/guards/setting.put-to-request.guard'; +export function SettingAdminGetGuard(): MethodDecorator { + return applyDecorators( + UseGuards(SettingPutToRequestGuard, SettingNotFoundGuard) + ); +} + export function SettingAdminUpdateGuard(): MethodDecorator { return applyDecorators( UseGuards(SettingPutToRequestGuard, SettingNotFoundGuard) diff --git a/src/modules/setting/decorators/setting.public.decorator.ts b/src/modules/setting/decorators/setting.public.decorator.ts deleted file mode 100644 index 71c0c3a13..000000000 --- a/src/modules/setting/decorators/setting.public.decorator.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { UseGuards, applyDecorators } from '@nestjs/common'; -import { SettingNotFoundGuard } from 'src/modules/setting/guards/setting.not-found.guard'; -import { SettingPutToRequestGuard } from 'src/modules/setting/guards/setting.put-to-request.guard'; - -export function SettingPublicGetGuard(): MethodDecorator { - return applyDecorators( - UseGuards(SettingPutToRequestGuard, SettingNotFoundGuard) - ); -} diff --git a/src/modules/setting/docs/setting.admin.doc.ts b/src/modules/setting/docs/setting.admin.doc.ts index 7a91d1921..19144c6cf 100644 --- a/src/modules/setting/docs/setting.admin.doc.ts +++ b/src/modules/setting/docs/setting.admin.doc.ts @@ -8,11 +8,47 @@ import { DocRequest, DocGuard, DocResponse, + DocResponsePaging, } from 'src/common/doc/decorators/doc.decorator'; import { ResponseIdSerialization } from 'src/common/response/serializations/response.id.serialization'; import { SettingDocParamsId } from 'src/modules/setting/constants/setting.doc.constant'; import { ENUM_SETTING_STATUS_CODE_ERROR } from 'src/modules/setting/constants/setting.status-code.constant'; import { SettingUpdateValueDto } from 'src/modules/setting/dtos/setting.update-value.dto'; +import { SettingGetSerialization } from 'src/modules/setting/serializations/setting.get.serialization'; +import { SettingListSerialization } from 'src/modules/setting/serializations/setting.list.serialization'; + +export function SettingAdminListDoc(): MethodDecorator { + return applyDecorators( + Doc({ + summary: 'get list of settings', + }), + DocAuth({ apiKey: true }), + DocResponsePaging('setting.list', { + serialization: SettingListSerialization, + }) + ); +} + +export function SettingAdminGetDoc(): MethodDecorator { + return applyDecorators( + Doc({ summary: 'get detail a setting' }), + DocRequest({ + params: SettingDocParamsId, + }), + DocResponse('setting.get', { + serialization: SettingGetSerialization, + }), + DocAuth({ apiKey: true }), + DocErrorGroup([ + DocDefault({ + httpStatus: HttpStatus.NOT_FOUND, + statusCode: + ENUM_SETTING_STATUS_CODE_ERROR.SETTING_NOT_FOUND_ERROR, + messagePath: 'setting.error.notFound', + }), + ]) + ); +} export function SettingAdminUpdateDoc(): MethodDecorator { return applyDecorators( diff --git a/src/modules/setting/docs/setting.public.doc.ts b/src/modules/setting/docs/setting.public.doc.ts index 70b05e10e..14ba0bc53 100644 --- a/src/modules/setting/docs/setting.public.doc.ts +++ b/src/modules/setting/docs/setting.public.doc.ts @@ -1,50 +1,7 @@ -import { HttpStatus, applyDecorators } from '@nestjs/common'; -import { DocAuth, DocDefault } from 'src/common/doc/decorators/doc.decorator'; -import { - Doc, - DocErrorGroup, - DocRequest, - DocResponse, - DocResponsePaging, -} from 'src/common/doc/decorators/doc.decorator'; -import { SettingDocParamsId } from 'src/modules/setting/constants/setting.doc.constant'; -import { ENUM_SETTING_STATUS_CODE_ERROR } from 'src/modules/setting/constants/setting.status-code.constant'; +import { applyDecorators } from '@nestjs/common'; +import { DocAuth } from 'src/common/doc/decorators/doc.decorator'; +import { Doc, DocResponse } from 'src/common/doc/decorators/doc.decorator'; import { SettingCoreSerialization } from 'src/modules/setting/serializations/setting.core.serialization'; -import { SettingGetSerialization } from 'src/modules/setting/serializations/setting.get.serialization'; -import { SettingListSerialization } from 'src/modules/setting/serializations/setting.list.serialization'; - -export function SettingPublicListDoc(): MethodDecorator { - return applyDecorators( - Doc({ - summary: 'get list of settings', - }), - DocAuth({ apiKey: true }), - DocResponsePaging('setting.list', { - serialization: SettingListSerialization, - }) - ); -} - -export function SettingPublicGetDoc(): MethodDecorator { - return applyDecorators( - Doc({ summary: 'get detail a setting' }), - DocRequest({ - params: SettingDocParamsId, - }), - DocResponse('setting.get', { - serialization: SettingGetSerialization, - }), - DocAuth({ apiKey: true }), - DocErrorGroup([ - DocDefault({ - httpStatus: HttpStatus.NOT_FOUND, - statusCode: - ENUM_SETTING_STATUS_CODE_ERROR.SETTING_NOT_FOUND_ERROR, - messagePath: 'setting.error.notFound', - }), - ]) - ); -} export function SettingPublicCoreDoc(): MethodDecorator { return applyDecorators( diff --git a/src/modules/setting/interfaces/setting.service.interface.ts b/src/modules/setting/interfaces/setting.service.interface.ts index f8744b5f2..e7606101e 100644 --- a/src/modules/setting/interfaces/setting.service.interface.ts +++ b/src/modules/setting/interfaces/setting.service.interface.ts @@ -9,16 +9,13 @@ import { import { ENUM_SETTING_DATA_TYPE } from 'src/modules/setting/constants/setting.enum.constant'; import { SettingCreateDto } from 'src/modules/setting/dtos/setting.create.dto'; import { SettingUpdateValueDto } from 'src/modules/setting/dtos/setting.update-value.dto'; -import { - SettingDoc, - SettingEntity, -} from 'src/modules/setting/repository/entities/setting.entity'; +import { SettingDoc } from 'src/modules/setting/repository/entities/setting.entity'; export interface ISettingService { - findAll( + findAll( find?: Record, options?: IDatabaseFindAllOptions - ): Promise; + ): Promise; findOneById( _id: string, options?: IDatabaseFindOneOptions @@ -50,4 +47,5 @@ export interface ISettingService { find: Record, options?: IDatabaseManyOptions ): Promise; + getTimezone(): Promise; } diff --git a/src/modules/setting/serializations/setting.core.serialization.ts b/src/modules/setting/serializations/setting.core.serialization.ts index 7810f7e4e..662689419 100644 --- a/src/modules/setting/serializations/setting.core.serialization.ts +++ b/src/modules/setting/serializations/setting.core.serialization.ts @@ -2,6 +2,7 @@ import { ApiProperty, getSchemaPath } from '@nestjs/swagger'; import { Type } from 'class-transformer'; import { SettingFileSerialization } from 'src/modules/setting/serializations/setting.file.serialization'; import { SettingLanguageSerialization } from 'src/modules/setting/serializations/setting.language.serialization'; +import { SettingTimezoneSerialization } from 'src/modules/setting/serializations/setting.timezone.serialization'; export class SettingCoreSerialization extends SettingLanguageSerialization { @ApiProperty({ @@ -11,4 +12,12 @@ export class SettingCoreSerialization extends SettingLanguageSerialization { }) @Type(() => SettingFileSerialization) file: SettingFileSerialization; + + @ApiProperty({ + required: true, + type: () => SettingTimezoneSerialization, + oneOf: [{ $ref: getSchemaPath(SettingTimezoneSerialization) }], + }) + @Type(() => SettingTimezoneSerialization) + timezone: SettingTimezoneSerialization; } diff --git a/src/modules/setting/serializations/setting.timezone.serialization.ts b/src/modules/setting/serializations/setting.timezone.serialization.ts new file mode 100644 index 000000000..d96d7feaf --- /dev/null +++ b/src/modules/setting/serializations/setting.timezone.serialization.ts @@ -0,0 +1,13 @@ +import { ApiProperty } from '@nestjs/swagger'; + +export class SettingTimezoneSerialization { + @ApiProperty({ + required: true, + }) + readonly timezone: string; + + @ApiProperty({ + required: true, + }) + readonly timezoneOffset: string; +} diff --git a/src/modules/setting/services/setting.service.ts b/src/modules/setting/services/setting.service.ts index f86f74c7a..6b4ea7803 100644 --- a/src/modules/setting/services/setting.service.ts +++ b/src/modules/setting/services/setting.service.ts @@ -1,4 +1,5 @@ import { Injectable } from '@nestjs/common'; +import { ConfigService } from '@nestjs/config'; import { IDatabaseCreateOptions, IDatabaseFindAllOptions, @@ -7,6 +8,8 @@ import { IDatabaseManyOptions, IDatabaseSaveOptions, } from 'src/common/database/interfaces/database.interface'; +import { ENUM_HELPER_DATE_FORMAT } from 'src/common/helper/constants/helper.enum.constant'; +import { HelperDateService } from 'src/common/helper/services/helper.date.service'; import { HelperNumberService } from 'src/common/helper/services/helper.number.service'; import { ENUM_SETTING_DATA_TYPE } from 'src/modules/setting/constants/setting.enum.constant'; import { SettingCreateDto } from 'src/modules/setting/dtos/setting.create.dto'; @@ -20,16 +23,27 @@ import { SettingRepository } from 'src/modules/setting/repository/repositories/s @Injectable() export class SettingService implements ISettingService { + private readonly timezone: string; + private readonly timezoneOffset: string; + constructor( private readonly settingRepository: SettingRepository, - private readonly helperNumberService: HelperNumberService - ) {} + private readonly helperNumberService: HelperNumberService, + private readonly configService: ConfigService, + private readonly helperDateService: HelperDateService + ) { + this.timezone = this.configService.get('app.tz'); + this.timezoneOffset = this.helperDateService.format( + this.helperDateService.create(), + { format: ENUM_HELPER_DATE_FORMAT.TIMEZONE } + ); + } - async findAll( + async findAll( find?: Record, options?: IDatabaseFindAllOptions - ): Promise { - return this.settingRepository.findAll(find, options); + ): Promise { + return this.settingRepository.findAll(find, options); } async findOneById( @@ -133,4 +147,12 @@ export class SettingService implements ISettingService { ): Promise { return this.settingRepository.deleteMany(find, options); } + + async getTimezone(): Promise { + return this.timezone; + } + + async getTimezoneOffset(): Promise { + return this.timezoneOffset; + } } diff --git a/src/modules/user/controllers/user.admin.controller.ts b/src/modules/user/controllers/user.admin.controller.ts index 3e9c2edb9..ae754e96d 100644 --- a/src/modules/user/controllers/user.admin.controller.ts +++ b/src/modules/user/controllers/user.admin.controller.ts @@ -15,10 +15,7 @@ import { import { ApiTags } from '@nestjs/swagger'; import { AuthService } from 'src/common/auth/services/auth.service'; import { IFileExtract } from 'src/common/file/interfaces/file.interface'; -import { FileExtractPipe } from 'src/common/file/pipes/file.extract.pipe'; import { FileRequiredPipe } from 'src/common/file/pipes/file.required.pipe'; -import { FileTypeExcelPipe } from 'src/common/file/pipes/file.type.pipe'; -import { FileValidationPipe } from 'src/common/file/pipes/file.validation.pipe'; import { ENUM_HELPER_FILE_TYPE } from 'src/common/helper/constants/helper.enum.constant'; import { PaginationService } from 'src/common/pagination/services/pagination.service'; import { RequestParamGuard } from 'src/common/request/decorators/request.decorator'; @@ -95,7 +92,11 @@ import { import { ENUM_USER_SIGN_UP_FROM } from 'src/modules/user/constants/user.enum.constant'; import { ApiKeyPublicProtected } from 'src/common/api-key/decorators/api-key.decorator'; import { EmailService } from 'src/modules/email/services/email.service'; -import { FileUploadSingleMedium } from 'src/common/file/decorators/file.decorator'; +import { FileUploadSingle } from 'src/common/file/decorators/file.decorator'; +import { FileTypePipe } from 'src/common/file/pipes/file.type.pipe'; +import { FileExcelExtractPipe } from 'src/common/file/pipes/file.excel-extract.pipe'; +import { FileExcelValidationPipe } from 'src/common/file/pipes/file.excel-validation.pipe'; +import { ENUM_FILE_MIME } from 'src/common/file/constants/file.enum.constant'; @ApiTags('modules.admin.user') @Controller({ @@ -151,14 +152,15 @@ export class UserAdminController { ...role, }; - const users: IUserEntity[] = await this.userService.findAll(find, { - paging: { - limit: _limit, - offset: _offset, - }, - order: _order, - plainObject: true, - }); + const users: IUserEntity[] = + await this.userService.findAll(find, { + paging: { + limit: _limit, + offset: _offset, + }, + order: _order, + plainObject: true, + }); const total: number = await this.userService.getTotal(find); const totalPage: number = this.paginationService.totalPage( total, @@ -352,7 +354,7 @@ export class UserAdminController { @UserAdminImportDoc() @Response('user.import') - @FileUploadSingleMedium() + @FileUploadSingle() @PolicyAbilityProtected({ subject: ENUM_POLICY_SUBJECT.USER, action: [ @@ -366,10 +368,10 @@ export class UserAdminController { @Post('/import') async import( @UploadedFile( - FileRequiredPipe, - FileTypeExcelPipe, - FileExtractPipe, - new FileValidationPipe(UserImportDto) + new FileRequiredPipe(), + new FileTypePipe([ENUM_FILE_MIME.CSV]), + FileExcelExtractPipe, + new FileExcelValidationPipe(UserImportDto) ) file: IFileExtract ): Promise { @@ -399,12 +401,13 @@ export class UserAdminController { @HttpCode(HttpStatus.OK) @Post('/export') async export(): Promise { - const users: IUserEntity[] = await this.userService.findAll( - {}, - { - plainObject: true, - } - ); + const users: IUserEntity[] = + await this.userService.findAll( + {}, + { + plainObject: true, + } + ); return { data: users }; } diff --git a/src/modules/user/controllers/user.auth.controller.ts b/src/modules/user/controllers/user.auth.controller.ts index b0dc49502..4b28bb85a 100644 --- a/src/modules/user/controllers/user.auth.controller.ts +++ b/src/modules/user/controllers/user.auth.controller.ts @@ -24,9 +24,6 @@ import { IAuthPassword } from 'src/common/auth/interfaces/auth.interface'; import { AuthService } from 'src/common/auth/services/auth.service'; import { AwsS3Serialization } from 'src/common/aws/serializations/aws.s3.serialization'; import { AwsS3Service } from 'src/common/aws/services/aws.s3.service'; -import { IFile } from 'src/common/file/interfaces/file.interface'; -import { FileRequiredPipe } from 'src/common/file/pipes/file.required.pipe'; -import { FileTypeImagePipe } from 'src/common/file/pipes/file.type.pipe'; import { Response } from 'src/common/response/decorators/response.decorator'; import { IResponse } from 'src/common/response/interfaces/response.interface'; import { ENUM_ROLE_STATUS_CODE_ERROR } from 'src/modules/role/constants/role.status-code.constant'; @@ -71,6 +68,11 @@ import { DatabaseConnection } from 'src/common/database/decorators/database.deco import { ENUM_ERROR_STATUS_CODE_ERROR } from 'src/common/error/constants/error.status-code.constant'; import { ApiKeyPublicProtected } from 'src/common/api-key/decorators/api-key.decorator'; import { FileUploadSingle } from 'src/common/file/decorators/file.decorator'; +import { FileRequiredPipe } from 'src/common/file/pipes/file.required.pipe'; +import { FileTypePipe } from 'src/common/file/pipes/file.type.pipe'; +import { ENUM_FILE_MIME } from 'src/common/file/constants/file.enum.constant'; +import { IFile } from 'src/common/file/interfaces/file.interface'; +import { IAwsS3RandomFilename } from 'src/common/aws/interfaces/aws.interface'; @ApiTags('modules.auth.user') @Controller({ @@ -535,23 +537,25 @@ export class UserAuthController { @Post('/profile/upload') async upload( @GetUser() user: UserDoc, - @UploadedFile(FileRequiredPipe, FileTypeImagePipe) + @UploadedFile( + new FileRequiredPipe(), + new FileTypePipe([ + ENUM_FILE_MIME.PNG, + ENUM_FILE_MIME.JPG, + ENUM_FILE_MIME.JPEG, + ]) + ) file: IFile ): Promise { - const filename: string = file.originalname; - const content: Buffer = file.buffer; - const mime: string = filename - .substring(filename.lastIndexOf('.') + 1, filename.length) - .toLowerCase(); - - const path = await this.userService.createPhotoFilename(); + const pathPrefix: string = await this.userService.getUploadPath( + user._id + ); + const randomFilename: IAwsS3RandomFilename = + await this.awsS3Service.createRandomFilename(pathPrefix); const aws: AwsS3Serialization = await this.awsS3Service.putItemInBucket( - `${path.filename}.${mime}`, - content, - { - path: `${path.path}/${user._id}`, - } + file, + randomFilename ); await this.userService.updatePhoto(user, aws); diff --git a/src/modules/user/dtos/user.update-password-attempt.dto.ts b/src/modules/user/dtos/user.update-password-attempt.dto.ts index cb8bb5f74..dfeeb5dd0 100644 --- a/src/modules/user/dtos/user.update-password-attempt.dto.ts +++ b/src/modules/user/dtos/user.update-password-attempt.dto.ts @@ -5,7 +5,7 @@ export class UserUpdatePasswordAttemptDto { @ApiProperty({ required: true, }) - @IsNumber() + @IsNumber({ allowNaN: false, allowInfinity: false }) @IsNotEmpty() passwordAttempt: number; } diff --git a/src/modules/user/interfaces/user.service.interface.ts b/src/modules/user/interfaces/user.service.interface.ts index 80eb24636..2ba409d22 100644 --- a/src/modules/user/interfaces/user.service.interface.ts +++ b/src/modules/user/interfaces/user.service.interface.ts @@ -15,10 +15,7 @@ import { UserImportDto } from 'src/modules/user/dtos/user.import.dto'; import { UserUpdateNameDto } from 'src/modules/user/dtos/user.update-name.dto'; import { UserUpdatePasswordAttemptDto } from 'src/modules/user/dtos/user.update-password-attempt.dto'; import { UserUpdateUsernameDto } from 'src/modules/user/dtos/user.update-username.dto'; -import { - IUserDoc, - IUserEntity, -} from 'src/modules/user/interfaces/user.interface'; +import { IUserDoc } from 'src/modules/user/interfaces/user.interface'; import { UserDoc, UserEntity, @@ -26,10 +23,10 @@ import { import { UserPayloadSerialization } from 'src/modules/user/serializations/user.payload.serialization'; export interface IUserService { - findAll( + findAll( find?: Record, options?: IDatabaseFindAllOptions - ): Promise; + ): Promise; findOneById(_id: string, options?: IDatabaseFindOneOptions): Promise; findOne( find: Record, @@ -131,7 +128,7 @@ export interface IUserService { options?: IDatabaseSaveOptions ): Promise; joinWithRole(repository: UserDoc): Promise; - createPhotoFilename(): Promise>; + getUploadPath(user: string): Promise; payloadSerialization(data: IUserDoc): Promise; deleteMany( find: Record, diff --git a/src/modules/user/repository/entities/user.entity.ts b/src/modules/user/repository/entities/user.entity.ts index ec7d2eec8..eb0e9248c 100644 --- a/src/modules/user/repository/entities/user.entity.ts +++ b/src/modules/user/repository/entities/user.entity.ts @@ -158,6 +158,11 @@ export class UserEntity extends DatabaseMongoUUIDEntityAbstract { completedUrl: String, baseUrl: String, mime: String, + size: Number, + duration: { + required: false, + type: Number, + }, }, }) photo?: AwsS3Serialization; diff --git a/src/modules/user/services/user.service.ts b/src/modules/user/services/user.service.ts index f863666b1..93b2741e8 100644 --- a/src/modules/user/services/user.service.ts +++ b/src/modules/user/services/user.service.ts @@ -17,21 +17,17 @@ import { import { UserRepository } from 'src/modules/user/repository/repositories/user.repository'; import { HelperDateService } from 'src/common/helper/services/helper.date.service'; import { ConfigService } from '@nestjs/config'; -import { HelperStringService } from 'src/common/helper/services/helper.string.service'; import { UserCreateDto } from 'src/modules/user/dtos/user.create.dto'; import { IAuthPassword } from 'src/common/auth/interfaces/auth.interface'; -import { AwsS3Serialization } from 'src/common/aws/serializations/aws.s3.serialization'; import { UserUpdateNameDto } from 'src/modules/user/dtos/user.update-name.dto'; -import { - IUserDoc, - IUserEntity, -} from 'src/modules/user/interfaces/user.interface'; +import { IUserDoc } from 'src/modules/user/interfaces/user.interface'; import { UserPayloadSerialization } from 'src/modules/user/serializations/user.payload.serialization'; import { plainToInstance } from 'class-transformer'; import { RoleEntity } from 'src/modules/role/repository/entities/role.entity'; import { UserImportDto } from 'src/modules/user/dtos/user.import.dto'; import { UserUpdateUsernameDto } from 'src/modules/user/dtos/user.update-username.dto'; import { UserUpdatePasswordAttemptDto } from 'src/modules/user/dtos/user.update-password-attempt.dto'; +import { AwsS3Serialization } from 'src/common/aws/serializations/aws.s3.serialization'; @Injectable() export class UserService implements IUserService { @@ -42,7 +38,6 @@ export class UserService implements IUserService { constructor( private readonly userRepository: UserRepository, private readonly helperDateService: HelperDateService, - private readonly helperStringService: HelperStringService, private readonly configService: ConfigService ) { this.uploadPath = this.configService.get('user.uploadPath'); @@ -52,11 +47,11 @@ export class UserService implements IUserService { ); } - async findAll( + async findAll( find?: Record, options?: IDatabaseFindAllOptions - ): Promise { - return this.userRepository.findAll(find, { + ): Promise { + return this.userRepository.findAll(find, { ...options, join: true, }); @@ -322,13 +317,8 @@ export class UserService implements IUserService { }); } - async createPhotoFilename(): Promise> { - const filename: string = this.helperStringService.random(20); - - return { - path: this.uploadPath, - filename: filename, - }; + async getUploadPath(user: string): Promise { + return this.uploadPath.replace('{user}', user); } async payloadSerialization( diff --git a/src/router/router.module.ts b/src/router/router.module.ts index a8a65ff44..2952315ad 100644 --- a/src/router/router.module.ts +++ b/src/router/router.module.ts @@ -3,8 +3,8 @@ import { RouterModule as NestJsRouterModule } from '@nestjs/core'; import { RoutesAdminModule } from './routes/routes.admin.module'; import { RoutesUserModule } from 'src/router/routes/routes.user.module'; import { RoutesPublicModule } from 'src/router/routes/routes.public.module'; -import { AppController } from 'src/app/controllers/app.controller'; import { RoutesAuthModule } from 'src/router/routes/routes.auth.module'; +import { RoutesServiceModule } from 'src/router/routes/routes.service.module'; @Module({}) export class RouterModule { @@ -22,6 +22,7 @@ export class RouterModule { RoutesUserModule, RoutesAdminModule, RoutesAuthModule, + RoutesServiceModule, NestJsRouterModule.register([ { path: '/public', @@ -39,6 +40,10 @@ export class RouterModule { path: '/auth', module: RoutesAuthModule, }, + { + path: '/service', + module: RoutesServiceModule, + }, ]) ); } @@ -47,7 +52,7 @@ export class RouterModule { module: RouterModule, providers: [], exports: [], - controllers: [AppController], + controllers: [], imports, }; } diff --git a/src/router/routes/routes.service.module.ts b/src/router/routes/routes.service.module.ts new file mode 100644 index 000000000..9a1326951 --- /dev/null +++ b/src/router/routes/routes.service.module.ts @@ -0,0 +1,9 @@ +import { Module } from '@nestjs/common'; + +@Module({ + controllers: [], + providers: [], + exports: [], + imports: [], +}) +export class RoutesServiceModule {} diff --git a/test/aws/aws.s3.service.spec.ts b/test/aws/aws.s3.service.spec.ts index 257801d5f..3d49b2556 100644 --- a/test/aws/aws.s3.service.spec.ts +++ b/test/aws/aws.s3.service.spec.ts @@ -14,8 +14,12 @@ import { import { ConfigService } from '@nestjs/config'; import { Test, TestingModule } from '@nestjs/testing'; import { IAwsS3PutItemOptions } from 'src/common/aws/interfaces/aws.interface'; +import { AwsS3MultipartSerialization } from 'src/common/aws/serializations/aws.s3-multipart.serialization'; import { AwsS3Serialization } from 'src/common/aws/serializations/aws.s3.serialization'; import { AwsS3Service } from 'src/common/aws/services/aws.s3.service'; +import { IFile } from 'src/common/file/interfaces/file.interface'; +import { HelperStringService } from 'src/common/helper/services/helper.string.service'; +import { Readable } from 'stream'; describe('AwsS3Service', () => { const bucket = 'test-bucket'; @@ -27,6 +31,7 @@ describe('AwsS3Service', () => { const moduleRefRef: TestingModule = await Test.createTestingModule({ providers: [ AwsS3Service, + HelperStringService, { provide: ConfigService, useValue: { @@ -149,7 +154,9 @@ describe('AwsS3Service', () => { filename: 'file1.png', completedUrl: 'https://test.com/file1.png', baseUrl: 'https://test.com', - mime: 'PNG', + mime: 'png', + bucket: 'test-bucket', + size: undefined, }, { path: 'folder1', @@ -157,7 +164,9 @@ describe('AwsS3Service', () => { filename: 'file2.png', completedUrl: 'https://test.com/folder1/file2.png', baseUrl: 'https://test.com', - mime: 'PNG', + mime: 'png', + bucket: 'test-bucket', + size: undefined, }, ]; @@ -182,12 +191,14 @@ describe('AwsS3Service', () => { const expected = [ { + bucket: 'test-bucket', path: 'folder1', pathWithFilename: 'folder1/file2.png', filename: 'file2.png', completedUrl: 'https://test.com/folder1/file2.png', baseUrl: 'https://test.com', - mime: 'PNG', + mime: 'png', + size: undefined, }, ]; @@ -242,10 +253,7 @@ describe('AwsS3Service', () => { data as never ); - const result = await service.getItemInBucket( - 'file.png', - '/folder1' - ); + const result = await service.getItemInBucket('/folder1/file.png'); expect(service['s3Client'].send).toHaveBeenCalled(); expect(result).toBe(file); @@ -261,7 +269,7 @@ describe('AwsS3Service', () => { data as never ); - const result = await service.getItemInBucket('file.png', 'folder1'); + const result = await service.getItemInBucket('folder1/file.png'); expect(service['s3Client'].send).toHaveBeenCalled(); expect(result).toBe(file); @@ -298,19 +306,27 @@ describe('AwsS3Service', () => { filename: 'file.png', completedUrl: 'https://test.com/test/file.png', baseUrl: 'https://test.com', - mime: 'PNG', + bucket: 'test-bucket', + mime: 'png', + size: 1, + }; + const file: IFile = { + buffer: Buffer.from('test-content'), + destination: '', + fieldname: '', + mimetype: 'mimetype', + originalname: 'file.png', + path: '', + size: 1, + encoding: 'true', + stream: new Readable(), }; - const content = 'test-content'; const options: IAwsS3PutItemOptions = { acl: 'public-read', path: 'test', }; - const result = await service.putItemInBucket( - 'file.png', - content, - options - ); + const result = await service.putItemInBucket(file, options); expect(service['s3Client'].send).toHaveBeenCalled(); expect(result).toEqual(expected); @@ -323,25 +339,72 @@ describe('AwsS3Service', () => { ); const expected = { + bucket: 'test-bucket', path: 'test', pathWithFilename: 'test/file.png', filename: 'file.png', completedUrl: 'https://test.com/test/file.png', baseUrl: 'https://test.com', - mime: 'PNG', + mime: 'png', + size: 1, + }; + const file: IFile = { + buffer: Buffer.from('test-content'), + destination: '', + fieldname: '', + mimetype: 'mimetype', + originalname: 'file.png', + path: '', + size: 1, + encoding: 'true', + stream: new Readable(), }; - const content = 'test-content'; const options: IAwsS3PutItemOptions = { acl: 'public-read', path: '/test', }; - const result = await service.putItemInBucket( - 'file.png', - content, - options + const result = await service.putItemInBucket(file, options); + + expect(service['s3Client'].send).toHaveBeenCalled(); + expect(result).toEqual(expected); + }); + + it('should accept path, customFilename, and return correct result', async () => { + const data: PutObjectCommandOutput = { $metadata: {} }; + jest.spyOn(service['s3Client'], 'send').mockResolvedValue( + data as never ); + const expected = { + baseUrl: 'https://test.com', + bucket: 'test-bucket', + completedUrl: 'https://test.com/test/asdfgh.png', + filename: 'asdfgh.png', + mime: 'png', + pathWithFilename: 'test/asdfgh.png', + size: 1, + path: 'test', + }; + const file: IFile = { + buffer: Buffer.from('test-content'), + destination: '', + fieldname: '', + mimetype: 'mimetype', + originalname: 'file.png', + path: '', + size: 1, + encoding: 'true', + stream: new Readable(), + }; + const options: IAwsS3PutItemOptions = { + acl: 'public-read', + path: 'test', + customFilename: 'asdfgh', + }; + + const result = await service.putItemInBucket(file, options); + expect(service['s3Client'].send).toHaveBeenCalled(); expect(result).toEqual(expected); }); @@ -352,7 +415,18 @@ describe('AwsS3Service', () => { error as never ); - const result = service.putItemInBucket('file.png', 'test-content'); + const file: IFile = { + buffer: Buffer.from('test-content'), + destination: '', + fieldname: '', + mimetype: 'mimetype', + originalname: 'file.png', + path: '', + size: 1, + encoding: 'true', + stream: new Readable(), + }; + const result = service.putItemInBucket(file); try { await result; @@ -501,19 +575,32 @@ describe('AwsS3Service', () => { data as never ); - const result = await service.createMultiPart( - 'filename.txt', - options - ); + const file: IFile = { + buffer: Buffer.from('test-content'), + destination: '', + fieldname: '', + mimetype: 'mimetype', + originalname: 'file.png', + path: '', + size: 1, + encoding: 'true', + stream: new Readable(), + }; + const result = await service.createMultiPart(file, 2, options); const expected = { - uploadId: '12345', + bucket: 'test-bucket', + completedUrl: 'https://test.com/path/file.png', + filename: 'file.png', + lastPartNumber: 0, + maxPartNumber: 2, + mime: 'png', + parts: [], + pathWithFilename: 'path/file.png', + size: 0, path: 'path', - pathWithFilename: 'path/filename.txt', - filename: 'filename.txt', - completedUrl: 'https://test.com/path/filename.txt', + uploadId: '12345', baseUrl: 'https://test.com', - mime: 'TXT', }; expect(service['s3Client'].send).toHaveBeenCalled(); @@ -533,19 +620,78 @@ describe('AwsS3Service', () => { data as never ); - const result = await service.createMultiPart( - 'filename.txt', - options - ); + const file: IFile = { + buffer: Buffer.from('test-content'), + destination: '', + fieldname: '', + mimetype: 'mimetype', + originalname: 'file.png', + path: '', + size: 1, + encoding: 'true', + stream: new Readable(), + }; + const result = await service.createMultiPart(file, 2, options); const expected = { + bucket: 'test-bucket', + completedUrl: 'https://test.com/path/file.png', + filename: 'file.png', + lastPartNumber: 0, + maxPartNumber: 2, + mime: 'png', + parts: [], + pathWithFilename: 'path/file.png', + size: 0, + path: 'path', uploadId: '12345', + baseUrl: 'https://test.com', + }; + + expect(service['s3Client'].send).toHaveBeenCalled(); + expect(result).toEqual(expected); + }); + + it('should return object multipart upload with customFilename', async () => { + const options: IAwsS3PutItemOptions = { path: 'path', - pathWithFilename: 'path/filename.txt', - filename: 'filename.txt', - completedUrl: 'https://test.com/path/filename.txt', + acl: 'private', + customFilename: '123456', + }; + const data: CreateMultipartUploadCommandOutput = { + $metadata: {}, + UploadId: '12345', + }; + jest.spyOn(service['s3Client'], 'send').mockResolvedValue( + data as never + ); + + const file: IFile = { + buffer: Buffer.from('test-content'), + destination: '', + fieldname: '', + mimetype: 'mimetype', + originalname: 'file.png', + path: '', + size: 1, + encoding: 'true', + stream: new Readable(), + }; + const result = await service.createMultiPart(file, 2, options); + + const expected = { baseUrl: 'https://test.com', - mime: 'TXT', + bucket: 'test-bucket', + completedUrl: 'https://test.com/path/123456.png', + filename: '123456.png', + lastPartNumber: 0, + maxPartNumber: 2, + mime: 'png', + path: 'path', + parts: [], + pathWithFilename: 'path/123456.png', + size: 0, + uploadId: '12345', }; expect(service['s3Client'].send).toHaveBeenCalled(); @@ -558,7 +704,18 @@ describe('AwsS3Service', () => { error as never ); - const result = service.createMultiPart('filename.txt'); + const file: IFile = { + buffer: Buffer.from('test-content'), + destination: '', + fieldname: '', + mimetype: 'mimetype', + originalname: 'file.png', + path: '', + size: 1, + encoding: 'true', + stream: new Readable(), + }; + const result = service.createMultiPart(file, 2); try { await result; @@ -571,8 +728,6 @@ describe('AwsS3Service', () => { describe('uploadPart', () => { it('should return multipart parts object', async () => { - const content = new Blob(['My content']); - const data: UploadPartCommandOutput = { $metadata: {}, ETag: '1', @@ -581,16 +736,27 @@ describe('AwsS3Service', () => { data as never ); - const result = await service.uploadPart( - 'path/filename.txt', - content, - '12345', - 1 - ); + const multipart: AwsS3MultipartSerialization = { + bucket: bucket, + lastPartNumber: 0, + maxPartNumber: 0, + parts: [], + size: 0, + uploadId: '12345', + path: 'path', + pathWithFilename: 'path/filename.txt', + filename: 'filename.txt', + completedUrl: 'https://test.com/path/filename.txt', + baseUrl: 'https://test.com', + mime: 'TXT', + }; + const content = Buffer.from('12345'); + const result = await service.uploadPart(multipart, 1, content); const expected = { - ETag: '1', - PartNumber: 1, + eTag: '1', + partNumber: 1, + size: 5, }; expect(service['s3Client'].send).toHaveBeenCalled(); @@ -603,12 +769,22 @@ describe('AwsS3Service', () => { error as never ); - const result = service.uploadPart( - 'path/filename.txt', - 'My content', - '12345', - 1 - ); + const multipart: AwsS3MultipartSerialization = { + bucket: bucket, + lastPartNumber: 0, + maxPartNumber: 0, + parts: [], + size: 0, + uploadId: '12345', + path: 'path', + pathWithFilename: 'path/filename.txt', + filename: 'filename.txt', + completedUrl: 'https://test.com/path/filename.txt', + baseUrl: 'https://test.com', + mime: 'TXT', + }; + const content = Buffer.from('12345'); + const result = service.uploadPart(multipart, 1, content); try { await result; @@ -628,10 +804,21 @@ describe('AwsS3Service', () => { data as never ); - await service.completeMultipart('path/filename.txt', '12345', [ - { ETag: '1234', PartNumber: 1 }, - { ETag: '5678', PartNumber: 2 }, - ]); + const multipart: AwsS3MultipartSerialization = { + bucket: bucket, + lastPartNumber: 0, + maxPartNumber: 0, + parts: [], + size: 0, + uploadId: '12345', + path: 'path', + pathWithFilename: 'path/filename.txt', + filename: 'filename.txt', + completedUrl: 'https://test.com/path/filename.txt', + baseUrl: 'https://test.com', + mime: 'TXT', + }; + await service.completeMultipart(multipart); expect(service['s3Client'].send).toHaveBeenCalled(); }); @@ -642,14 +829,21 @@ describe('AwsS3Service', () => { error as never ); - const result = service.completeMultipart( - 'path/filename.txt', - '12345', - [ - { ETag: '1234', PartNumber: 1 }, - { ETag: '5678', PartNumber: 2 }, - ] - ); + const multipart: AwsS3MultipartSerialization = { + bucket: bucket, + lastPartNumber: 0, + maxPartNumber: 0, + parts: [], + size: 0, + uploadId: '12345', + path: 'path', + pathWithFilename: 'path/filename.txt', + filename: 'filename.txt', + completedUrl: 'https://test.com/path/filename.txt', + baseUrl: 'https://test.com', + mime: 'TXT', + }; + const result = service.completeMultipart(multipart); try { await result; @@ -669,7 +863,21 @@ describe('AwsS3Service', () => { data as never ); - await service.abortMultipart('path/filename.txt', '12345'); + const multipart: AwsS3MultipartSerialization = { + bucket: bucket, + lastPartNumber: 0, + maxPartNumber: 0, + parts: [], + size: 0, + uploadId: '12345', + path: 'path', + pathWithFilename: 'path/filename.txt', + filename: 'filename.txt', + completedUrl: 'https://test.com/path/filename.txt', + baseUrl: 'https://test.com', + mime: 'TXT', + }; + await service.abortMultipart(multipart); expect(service['s3Client'].send).toHaveBeenCalled(); }); @@ -680,7 +888,21 @@ describe('AwsS3Service', () => { error as never ); - const result = service.abortMultipart('path/filename.txt', '12345'); + const multipart: AwsS3MultipartSerialization = { + bucket: bucket, + lastPartNumber: 0, + maxPartNumber: 0, + parts: [], + size: 0, + uploadId: '12345', + path: 'path', + pathWithFilename: 'path/filename.txt', + filename: 'filename.txt', + completedUrl: 'https://test.com/path/filename.txt', + baseUrl: 'https://test.com', + mime: 'TXT', + }; + const result = service.abortMultipart(multipart); try { await result; @@ -699,7 +921,50 @@ describe('AwsS3Service', () => { const result = await service.getFilenameFromCompletedUrl(completedUrl); - expect(result).toBe(filename); + expect(result).toBe(`/${filename}`); + }); + }); + + describe('createRandomFilename', () => { + it('should return random path and filename', async () => { + const result = await service.createRandomFilename(); + + expect(result).toBe(result); + }); + + it('should return random path and filename with prefix', async () => { + const path: string = 'path'; + + const result = await service.createRandomFilename(path); + + expect(result).toBe(result); + }); + }); + + describe('updateMultiPart', () => { + it('should return updated multipart object', async () => { + const multipart: AwsS3MultipartSerialization = { + bucket: bucket, + lastPartNumber: 0, + maxPartNumber: 0, + parts: [], + size: 0, + uploadId: '12345', + path: 'path', + pathWithFilename: 'path/filename.txt', + filename: 'filename.txt', + completedUrl: 'https://test.com/path/filename.txt', + baseUrl: 'https://test.com', + mime: 'TXT', + }; + const part = { + eTag: '', + partNumber: 0, + size: 0, + }; + const result = await service.updateMultiPart(multipart, part); + + expect(result).toBe(result); }); }); }); diff --git a/test/helper/helper.date.service.spec.ts b/test/helper/helper.date.service.spec.ts index ca8154e3d..4f0765801 100644 --- a/test/helper/helper.date.service.spec.ts +++ b/test/helper/helper.date.service.spec.ts @@ -343,6 +343,45 @@ describe('HelperDateService', () => { }); }); + describe('setTime', () => { + it('should return the date and time', () => { + const date = '2021-01-01T00:00:00.000Z'; + const startDate = service.create(date); + const setTime = service.setTime(startDate, { + hour: 1, + minute: 59, + second: 59, + }); + expect(setTime).toEqual(new Date('2021-01-01T01:59:59.000Z')); + }); + }); + + describe('addTime', () => { + it('should return date adn time added', () => { + const date = '2021-01-01T00:00:00.000Z'; + const startDate = service.create(date); + const setTime = service.addTime(startDate, { + hour: 0, + minute: 10, + second: 0, + }); + expect(setTime).toEqual(new Date('2021-01-01T00:10:00.000Z')); + }); + }); + + describe('minusTime', () => { + it('should return date adn time added', () => { + const date = '2021-01-01T00:00:00.000Z'; + const startDate = service.create(date); + const setTime = service.minusTime(startDate, { + hour: 0, + minute: 10, + second: 0, + }); + expect(setTime).toEqual(new Date('2020-12-31T23:50:00.000Z')); + }); + }); + describe('extractDate', () => { it('should extract day, month, and year from a given date', () => { const date = new Date('2021-01-01'); diff --git a/test/jest.json b/test/jest.json index e6005b691..17b832d54 100644 --- a/test/jest.json +++ b/test/jest.json @@ -28,5 +28,6 @@ ], "transform": { "^.+\\.(t|j)s$": "ts-jest" - } + }, + "modulePathIgnorePatterns": ["/dist"] } diff --git a/yarn.lock b/yarn.lock index b46f356e8..eb5eb7bb1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -26,27 +26,27 @@ rxjs "7.8.1" source-map "0.7.4" -"@angular-devkit/core@16.2.8": - version "16.2.8" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-16.2.8.tgz#db74f3063e7fd573be7dafd022e8dc10e43140c0" - integrity sha512-PTGozYvh1Bin5lB15PwcXa26Ayd17bWGLS3H8Rs0s+04mUDvfNofmweaX1LgumWWy3nCUTDuwHxX10M3G0wE2g== +"@angular-devkit/core@17.0.9": + version "17.0.9" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-17.0.9.tgz#f79ff77fc38e8af1af4694acfb5b480339f073e1" + integrity sha512-r5jqwpWOgowqe9KSDqJ3iSbmsEt2XPjSvRG4DSI2T9s31bReoMtreo8b7wkRa2B3hbcDnstFbn8q27VvJDqRaQ== dependencies: ajv "8.12.0" ajv-formats "2.1.1" jsonc-parser "3.2.0" - picomatch "2.3.1" + picomatch "3.0.1" rxjs "7.8.1" source-map "0.7.4" -"@angular-devkit/schematics-cli@16.2.8": - version "16.2.8" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics-cli/-/schematics-cli-16.2.8.tgz#5945f391d316724d7b49d578932dcb5a25a73649" - integrity sha512-EXURJCzWTVYCipiTT4vxQQOrF63asOUDbeOy3OtiSh7EwIUvxm3BPG6hquJqngEnI/N6bA75NJ1fBhU6Hrh7eA== +"@angular-devkit/schematics-cli@17.0.9": + version "17.0.9" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics-cli/-/schematics-cli-17.0.9.tgz#6ee0ac81b37cab50e60b49a0541508552a75ab7f" + integrity sha512-tznzzB26sy8jVUlV9HhXcbFYZcIIFMAiDMOuyLko2LZFjfoqW+OPvwa1mwAQwvVVSQZVAKvdndFhzwyl/axwFQ== dependencies: - "@angular-devkit/core" "16.2.8" - "@angular-devkit/schematics" "16.2.8" + "@angular-devkit/core" "17.0.9" + "@angular-devkit/schematics" "17.0.9" ansi-colors "4.1.3" - inquirer "8.2.4" + inquirer "9.2.11" symbol-observable "4.0.0" yargs-parser "21.1.1" @@ -61,14 +61,14 @@ ora "5.4.1" rxjs "7.8.1" -"@angular-devkit/schematics@16.2.8": - version "16.2.8" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-16.2.8.tgz#cc11cf6d00cd9131adbede9a99f3a617aedd5bc4" - integrity sha512-MBiKZOlR9/YMdflALr7/7w/BGAfo/BGTrlkqsIB6rDWV1dYiCgxI+033HsiNssLS6RQyCFx/e7JA2aBBzu9zEg== +"@angular-devkit/schematics@17.0.9": + version "17.0.9" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-17.0.9.tgz#8370d21cf0ac0f5f99b7a27fcf626cc5cd682c95" + integrity sha512-5ti7g45F2KjDJS0DbgnOGI1GyKxGpn4XsKTYJFJrSAWj6VpuvPy/DINRrXNuRVo09VPEkqA+IW7QwaG9icptQg== dependencies: - "@angular-devkit/core" "16.2.8" + "@angular-devkit/core" "17.0.9" jsonc-parser "3.2.0" - magic-string "0.30.1" + magic-string "0.30.5" ora "5.4.1" rxjs "7.8.1" @@ -149,494 +149,492 @@ "@aws-sdk/util-utf8-browser" "^3.0.0" tslib "^1.11.1" -"@aws-sdk/client-s3@^3.473.0": - version "3.473.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.473.0.tgz#b98c05a12a0c7ef1fe3fbc343829e12e28b0570d" - integrity sha512-JmQdYFJnlBOv+IKlgkTWLNr58FBBgW5dpRzwsraAp/sy6QcPEFKzf48iOvB9ekvLafpHah+7AaFJ3VptLLBoJw== +"@aws-sdk/client-s3@^3.498.0": + version "3.498.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.498.0.tgz#f5de8a09fc6a0a4ec08b853b561a85d2480f81d2" + integrity sha512-M1nDbKYW04SkPsQafp6JTqfCeiRy4ELHBpX+DRwNmb7MsPy2aBk+rjbREBt233xDCrd8C9HswJhJ18U37KQTgA== dependencies: "@aws-crypto/sha1-browser" "3.0.0" "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.473.0" - "@aws-sdk/core" "3.468.0" - "@aws-sdk/credential-provider-node" "3.470.0" - "@aws-sdk/middleware-bucket-endpoint" "3.470.0" - "@aws-sdk/middleware-expect-continue" "3.468.0" - "@aws-sdk/middleware-flexible-checksums" "3.468.0" - "@aws-sdk/middleware-host-header" "3.468.0" - "@aws-sdk/middleware-location-constraint" "3.468.0" - "@aws-sdk/middleware-logger" "3.468.0" - "@aws-sdk/middleware-recursion-detection" "3.468.0" - "@aws-sdk/middleware-sdk-s3" "3.470.0" - "@aws-sdk/middleware-signing" "3.468.0" - "@aws-sdk/middleware-ssec" "3.468.0" - "@aws-sdk/middleware-user-agent" "3.470.0" - "@aws-sdk/region-config-resolver" "3.470.0" - "@aws-sdk/signature-v4-multi-region" "3.470.0" - "@aws-sdk/types" "3.468.0" - "@aws-sdk/util-endpoints" "3.470.0" - "@aws-sdk/util-user-agent-browser" "3.468.0" - "@aws-sdk/util-user-agent-node" "3.470.0" - "@aws-sdk/xml-builder" "3.472.0" - "@smithy/config-resolver" "^2.0.21" - "@smithy/eventstream-serde-browser" "^2.0.15" - "@smithy/eventstream-serde-config-resolver" "^2.0.15" - "@smithy/eventstream-serde-node" "^2.0.15" - "@smithy/fetch-http-handler" "^2.3.1" - "@smithy/hash-blob-browser" "^2.0.16" - "@smithy/hash-node" "^2.0.17" - "@smithy/hash-stream-node" "^2.0.17" - "@smithy/invalid-dependency" "^2.0.15" - "@smithy/md5-js" "^2.0.17" - "@smithy/middleware-content-length" "^2.0.17" - "@smithy/middleware-endpoint" "^2.2.3" - "@smithy/middleware-retry" "^2.0.24" - "@smithy/middleware-serde" "^2.0.15" - "@smithy/middleware-stack" "^2.0.9" - "@smithy/node-config-provider" "^2.1.8" - "@smithy/node-http-handler" "^2.2.1" - "@smithy/protocol-http" "^3.0.11" - "@smithy/smithy-client" "^2.1.18" - "@smithy/types" "^2.7.0" - "@smithy/url-parser" "^2.0.15" - "@smithy/util-base64" "^2.0.1" - "@smithy/util-body-length-browser" "^2.0.1" - "@smithy/util-body-length-node" "^2.1.0" - "@smithy/util-defaults-mode-browser" "^2.0.22" - "@smithy/util-defaults-mode-node" "^2.0.29" - "@smithy/util-endpoints" "^1.0.7" - "@smithy/util-retry" "^2.0.8" - "@smithy/util-stream" "^2.0.23" - "@smithy/util-utf8" "^2.0.2" - "@smithy/util-waiter" "^2.0.15" + "@aws-sdk/client-sts" "3.496.0" + "@aws-sdk/core" "3.496.0" + "@aws-sdk/credential-provider-node" "3.496.0" + "@aws-sdk/middleware-bucket-endpoint" "3.496.0" + "@aws-sdk/middleware-expect-continue" "3.496.0" + "@aws-sdk/middleware-flexible-checksums" "3.496.0" + "@aws-sdk/middleware-host-header" "3.496.0" + "@aws-sdk/middleware-location-constraint" "3.496.0" + "@aws-sdk/middleware-logger" "3.496.0" + "@aws-sdk/middleware-recursion-detection" "3.496.0" + "@aws-sdk/middleware-sdk-s3" "3.496.0" + "@aws-sdk/middleware-signing" "3.496.0" + "@aws-sdk/middleware-ssec" "3.498.0" + "@aws-sdk/middleware-user-agent" "3.496.0" + "@aws-sdk/region-config-resolver" "3.496.0" + "@aws-sdk/signature-v4-multi-region" "3.496.0" + "@aws-sdk/types" "3.496.0" + "@aws-sdk/util-endpoints" "3.496.0" + "@aws-sdk/util-user-agent-browser" "3.496.0" + "@aws-sdk/util-user-agent-node" "3.496.0" + "@aws-sdk/xml-builder" "3.496.0" + "@smithy/config-resolver" "^2.1.1" + "@smithy/core" "^1.3.1" + "@smithy/eventstream-serde-browser" "^2.1.1" + "@smithy/eventstream-serde-config-resolver" "^2.1.1" + "@smithy/eventstream-serde-node" "^2.1.1" + "@smithy/fetch-http-handler" "^2.4.1" + "@smithy/hash-blob-browser" "^2.1.1" + "@smithy/hash-node" "^2.1.1" + "@smithy/hash-stream-node" "^2.1.1" + "@smithy/invalid-dependency" "^2.1.1" + "@smithy/md5-js" "^2.1.1" + "@smithy/middleware-content-length" "^2.1.1" + "@smithy/middleware-endpoint" "^2.4.1" + "@smithy/middleware-retry" "^2.1.1" + "@smithy/middleware-serde" "^2.1.1" + "@smithy/middleware-stack" "^2.1.1" + "@smithy/node-config-provider" "^2.2.1" + "@smithy/node-http-handler" "^2.3.1" + "@smithy/protocol-http" "^3.1.1" + "@smithy/smithy-client" "^2.3.1" + "@smithy/types" "^2.9.1" + "@smithy/url-parser" "^2.1.1" + "@smithy/util-base64" "^2.1.1" + "@smithy/util-body-length-browser" "^2.1.1" + "@smithy/util-body-length-node" "^2.2.1" + "@smithy/util-defaults-mode-browser" "^2.1.1" + "@smithy/util-defaults-mode-node" "^2.1.1" + "@smithy/util-endpoints" "^1.1.1" + "@smithy/util-retry" "^2.1.1" + "@smithy/util-stream" "^2.1.1" + "@smithy/util-utf8" "^2.1.1" + "@smithy/util-waiter" "^2.1.1" fast-xml-parser "4.2.5" tslib "^2.5.0" -"@aws-sdk/client-ses@^3.473.0": - version "3.473.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-ses/-/client-ses-3.473.0.tgz#38ef2d74c46b0ba770008a1c234aa43be5934ee0" - integrity sha512-oE3e3PIAlQV+9vhk+ALNPZS84C+xgOtUQ9FHXjmMJBNGvQbJclxRquqjm/7AxADlOrzaX8YmPAUSxyrY3FqSxg== +"@aws-sdk/client-ses@^3.498.0": + version "3.498.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-ses/-/client-ses-3.498.0.tgz#80c029fc6605206a5f6ff3c21feaf8821ce3cdd0" + integrity sha512-LUzaOT6ZklTUNpUqidb3I5Zb01yzNJhOhm0fz7HaFf7JzRPFxPUviN6tlVbWNMP14/aciJyGztrzGwv53M9m/A== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/client-sts" "3.473.0" - "@aws-sdk/core" "3.468.0" - "@aws-sdk/credential-provider-node" "3.470.0" - "@aws-sdk/middleware-host-header" "3.468.0" - "@aws-sdk/middleware-logger" "3.468.0" - "@aws-sdk/middleware-recursion-detection" "3.468.0" - "@aws-sdk/middleware-signing" "3.468.0" - "@aws-sdk/middleware-user-agent" "3.470.0" - "@aws-sdk/region-config-resolver" "3.470.0" - "@aws-sdk/types" "3.468.0" - "@aws-sdk/util-endpoints" "3.470.0" - "@aws-sdk/util-user-agent-browser" "3.468.0" - "@aws-sdk/util-user-agent-node" "3.470.0" - "@smithy/config-resolver" "^2.0.21" - "@smithy/fetch-http-handler" "^2.3.1" - "@smithy/hash-node" "^2.0.17" - "@smithy/invalid-dependency" "^2.0.15" - "@smithy/middleware-content-length" "^2.0.17" - "@smithy/middleware-endpoint" "^2.2.3" - "@smithy/middleware-retry" "^2.0.24" - "@smithy/middleware-serde" "^2.0.15" - "@smithy/middleware-stack" "^2.0.9" - "@smithy/node-config-provider" "^2.1.8" - "@smithy/node-http-handler" "^2.2.1" - "@smithy/protocol-http" "^3.0.11" - "@smithy/smithy-client" "^2.1.18" - "@smithy/types" "^2.7.0" - "@smithy/url-parser" "^2.0.15" - "@smithy/util-base64" "^2.0.1" - "@smithy/util-body-length-browser" "^2.0.1" - "@smithy/util-body-length-node" "^2.1.0" - "@smithy/util-defaults-mode-browser" "^2.0.22" - "@smithy/util-defaults-mode-node" "^2.0.29" - "@smithy/util-endpoints" "^1.0.7" - "@smithy/util-retry" "^2.0.8" - "@smithy/util-utf8" "^2.0.2" - "@smithy/util-waiter" "^2.0.15" + "@aws-sdk/client-sts" "3.496.0" + "@aws-sdk/core" "3.496.0" + "@aws-sdk/credential-provider-node" "3.496.0" + "@aws-sdk/middleware-host-header" "3.496.0" + "@aws-sdk/middleware-logger" "3.496.0" + "@aws-sdk/middleware-recursion-detection" "3.496.0" + "@aws-sdk/middleware-signing" "3.496.0" + "@aws-sdk/middleware-user-agent" "3.496.0" + "@aws-sdk/region-config-resolver" "3.496.0" + "@aws-sdk/types" "3.496.0" + "@aws-sdk/util-endpoints" "3.496.0" + "@aws-sdk/util-user-agent-browser" "3.496.0" + "@aws-sdk/util-user-agent-node" "3.496.0" + "@smithy/config-resolver" "^2.1.1" + "@smithy/core" "^1.3.1" + "@smithy/fetch-http-handler" "^2.4.1" + "@smithy/hash-node" "^2.1.1" + "@smithy/invalid-dependency" "^2.1.1" + "@smithy/middleware-content-length" "^2.1.1" + "@smithy/middleware-endpoint" "^2.4.1" + "@smithy/middleware-retry" "^2.1.1" + "@smithy/middleware-serde" "^2.1.1" + "@smithy/middleware-stack" "^2.1.1" + "@smithy/node-config-provider" "^2.2.1" + "@smithy/node-http-handler" "^2.3.1" + "@smithy/protocol-http" "^3.1.1" + "@smithy/smithy-client" "^2.3.1" + "@smithy/types" "^2.9.1" + "@smithy/url-parser" "^2.1.1" + "@smithy/util-base64" "^2.1.1" + "@smithy/util-body-length-browser" "^2.1.1" + "@smithy/util-body-length-node" "^2.2.1" + "@smithy/util-defaults-mode-browser" "^2.1.1" + "@smithy/util-defaults-mode-node" "^2.1.1" + "@smithy/util-endpoints" "^1.1.1" + "@smithy/util-retry" "^2.1.1" + "@smithy/util-utf8" "^2.1.1" + "@smithy/util-waiter" "^2.1.1" fast-xml-parser "4.2.5" tslib "^2.5.0" -"@aws-sdk/client-sso@3.470.0": - version "3.470.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.470.0.tgz#2fab6cc63af15a5dccbd985d784e49a3a3c634b4" - integrity sha512-iMXqdXuypE3OK0rggbvSz7vBGlLDG418dNidHhdaeLluMTG/GfHbh1fLOlavhYxRwrsPrtYvFiVkxXFGzXva4w== +"@aws-sdk/client-sso@3.496.0": + version "3.496.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.496.0.tgz#765cbfb3afcbe7bc8f2430e40afd4d542a0d58fb" + integrity sha512-fuaMuxKg7CMUsP9l3kxYWCOxFsBjdA0xj5nlikaDm1661/gB4KkAiGqRY8LsQkpNXvXU8Nj+f7oCFADFyGYzyw== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/core" "3.468.0" - "@aws-sdk/middleware-host-header" "3.468.0" - "@aws-sdk/middleware-logger" "3.468.0" - "@aws-sdk/middleware-recursion-detection" "3.468.0" - "@aws-sdk/middleware-user-agent" "3.470.0" - "@aws-sdk/region-config-resolver" "3.470.0" - "@aws-sdk/types" "3.468.0" - "@aws-sdk/util-endpoints" "3.470.0" - "@aws-sdk/util-user-agent-browser" "3.468.0" - "@aws-sdk/util-user-agent-node" "3.470.0" - "@smithy/config-resolver" "^2.0.21" - "@smithy/fetch-http-handler" "^2.3.1" - "@smithy/hash-node" "^2.0.17" - "@smithy/invalid-dependency" "^2.0.15" - "@smithy/middleware-content-length" "^2.0.17" - "@smithy/middleware-endpoint" "^2.2.3" - "@smithy/middleware-retry" "^2.0.24" - "@smithy/middleware-serde" "^2.0.15" - "@smithy/middleware-stack" "^2.0.9" - "@smithy/node-config-provider" "^2.1.8" - "@smithy/node-http-handler" "^2.2.1" - "@smithy/protocol-http" "^3.0.11" - "@smithy/smithy-client" "^2.1.18" - "@smithy/types" "^2.7.0" - "@smithy/url-parser" "^2.0.15" - "@smithy/util-base64" "^2.0.1" - "@smithy/util-body-length-browser" "^2.0.1" - "@smithy/util-body-length-node" "^2.1.0" - "@smithy/util-defaults-mode-browser" "^2.0.22" - "@smithy/util-defaults-mode-node" "^2.0.29" - "@smithy/util-endpoints" "^1.0.7" - "@smithy/util-retry" "^2.0.8" - "@smithy/util-utf8" "^2.0.2" + "@aws-sdk/core" "3.496.0" + "@aws-sdk/middleware-host-header" "3.496.0" + "@aws-sdk/middleware-logger" "3.496.0" + "@aws-sdk/middleware-recursion-detection" "3.496.0" + "@aws-sdk/middleware-user-agent" "3.496.0" + "@aws-sdk/region-config-resolver" "3.496.0" + "@aws-sdk/types" "3.496.0" + "@aws-sdk/util-endpoints" "3.496.0" + "@aws-sdk/util-user-agent-browser" "3.496.0" + "@aws-sdk/util-user-agent-node" "3.496.0" + "@smithy/config-resolver" "^2.1.1" + "@smithy/core" "^1.3.1" + "@smithy/fetch-http-handler" "^2.4.1" + "@smithy/hash-node" "^2.1.1" + "@smithy/invalid-dependency" "^2.1.1" + "@smithy/middleware-content-length" "^2.1.1" + "@smithy/middleware-endpoint" "^2.4.1" + "@smithy/middleware-retry" "^2.1.1" + "@smithy/middleware-serde" "^2.1.1" + "@smithy/middleware-stack" "^2.1.1" + "@smithy/node-config-provider" "^2.2.1" + "@smithy/node-http-handler" "^2.3.1" + "@smithy/protocol-http" "^3.1.1" + "@smithy/smithy-client" "^2.3.1" + "@smithy/types" "^2.9.1" + "@smithy/url-parser" "^2.1.1" + "@smithy/util-base64" "^2.1.1" + "@smithy/util-body-length-browser" "^2.1.1" + "@smithy/util-body-length-node" "^2.2.1" + "@smithy/util-defaults-mode-browser" "^2.1.1" + "@smithy/util-defaults-mode-node" "^2.1.1" + "@smithy/util-endpoints" "^1.1.1" + "@smithy/util-retry" "^2.1.1" + "@smithy/util-utf8" "^2.1.1" tslib "^2.5.0" -"@aws-sdk/client-sts@3.473.0": - version "3.473.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.473.0.tgz#413aaa82e30b6bd49d783f85af95357a89d2a792" - integrity sha512-ttRZs+sW96cpuoVdys4KZ81yXq4c6xyhGOZIRUpi/YiwB1gnNvCEo5CDFL7PSdW/bjI2ovyUgu8EArq+7KlLwA== +"@aws-sdk/client-sts@3.496.0": + version "3.496.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.496.0.tgz#e0c142cf8bb1aec7a9c7b09dd9739f6773d94fd0" + integrity sha512-3pSdqgegdwbK3CT1WvGHhA+Bf91R9cr8G1Ynp+iU2wZvy8ueJfMUk0NYfjo3EEv0YhSbMLKuduzZfvQHFHXYhw== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/core" "3.468.0" - "@aws-sdk/credential-provider-node" "3.470.0" - "@aws-sdk/middleware-host-header" "3.468.0" - "@aws-sdk/middleware-logger" "3.468.0" - "@aws-sdk/middleware-recursion-detection" "3.468.0" - "@aws-sdk/middleware-sdk-sts" "3.468.0" - "@aws-sdk/middleware-signing" "3.468.0" - "@aws-sdk/middleware-user-agent" "3.470.0" - "@aws-sdk/region-config-resolver" "3.470.0" - "@aws-sdk/types" "3.468.0" - "@aws-sdk/util-endpoints" "3.470.0" - "@aws-sdk/util-user-agent-browser" "3.468.0" - "@aws-sdk/util-user-agent-node" "3.470.0" - "@smithy/config-resolver" "^2.0.21" - "@smithy/fetch-http-handler" "^2.3.1" - "@smithy/hash-node" "^2.0.17" - "@smithy/invalid-dependency" "^2.0.15" - "@smithy/middleware-content-length" "^2.0.17" - "@smithy/middleware-endpoint" "^2.2.3" - "@smithy/middleware-retry" "^2.0.24" - "@smithy/middleware-serde" "^2.0.15" - "@smithy/middleware-stack" "^2.0.9" - "@smithy/node-config-provider" "^2.1.8" - "@smithy/node-http-handler" "^2.2.1" - "@smithy/protocol-http" "^3.0.11" - "@smithy/smithy-client" "^2.1.18" - "@smithy/types" "^2.7.0" - "@smithy/url-parser" "^2.0.15" - "@smithy/util-base64" "^2.0.1" - "@smithy/util-body-length-browser" "^2.0.1" - "@smithy/util-body-length-node" "^2.1.0" - "@smithy/util-defaults-mode-browser" "^2.0.22" - "@smithy/util-defaults-mode-node" "^2.0.29" - "@smithy/util-endpoints" "^1.0.7" - "@smithy/util-retry" "^2.0.8" - "@smithy/util-utf8" "^2.0.2" + "@aws-sdk/core" "3.496.0" + "@aws-sdk/credential-provider-node" "3.496.0" + "@aws-sdk/middleware-host-header" "3.496.0" + "@aws-sdk/middleware-logger" "3.496.0" + "@aws-sdk/middleware-recursion-detection" "3.496.0" + "@aws-sdk/middleware-user-agent" "3.496.0" + "@aws-sdk/region-config-resolver" "3.496.0" + "@aws-sdk/types" "3.496.0" + "@aws-sdk/util-endpoints" "3.496.0" + "@aws-sdk/util-user-agent-browser" "3.496.0" + "@aws-sdk/util-user-agent-node" "3.496.0" + "@smithy/config-resolver" "^2.1.1" + "@smithy/core" "^1.3.1" + "@smithy/fetch-http-handler" "^2.4.1" + "@smithy/hash-node" "^2.1.1" + "@smithy/invalid-dependency" "^2.1.1" + "@smithy/middleware-content-length" "^2.1.1" + "@smithy/middleware-endpoint" "^2.4.1" + "@smithy/middleware-retry" "^2.1.1" + "@smithy/middleware-serde" "^2.1.1" + "@smithy/middleware-stack" "^2.1.1" + "@smithy/node-config-provider" "^2.2.1" + "@smithy/node-http-handler" "^2.3.1" + "@smithy/protocol-http" "^3.1.1" + "@smithy/smithy-client" "^2.3.1" + "@smithy/types" "^2.9.1" + "@smithy/url-parser" "^2.1.1" + "@smithy/util-base64" "^2.1.1" + "@smithy/util-body-length-browser" "^2.1.1" + "@smithy/util-body-length-node" "^2.2.1" + "@smithy/util-defaults-mode-browser" "^2.1.1" + "@smithy/util-defaults-mode-node" "^2.1.1" + "@smithy/util-endpoints" "^1.1.1" + "@smithy/util-middleware" "^2.1.1" + "@smithy/util-retry" "^2.1.1" + "@smithy/util-utf8" "^2.1.1" fast-xml-parser "4.2.5" tslib "^2.5.0" -"@aws-sdk/core@3.468.0": - version "3.468.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.468.0.tgz#1f356adedd63ef77042a3de10fc4c1fdcce4ad42" - integrity sha512-ezUJR9VvknKoXzNZ4wvzGi1jdkmm+/1dUYQ9Sw4r8bzlJDTsUnWbyvaDlBQh81RuhLtVkaUfTnQKoec0cwlZKQ== +"@aws-sdk/core@3.496.0": + version "3.496.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.496.0.tgz#ec1394753b6b2f6e38aea593e30b2db5c7390969" + integrity sha512-yT+ug7Cw/3eJi7x2es0+46x12+cIJm5Xv+GPWsrTFD1TKgqO/VPEgfDtHFagDNbFmjNQA65Ygc/kEdIX9ICX/A== dependencies: - "@smithy/smithy-client" "^2.1.18" + "@smithy/core" "^1.3.1" + "@smithy/protocol-http" "^3.1.1" + "@smithy/signature-v4" "^2.1.1" + "@smithy/smithy-client" "^2.3.1" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@aws-sdk/credential-provider-env@3.468.0": - version "3.468.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.468.0.tgz#4196d717d3f5485af863bd1fd84374ea3dcd6210" - integrity sha512-k/1WHd3KZn0EQYjadooj53FC0z24/e4dUZhbSKTULgmxyO62pwh9v3Brvw4WRa/8o2wTffU/jo54tf4vGuP/ZA== +"@aws-sdk/credential-provider-env@3.496.0": + version "3.496.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.496.0.tgz#5055bd2e3a169e5c10b37c40e0f356046947e707" + integrity sha512-lukQMJ8SWWP5RqkRNOHi/H+WMhRvSWa3Fc5Jf/VP6xHiPLfF1XafcvthtV91e0VwPCiseI+HqChrcGq8pvnxHw== dependencies: - "@aws-sdk/types" "3.468.0" - "@smithy/property-provider" "^2.0.0" - "@smithy/types" "^2.7.0" + "@aws-sdk/types" "3.496.0" + "@smithy/property-provider" "^2.1.1" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@aws-sdk/credential-provider-ini@3.470.0": - version "3.470.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.470.0.tgz#d360d08f893d5d28a3e6a493bbef0989669c2f6a" - integrity sha512-eF22iPO6J2jY+LbuTv5dW0hZBmi6ksRDFFd/zT6TLasrzH2Ex+gAfN3c7rFHF+XAubL0JXFUKFA3UAwoZpO9Zg== - dependencies: - "@aws-sdk/credential-provider-env" "3.468.0" - "@aws-sdk/credential-provider-process" "3.468.0" - "@aws-sdk/credential-provider-sso" "3.470.0" - "@aws-sdk/credential-provider-web-identity" "3.468.0" - "@aws-sdk/types" "3.468.0" - "@smithy/credential-provider-imds" "^2.0.0" - "@smithy/property-provider" "^2.0.0" - "@smithy/shared-ini-file-loader" "^2.0.6" - "@smithy/types" "^2.7.0" +"@aws-sdk/credential-provider-ini@3.496.0": + version "3.496.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.496.0.tgz#4de82fc173ba1581af4bf6fcad610f2fc0fd8ca1" + integrity sha512-2nD1jp1sIwcQaWK1y/9ruQOkW16RUxZpzgjbW/gnK3iiUXwx+/FNQWxshud+GTSx3Q4x6eIhqsbjtP4VVPPuUA== + dependencies: + "@aws-sdk/credential-provider-env" "3.496.0" + "@aws-sdk/credential-provider-process" "3.496.0" + "@aws-sdk/credential-provider-sso" "3.496.0" + "@aws-sdk/credential-provider-web-identity" "3.496.0" + "@aws-sdk/types" "3.496.0" + "@smithy/credential-provider-imds" "^2.2.1" + "@smithy/property-provider" "^2.1.1" + "@smithy/shared-ini-file-loader" "^2.3.1" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@aws-sdk/credential-provider-node@3.470.0": - version "3.470.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.470.0.tgz#9236a27f451fef06e1cb6c744b6b8b3dc3d633a3" - integrity sha512-paySXwzGxBVU+2cVUkRIXafKhYhtO2fJJ3MotR6euvRONK/dta+bhEc5Z4QnTo/gNLoELK/QUC0EGoF+oPfk8g== - dependencies: - "@aws-sdk/credential-provider-env" "3.468.0" - "@aws-sdk/credential-provider-ini" "3.470.0" - "@aws-sdk/credential-provider-process" "3.468.0" - "@aws-sdk/credential-provider-sso" "3.470.0" - "@aws-sdk/credential-provider-web-identity" "3.468.0" - "@aws-sdk/types" "3.468.0" - "@smithy/credential-provider-imds" "^2.0.0" - "@smithy/property-provider" "^2.0.0" - "@smithy/shared-ini-file-loader" "^2.0.6" - "@smithy/types" "^2.7.0" +"@aws-sdk/credential-provider-node@3.496.0": + version "3.496.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.496.0.tgz#734fc5aa824c387c893ff5624b201c0243ea1c7c" + integrity sha512-IVF9RvLePfRa5S5/eBIRChJCWOzQkGwM8P/L79Gl84u/cH2oSG4NtUI/YTDlrtmnYn7YsGhINSV0WnzfF2twfQ== + dependencies: + "@aws-sdk/credential-provider-env" "3.496.0" + "@aws-sdk/credential-provider-ini" "3.496.0" + "@aws-sdk/credential-provider-process" "3.496.0" + "@aws-sdk/credential-provider-sso" "3.496.0" + "@aws-sdk/credential-provider-web-identity" "3.496.0" + "@aws-sdk/types" "3.496.0" + "@smithy/credential-provider-imds" "^2.2.1" + "@smithy/property-provider" "^2.1.1" + "@smithy/shared-ini-file-loader" "^2.3.1" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@aws-sdk/credential-provider-process@3.468.0": - version "3.468.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.468.0.tgz#770ed72db036c5d011445e5abf4a4bcc4424c486" - integrity sha512-OYSn1A/UsyPJ7Z8Q2cNhTf55O36shPmSsvOfND04nSfu1nPaR+VUvvsP7v+brhGpwC/GAKTIdGAo4blH31BS6A== +"@aws-sdk/credential-provider-process@3.496.0": + version "3.496.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.496.0.tgz#1d623bed61229767f389feab560e3a3117bf2d26" + integrity sha512-/YZscCTGOKVmGr916Th4XF8Sz6JDtZ/n2loHG9exok9iy/qIbACsTRNLP9zexPxhPoue/oZqecY5xbVljfY34A== dependencies: - "@aws-sdk/types" "3.468.0" - "@smithy/property-provider" "^2.0.0" - "@smithy/shared-ini-file-loader" "^2.0.6" - "@smithy/types" "^2.7.0" + "@aws-sdk/types" "3.496.0" + "@smithy/property-provider" "^2.1.1" + "@smithy/shared-ini-file-loader" "^2.3.1" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@aws-sdk/credential-provider-sso@3.470.0": - version "3.470.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.470.0.tgz#12f14557be50a01bc99166610d83ea5be79b154a" - integrity sha512-biGDSh9S9KDR9Tl/8cCPn9g5KPNkXg/CIJIOk3X+6valktbJ2UVYBzi0ZX4vZiudt5ry/Hsu6Pgo+KN1AmBWdg== - dependencies: - "@aws-sdk/client-sso" "3.470.0" - "@aws-sdk/token-providers" "3.470.0" - "@aws-sdk/types" "3.468.0" - "@smithy/property-provider" "^2.0.0" - "@smithy/shared-ini-file-loader" "^2.0.6" - "@smithy/types" "^2.7.0" +"@aws-sdk/credential-provider-sso@3.496.0": + version "3.496.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.496.0.tgz#1c5f2d25b64936b79095f49cabbcd7832fb87087" + integrity sha512-eP7GxpT2QYubSDG7uk1GJW4eNymZCq65IxDyEFCXOP/kfqkxriCY+iVEFG6/Mo3LxvgrgHXU4jxrCAXMAWN43g== + dependencies: + "@aws-sdk/client-sso" "3.496.0" + "@aws-sdk/token-providers" "3.496.0" + "@aws-sdk/types" "3.496.0" + "@smithy/property-provider" "^2.1.1" + "@smithy/shared-ini-file-loader" "^2.3.1" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@aws-sdk/credential-provider-web-identity@3.468.0": - version "3.468.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.468.0.tgz#5befcb593d99a84e16af9e9f285f0d59ed42771f" - integrity sha512-rexymPmXjtkwCPfhnUq3EjO1rSkf39R4Jz9CqiM7OsqK2qlT5Y/V3gnMKn0ZMXsYaQOMfM3cT5xly5R+OKDHlw== +"@aws-sdk/credential-provider-web-identity@3.496.0": + version "3.496.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.496.0.tgz#7ad6d755445d1616a80dfa286a78c84dc1c3f14b" + integrity sha512-IbP+qLlvJSpNPj+zW6TtFuLRTK5Tf0hW+2pom4vFyi5YSH4pn8UOC136UdewX8vhXGS9BJQ5zBDMasIyl5VeGQ== dependencies: - "@aws-sdk/types" "3.468.0" - "@smithy/property-provider" "^2.0.0" - "@smithy/types" "^2.7.0" + "@aws-sdk/types" "3.496.0" + "@smithy/property-provider" "^2.1.1" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@aws-sdk/middleware-bucket-endpoint@3.470.0": - version "3.470.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.470.0.tgz#76a6dde27e791ec8fad798dd5d53789b876498c3" - integrity sha512-vLXXNWtsRmEIwzJ9HUQfIuTNAsEzvCv0Icsnkvt2BiBZXnmHdp2vIC3e3+kfy1D7dVQloXqMmnfcLu/BUMu2Jw== - dependencies: - "@aws-sdk/types" "3.468.0" - "@aws-sdk/util-arn-parser" "3.465.0" - "@smithy/node-config-provider" "^2.1.8" - "@smithy/protocol-http" "^3.0.11" - "@smithy/types" "^2.7.0" - "@smithy/util-config-provider" "^2.0.0" +"@aws-sdk/middleware-bucket-endpoint@3.496.0": + version "3.496.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.496.0.tgz#10a6e48b836321f32226790ffebcba1f281107ce" + integrity sha512-B+ilBMSs3+LJuo2bl2KB8GFdu+8PPVtYEWtwhNkmnaU8iMisgMBp5uuM8sUDvJX7I4iSF0WbgnhguX4cJqfAew== + dependencies: + "@aws-sdk/types" "3.496.0" + "@aws-sdk/util-arn-parser" "3.495.0" + "@smithy/node-config-provider" "^2.2.1" + "@smithy/protocol-http" "^3.1.1" + "@smithy/types" "^2.9.1" + "@smithy/util-config-provider" "^2.2.1" tslib "^2.5.0" -"@aws-sdk/middleware-expect-continue@3.468.0": - version "3.468.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.468.0.tgz#664f7f1238e7bfb633cd44753f8cfb1a62ac624a" - integrity sha512-/wmLjmfgeulxhhmnxX3X3N933TvGsYckVIFjAtDSpLjqkbwzEcNiLq7AdmNJ4BfxG0MCMgcht561DCCD19x8Bg== +"@aws-sdk/middleware-expect-continue@3.496.0": + version "3.496.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.496.0.tgz#1b9f45451ddc3daccfc332d4bb3fdac9b2e54881" + integrity sha512-+exo5DVc+BeDus2iI6Fz1thefHGDXxUhHZ+4VHQ6HkStMy3Y22HugyEGHSQZmtRL86Hjr7dFbEWFsC47a2ItGA== dependencies: - "@aws-sdk/types" "3.468.0" - "@smithy/protocol-http" "^3.0.11" - "@smithy/types" "^2.7.0" + "@aws-sdk/types" "3.496.0" + "@smithy/protocol-http" "^3.1.1" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@aws-sdk/middleware-flexible-checksums@3.468.0": - version "3.468.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.468.0.tgz#96e26042e61724a4981edb3ba3fd2af280df57b6" - integrity sha512-LQwL/N5MCj3Y5keLLewHTqeAXUIMsHFZyxDXRm/uxrOon9ufLKDvGvzAmfwn1/CuSUo66ZfT8VPSA4BsC90RtA== +"@aws-sdk/middleware-flexible-checksums@3.496.0": + version "3.496.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.496.0.tgz#a06a553e243eed2d6a35f1353f85e279f2a977dc" + integrity sha512-yQIWfjEMvgsAJ7ku224vXDjXPD+f9zfKZFialJva8VUlEr7hQp4CQ0rxV3YThSaixKEDDs5k6kOjWAd2BPGr2A== dependencies: "@aws-crypto/crc32" "3.0.0" "@aws-crypto/crc32c" "3.0.0" - "@aws-sdk/types" "3.468.0" - "@smithy/is-array-buffer" "^2.0.0" - "@smithy/protocol-http" "^3.0.11" - "@smithy/types" "^2.7.0" - "@smithy/util-utf8" "^2.0.2" + "@aws-sdk/types" "3.496.0" + "@smithy/is-array-buffer" "^2.1.1" + "@smithy/protocol-http" "^3.1.1" + "@smithy/types" "^2.9.1" + "@smithy/util-utf8" "^2.1.1" tslib "^2.5.0" -"@aws-sdk/middleware-host-header@3.468.0": - version "3.468.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.468.0.tgz#6da7b19032e9afccea54fbf8aa10cccd2f817bcf" - integrity sha512-gwQ+/QhX+lhof304r6zbZ/V5l5cjhGRxLL3CjH1uJPMcOAbw9wUlMdl+ibr8UwBZ5elfKFGiB1cdW/0uMchw0w== +"@aws-sdk/middleware-host-header@3.496.0": + version "3.496.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.496.0.tgz#e17de11d553548872566c72669c5ea2e7164722b" + integrity sha512-jUdPpSJeqCYXf6hSjfwsfHway7peIV8Vz51w/BN91bF4vB/bYwAC5o9/iJiK/EoByp5asxA8fg9wFOyGjzdbLg== dependencies: - "@aws-sdk/types" "3.468.0" - "@smithy/protocol-http" "^3.0.11" - "@smithy/types" "^2.7.0" + "@aws-sdk/types" "3.496.0" + "@smithy/protocol-http" "^3.1.1" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@aws-sdk/middleware-location-constraint@3.468.0": - version "3.468.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.468.0.tgz#cc9ebcdabed96414fc91f4a39b3b7c08e6374187" - integrity sha512-0gBX/lDynQr4YIhM9h1dVnkVWqrg+34iOCVIUq8jHxzUzgZWglGkG9lHGGg0r1xkLTmegeoo1OKH8wrQ6n33Cg== +"@aws-sdk/middleware-location-constraint@3.496.0": + version "3.496.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.496.0.tgz#b44ae48bddf8409c2c55a36a4f406661fcd729be" + integrity sha512-i4ocJ2Zs86OtPREbB18InFukhqg2qtBxb5gywv79IHDPVmpOYE4m/3v3yGUrkjfF2GTlUL0k5FskNNqw41yfng== dependencies: - "@aws-sdk/types" "3.468.0" - "@smithy/types" "^2.7.0" + "@aws-sdk/types" "3.496.0" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@aws-sdk/middleware-logger@3.468.0": - version "3.468.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.468.0.tgz#a1883fb7ad8e156444d30689de4ab897357ef1d8" - integrity sha512-X5XHKV7DHRXI3f29SAhJPe/OxWRFgDWDMMCALfzhmJfCi6Jfh0M14cJKoC+nl+dk9lB+36+jKjhjETZaL2bPlA== +"@aws-sdk/middleware-logger@3.496.0": + version "3.496.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.496.0.tgz#96f867ae50144eb6bae91a427e315a0f0eb783b0" + integrity sha512-EwMVSY6iBMeGbVnvwdaFl/ClMS/YWtxCAo+bcEtgk8ltRuo7qgbJem8Km/fvWC1vdWvIbe4ArdJ8iGzq62ffAw== dependencies: - "@aws-sdk/types" "3.468.0" - "@smithy/types" "^2.7.0" + "@aws-sdk/types" "3.496.0" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@aws-sdk/middleware-recursion-detection@3.468.0": - version "3.468.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.468.0.tgz#85b05636a5c2638bf9e15c8b6be17654757e1bf4" - integrity sha512-vch9IQib2Ng9ucSyRW2eKNQXHUPb5jUPCLA5otTW/8nGjcOU37LxQG4WrxO7uaJ9Oe8hjHO+hViE3P0KISUhtA== +"@aws-sdk/middleware-recursion-detection@3.496.0": + version "3.496.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.496.0.tgz#c14e1bbe609e4af3ec9037c2379e2b64d660e4dd" + integrity sha512-+IuOcFsfqg2WAnaEzH6KhVbicqCxtOq9w3DH2jwTpddRlCx2Kqf6wCzg8luhHRGyjBZdsbIS+OXwyMevoppawA== dependencies: - "@aws-sdk/types" "3.468.0" - "@smithy/protocol-http" "^3.0.11" - "@smithy/types" "^2.7.0" + "@aws-sdk/types" "3.496.0" + "@smithy/protocol-http" "^3.1.1" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@aws-sdk/middleware-sdk-s3@3.470.0": - version "3.470.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.470.0.tgz#256546c780a1166d4c84ed0f119836a599b783ab" - integrity sha512-yhavP2ju+upF50ccDFQNhVPxPOPgUUPs2JqPoq7NzTKZWIyRY65F3UC7CBmrSNiaL0S76r4kDdOkVcGUdI6ZiQ== - dependencies: - "@aws-sdk/types" "3.468.0" - "@aws-sdk/util-arn-parser" "3.465.0" - "@smithy/node-config-provider" "^2.1.8" - "@smithy/protocol-http" "^3.0.11" - "@smithy/signature-v4" "^2.0.0" - "@smithy/smithy-client" "^2.1.18" - "@smithy/types" "^2.7.0" - "@smithy/util-config-provider" "^2.0.0" +"@aws-sdk/middleware-sdk-s3@3.496.0": + version "3.496.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.496.0.tgz#8d15cd44578da34159d99282b5de734a0f50db7c" + integrity sha512-OKrTPzubisQCQzPuF4G7jmbYt71o6W7oefmW9zm1MpGokRSJeC9zv4aT1gkMglpXEHgvL0S5fUVGi0AtF/F8Kw== + dependencies: + "@aws-sdk/types" "3.496.0" + "@aws-sdk/util-arn-parser" "3.495.0" + "@smithy/node-config-provider" "^2.2.1" + "@smithy/protocol-http" "^3.1.1" + "@smithy/signature-v4" "^2.1.1" + "@smithy/smithy-client" "^2.3.1" + "@smithy/types" "^2.9.1" + "@smithy/util-config-provider" "^2.2.1" tslib "^2.5.0" -"@aws-sdk/middleware-sdk-sts@3.468.0": - version "3.468.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.468.0.tgz#773ed9f7087b184461c9cda0b442e58cb15c6a5b" - integrity sha512-xRy8NKfHbmafHwdbotdWgHBvRs0YZgk20GrhFJKp43bkqVbJ5bNlh3nQXf1DeFY9fARR84Bfotya4fwCUHWgZg== - dependencies: - "@aws-sdk/middleware-signing" "3.468.0" - "@aws-sdk/types" "3.468.0" - "@smithy/types" "^2.7.0" - tslib "^2.5.0" - -"@aws-sdk/middleware-signing@3.468.0": - version "3.468.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.468.0.tgz#d1b5a92c395f55063cfa72ee95e4921b16f4c515" - integrity sha512-s+7fSB1gdnnTj5O0aCCarX3z5Vppop8kazbNSZADdkfHIDWCN80IH4ZNjY3OWqaAz0HmR4LNNrovdR304ojb4Q== - dependencies: - "@aws-sdk/types" "3.468.0" - "@smithy/property-provider" "^2.0.0" - "@smithy/protocol-http" "^3.0.11" - "@smithy/signature-v4" "^2.0.0" - "@smithy/types" "^2.7.0" - "@smithy/util-middleware" "^2.0.8" +"@aws-sdk/middleware-signing@3.496.0": + version "3.496.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.496.0.tgz#265cb5a9d7825c111c53bb555e5cb2619f804dd1" + integrity sha512-Oq73Brs4IConvWnRlh8jM1V7LHoTw9SVQklu/QW2FPlNrB3B8fuTdWHHYIWv7ybw1bykXoCY99v865Mmq/Or/g== + dependencies: + "@aws-sdk/types" "3.496.0" + "@smithy/property-provider" "^2.1.1" + "@smithy/protocol-http" "^3.1.1" + "@smithy/signature-v4" "^2.1.1" + "@smithy/types" "^2.9.1" + "@smithy/util-middleware" "^2.1.1" tslib "^2.5.0" -"@aws-sdk/middleware-ssec@3.468.0": - version "3.468.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.468.0.tgz#8fe4ccfd6f0689b77b230ce17e44438d1ce1b419" - integrity sha512-y1qLW24wRkOGBTK5d6eJXf6d8HYo4rzT4a1mNDN1rd18NSffwQ6Yke5qeUiIaxa0y/l+FvvNYErbhYtij2rJoQ== +"@aws-sdk/middleware-ssec@3.498.0": + version "3.498.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.498.0.tgz#6f846122d18163ff4c83513649a831465530a64d" + integrity sha512-sWujXgzeTqMZzj/pRYEnnEbSzhBosqw9DXHOY1Mg2igI9NEfGlB7lPARp6aKmCaYlP3Bcj2X86vKCqF53mbyig== dependencies: - "@aws-sdk/types" "3.468.0" - "@smithy/types" "^2.7.0" + "@aws-sdk/types" "3.496.0" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@aws-sdk/middleware-user-agent@3.470.0": - version "3.470.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.470.0.tgz#6cbb09fc8359acdb45c41f6fe5d6612c81f5ad92" - integrity sha512-s0YRGgf4fT5KwwTefpoNUQfB5JghzXyvmPfY1QuFEMeVQNxv0OPuydzo3rY2oXPkZjkulKDtpm5jzIHwut75hA== +"@aws-sdk/middleware-user-agent@3.496.0": + version "3.496.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.496.0.tgz#82b49fd8613ae5a9ceafc9117c34271615d0f002" + integrity sha512-+iMtRxFk0GmFWNUF4ilxylOQd9PZdR4ZC9jkcPIh1PZlvKtpCyFywKlk5RRZKklSoJ/CttcqwhMvOXTNbWm/0w== dependencies: - "@aws-sdk/types" "3.468.0" - "@aws-sdk/util-endpoints" "3.470.0" - "@smithy/protocol-http" "^3.0.11" - "@smithy/types" "^2.7.0" + "@aws-sdk/types" "3.496.0" + "@aws-sdk/util-endpoints" "3.496.0" + "@smithy/protocol-http" "^3.1.1" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@aws-sdk/region-config-resolver@3.470.0": - version "3.470.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.470.0.tgz#74e5c5f7a5633ad8c482503bf940a9330bd1cd09" - integrity sha512-C1o1J06iIw8cyAAOvHqT4Bbqf+PgQ/RDlSyjt2gFfP2OovDpc2o2S90dE8f8iZdSGpg70N5MikT1DBhW9NbhtQ== +"@aws-sdk/region-config-resolver@3.496.0": + version "3.496.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.496.0.tgz#133c8a4a6d5e7672077ba124751f40b2d6efc3ed" + integrity sha512-URrNVOPHPgEDm6QFu6lDC2cUFs+Jx23mA3jEwCvoKlXiEY/ZoWjH8wlX3OMUlLrF1qoUTuD03jjrJzF6zoCgug== dependencies: - "@smithy/node-config-provider" "^2.1.8" - "@smithy/types" "^2.7.0" - "@smithy/util-config-provider" "^2.0.0" - "@smithy/util-middleware" "^2.0.8" + "@aws-sdk/types" "3.496.0" + "@smithy/node-config-provider" "^2.2.1" + "@smithy/types" "^2.9.1" + "@smithy/util-config-provider" "^2.2.1" + "@smithy/util-middleware" "^2.1.1" tslib "^2.5.0" -"@aws-sdk/signature-v4-multi-region@3.470.0": - version "3.470.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.470.0.tgz#4a5f1ecfa5db5ac635f297952bcc8c64c4e01a0b" - integrity sha512-pbgQW5Fbu7tLOQFXTnb9Mp8GL+b4DnkGwXHZjE9AmwDisW/jlGwf+EFKr2xnuoNiaqvj0zHY+vvN6dewzik7Og== +"@aws-sdk/signature-v4-multi-region@3.496.0": + version "3.496.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.496.0.tgz#0084ad38ab25dc50d5965d31a9c659673d82e86f" + integrity sha512-zi3cL8+dRVSvC0PA6votwEHF4l9uxOyQTiRfgpFgzJ9iiPbsrtWCalGCwN0UyzmeDv7eViU6FK1YTHH/OgDJ4A== dependencies: - "@aws-sdk/middleware-sdk-s3" "3.470.0" - "@aws-sdk/types" "3.468.0" - "@smithy/protocol-http" "^3.0.11" - "@smithy/signature-v4" "^2.0.0" - "@smithy/types" "^2.7.0" + "@aws-sdk/middleware-sdk-s3" "3.496.0" + "@aws-sdk/types" "3.496.0" + "@smithy/protocol-http" "^3.1.1" + "@smithy/signature-v4" "^2.1.1" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@aws-sdk/token-providers@3.470.0": - version "3.470.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.470.0.tgz#635fa5db3f10919868a9f94be43241fbce206ede" - integrity sha512-rzxnJxEUJiV69Cxsf0AHXTqJqTACITwcSH/PL4lWP4uvtzdrzSi3KA3u2aWHWpOcdE6+JFvdICscsbBSo3/TOg== +"@aws-sdk/token-providers@3.496.0": + version "3.496.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.496.0.tgz#5b5baf0801fd591de4a28146afbdc8250197f9fa" + integrity sha512-fyi8RcObEa1jNETJdc2H6q9VHrrdKCj/b6+fbLvymb7mUVRd0aWUn+24SNUImnSOnrwYnwaMfyyEC388X4MbFQ== dependencies: "@aws-crypto/sha256-browser" "3.0.0" "@aws-crypto/sha256-js" "3.0.0" - "@aws-sdk/middleware-host-header" "3.468.0" - "@aws-sdk/middleware-logger" "3.468.0" - "@aws-sdk/middleware-recursion-detection" "3.468.0" - "@aws-sdk/middleware-user-agent" "3.470.0" - "@aws-sdk/region-config-resolver" "3.470.0" - "@aws-sdk/types" "3.468.0" - "@aws-sdk/util-endpoints" "3.470.0" - "@aws-sdk/util-user-agent-browser" "3.468.0" - "@aws-sdk/util-user-agent-node" "3.470.0" - "@smithy/config-resolver" "^2.0.21" - "@smithy/fetch-http-handler" "^2.3.1" - "@smithy/hash-node" "^2.0.17" - "@smithy/invalid-dependency" "^2.0.15" - "@smithy/middleware-content-length" "^2.0.17" - "@smithy/middleware-endpoint" "^2.2.3" - "@smithy/middleware-retry" "^2.0.24" - "@smithy/middleware-serde" "^2.0.15" - "@smithy/middleware-stack" "^2.0.9" - "@smithy/node-config-provider" "^2.1.8" - "@smithy/node-http-handler" "^2.2.1" - "@smithy/property-provider" "^2.0.0" - "@smithy/protocol-http" "^3.0.11" - "@smithy/shared-ini-file-loader" "^2.0.6" - "@smithy/smithy-client" "^2.1.18" - "@smithy/types" "^2.7.0" - "@smithy/url-parser" "^2.0.15" - "@smithy/util-base64" "^2.0.1" - "@smithy/util-body-length-browser" "^2.0.1" - "@smithy/util-body-length-node" "^2.1.0" - "@smithy/util-defaults-mode-browser" "^2.0.22" - "@smithy/util-defaults-mode-node" "^2.0.29" - "@smithy/util-endpoints" "^1.0.7" - "@smithy/util-retry" "^2.0.8" - "@smithy/util-utf8" "^2.0.2" + "@aws-sdk/middleware-host-header" "3.496.0" + "@aws-sdk/middleware-logger" "3.496.0" + "@aws-sdk/middleware-recursion-detection" "3.496.0" + "@aws-sdk/middleware-user-agent" "3.496.0" + "@aws-sdk/region-config-resolver" "3.496.0" + "@aws-sdk/types" "3.496.0" + "@aws-sdk/util-endpoints" "3.496.0" + "@aws-sdk/util-user-agent-browser" "3.496.0" + "@aws-sdk/util-user-agent-node" "3.496.0" + "@smithy/config-resolver" "^2.1.1" + "@smithy/fetch-http-handler" "^2.4.1" + "@smithy/hash-node" "^2.1.1" + "@smithy/invalid-dependency" "^2.1.1" + "@smithy/middleware-content-length" "^2.1.1" + "@smithy/middleware-endpoint" "^2.4.1" + "@smithy/middleware-retry" "^2.1.1" + "@smithy/middleware-serde" "^2.1.1" + "@smithy/middleware-stack" "^2.1.1" + "@smithy/node-config-provider" "^2.2.1" + "@smithy/node-http-handler" "^2.3.1" + "@smithy/property-provider" "^2.1.1" + "@smithy/protocol-http" "^3.1.1" + "@smithy/shared-ini-file-loader" "^2.3.1" + "@smithy/smithy-client" "^2.3.1" + "@smithy/types" "^2.9.1" + "@smithy/url-parser" "^2.1.1" + "@smithy/util-base64" "^2.1.1" + "@smithy/util-body-length-browser" "^2.1.1" + "@smithy/util-body-length-node" "^2.2.1" + "@smithy/util-defaults-mode-browser" "^2.1.1" + "@smithy/util-defaults-mode-node" "^2.1.1" + "@smithy/util-endpoints" "^1.1.1" + "@smithy/util-retry" "^2.1.1" + "@smithy/util-utf8" "^2.1.1" tslib "^2.5.0" -"@aws-sdk/types@3.468.0": - version "3.468.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.468.0.tgz#f97b34fc92a800d1d8b866f47693ae8f3d46517b" - integrity sha512-rx/9uHI4inRbp2tw3Y4Ih4PNZkVj32h7WneSg3MVgVjAoVD5Zti9KhS5hkvsBxfgmQmg0AQbE+b1sy5WGAgntA== +"@aws-sdk/types@3.496.0": + version "3.496.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.496.0.tgz#cdde44a94a57cf8f97cf05e4d0bdce2f56ce4eeb" + integrity sha512-umkGadK4QuNQaMoDICMm7NKRI/mYSXiyPjcn3d53BhsuArYU/52CebGQKdt4At7SwwsiVJZw9RNBHyN5Mm0HVw== dependencies: - "@smithy/types" "^2.7.0" + "@smithy/types" "^2.9.1" tslib "^2.5.0" "@aws-sdk/types@^3.222.0": @@ -646,20 +644,21 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/util-arn-parser@3.465.0": - version "3.465.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.465.0.tgz#2896f6b06f69770378586853c97a0f283cbb2e20" - integrity sha512-zOJ82vzDJFqBX9yZBlNeHHrul/kpx/DCoxzW5UBbZeb26kfV53QhMSoEmY8/lEbBqlqargJ/sgRC845GFhHNQw== +"@aws-sdk/util-arn-parser@3.495.0": + version "3.495.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.495.0.tgz#539f2d6dfef343a80324348f1f9a1b7eed2390f3" + integrity sha512-hwdA3XAippSEUxs7jpznwD63YYFR+LtQvlEcebPTgWR9oQgG9TfS+39PUfbnEeje1ICuOrN3lrFqFbmP9uzbMg== dependencies: tslib "^2.5.0" -"@aws-sdk/util-endpoints@3.470.0": - version "3.470.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.470.0.tgz#94338991804f24e0225636abd4215b3bb4338c15" - integrity sha512-6N6VvPCmu+89p5Ez/+gLf+X620iQ9JpIs8p8ECZiCodirzFOe8NC1O2S7eov7YiG9IHSuodqn/0qNq+v+oLe0A== +"@aws-sdk/util-endpoints@3.496.0": + version "3.496.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.496.0.tgz#5ce7d3efd7ab67db556e2c199e73826c44d22ecd" + integrity sha512-1QzOiWHi383ZwqSi/R2KgKCd7M+6DxkxI5acqLPm8mvDRDP2jRjrnVaC0g9/tlttWousGEemDUWStwrD2mVYSw== dependencies: - "@aws-sdk/types" "3.468.0" - "@smithy/util-endpoints" "^1.0.7" + "@aws-sdk/types" "3.496.0" + "@smithy/types" "^2.9.1" + "@smithy/util-endpoints" "^1.1.1" tslib "^2.5.0" "@aws-sdk/util-locate-window@^3.0.0": @@ -669,24 +668,24 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/util-user-agent-browser@3.468.0": - version "3.468.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.468.0.tgz#095caecb3fd75104ee38ae81ed78821de0f58e28" - integrity sha512-OJyhWWsDEizR3L+dCgMXSUmaCywkiZ7HSbnQytbeKGwokIhD69HTiJcibF/sgcM5gk4k3Mq3puUhGnEZ46GIig== +"@aws-sdk/util-user-agent-browser@3.496.0": + version "3.496.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.496.0.tgz#494b086dd8b07acdd6be65034c51545e5bcee37b" + integrity sha512-4j2spN+h0I0qfSMsGvJXTfQBu1e18rPdekKvzsGJxhaAE1tNgUfUT4nbvc5uVn0sNjZmirskmJ3kfbzVOrqIFg== dependencies: - "@aws-sdk/types" "3.468.0" - "@smithy/types" "^2.7.0" + "@aws-sdk/types" "3.496.0" + "@smithy/types" "^2.9.1" bowser "^2.11.0" tslib "^2.5.0" -"@aws-sdk/util-user-agent-node@3.470.0": - version "3.470.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.470.0.tgz#b78605f336859d6c3b5f573cff931ce41f83a27d" - integrity sha512-QxsZ9iVHcBB/XRdYvwfM5AMvNp58HfqkIrH88mY0cmxuvtlIGDfWjczdDrZMJk9y0vIq+cuoCHsGXHu7PyiEAQ== +"@aws-sdk/util-user-agent-node@3.496.0": + version "3.496.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.496.0.tgz#db14e02cf82af556c826570efc7db1e57de3262d" + integrity sha512-h0Ax0jlDc7UIo3KoSI4C4tVLBFoiAdx3+DhTVfgLS7x93d41dMlziPoBX2RgdcFn37qnzw6AQKTVTMwDbRCGpg== dependencies: - "@aws-sdk/types" "3.468.0" - "@smithy/node-config-provider" "^2.1.8" - "@smithy/types" "^2.7.0" + "@aws-sdk/types" "3.496.0" + "@smithy/node-config-provider" "^2.2.1" + "@smithy/types" "^2.9.1" tslib "^2.5.0" "@aws-sdk/util-utf8-browser@^3.0.0": @@ -696,12 +695,12 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/xml-builder@3.472.0": - version "3.472.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.472.0.tgz#fe804e26517779868f7093e361dce4816be546d6" - integrity sha512-PwjVxz1hr9up8QkddabuScPZ/d5aDHgvHYgK4acHYzltXL4wngfvimi5ZqXTzVWF2QANxHmWnHUr45QJX71oJQ== +"@aws-sdk/xml-builder@3.496.0": + version "3.496.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.496.0.tgz#7d0ef487a8088ef84a5a9aad228e6173ca85341d" + integrity sha512-GvEjh537IIeOw1ZkZuB37sV12u+ipS5Z1dwjEC/HAvhl5ac23ULtTr1/n+U1gLNN+BAKSWjKiQ2ksj8DiUzeyw== dependencies: - "@smithy/types" "^2.7.0" + "@smithy/types" "^2.9.1" tslib "^2.5.0" "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.18.6": @@ -1002,17 +1001,17 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.6.0.tgz#ec6cd237440700bc23ca23087f513c75508958b0" integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA== -"@cspell/cspell-bundled-dicts@8.1.3": - version "8.1.3" - resolved "https://registry.yarnpkg.com/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-8.1.3.tgz#39d92ebeb9eeeeb943cc7e05525731a06b2f388a" - integrity sha512-TwLyL2bCtetXGhMudjOIgFPAsWF2UkT0E7T+DAZG8aUBfHoC/eco/sTmR6UJVpi6Crjs0YOQkFUBGrQ2pxJPcA== +"@cspell/cspell-bundled-dicts@8.3.2": + version "8.3.2" + resolved "https://registry.yarnpkg.com/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-8.3.2.tgz#649ed168a72cb49a7d83f3840ab6933a8beba68d" + integrity sha512-3ubOgz1/MDixJbq//0rQ2omB3cSdhVJDviERZeiREGz4HOq84aaK1Fqbw5SjNZHvhpoq+AYXm6kJbIAH8YhKgg== dependencies: "@cspell/dict-ada" "^4.0.2" - "@cspell/dict-aws" "^4.0.0" + "@cspell/dict-aws" "^4.0.1" "@cspell/dict-bash" "^4.1.3" - "@cspell/dict-companies" "^3.0.28" + "@cspell/dict-companies" "^3.0.29" "@cspell/dict-cpp" "^5.0.10" - "@cspell/dict-cryptocurrencies" "^4.0.0" + "@cspell/dict-cryptocurrencies" "^5.0.0" "@cspell/dict-csharp" "^4.0.2" "@cspell/dict-css" "^4.0.12" "@cspell/dict-dart" "^2.0.3" @@ -1020,15 +1019,15 @@ "@cspell/dict-docker" "^1.1.7" "@cspell/dict-dotnet" "^5.0.0" "@cspell/dict-elixir" "^4.0.3" - "@cspell/dict-en-common-misspellings" "^1.0.2" + "@cspell/dict-en-common-misspellings" "^2.0.0" "@cspell/dict-en-gb" "1.1.33" - "@cspell/dict-en_us" "^4.3.12" + "@cspell/dict-en_us" "^4.3.13" "@cspell/dict-filetypes" "^3.0.3" "@cspell/dict-fonts" "^4.0.0" "@cspell/dict-fsharp" "^1.0.1" "@cspell/dict-fullstack" "^3.1.5" "@cspell/dict-gaming-terms" "^1.0.4" - "@cspell/dict-git" "^2.0.0" + "@cspell/dict-git" "^3.0.0" "@cspell/dict-golang" "^6.0.5" "@cspell/dict-haskell" "^4.0.1" "@cspell/dict-html" "^4.0.5" @@ -1040,80 +1039,80 @@ "@cspell/dict-lua" "^4.0.3" "@cspell/dict-makefile" "^1.0.0" "@cspell/dict-node" "^4.0.3" - "@cspell/dict-npm" "^5.0.13" - "@cspell/dict-php" "^4.0.4" - "@cspell/dict-powershell" "^5.0.2" + "@cspell/dict-npm" "^5.0.14" + "@cspell/dict-php" "^4.0.5" + "@cspell/dict-powershell" "^5.0.3" "@cspell/dict-public-licenses" "^2.0.5" - "@cspell/dict-python" "^4.1.10" + "@cspell/dict-python" "^4.1.11" "@cspell/dict-r" "^2.0.1" - "@cspell/dict-ruby" "^5.0.1" + "@cspell/dict-ruby" "^5.0.2" "@cspell/dict-rust" "^4.0.1" "@cspell/dict-scala" "^5.0.0" - "@cspell/dict-software-terms" "^3.3.11" - "@cspell/dict-sql" "^2.1.2" + "@cspell/dict-software-terms" "^3.3.15" + "@cspell/dict-sql" "^2.1.3" "@cspell/dict-svelte" "^1.0.2" "@cspell/dict-swift" "^2.0.1" "@cspell/dict-typescript" "^3.1.2" "@cspell/dict-vue" "^3.0.0" -"@cspell/cspell-json-reporter@8.1.3": - version "8.1.3" - resolved "https://registry.yarnpkg.com/@cspell/cspell-json-reporter/-/cspell-json-reporter-8.1.3.tgz#5645bead06de8bbacedc654b61663b05c57bd8d0" - integrity sha512-9iOU0Y733XuF0cqC7xwzJkOKFdJ65rYGnHFdUHzr5lxEqeG9X/jhlkzyHuGGOhPxkUeFP1x9XoLhXo1isMDbKA== +"@cspell/cspell-json-reporter@8.3.2": + version "8.3.2" + resolved "https://registry.yarnpkg.com/@cspell/cspell-json-reporter/-/cspell-json-reporter-8.3.2.tgz#314f7b7deb465a7b94b03405c3498d9b96d410ab" + integrity sha512-gHSz4jXMJPcxx+lOGfXhHuoyenAWQ8PVA/atHFrWYKo1LzKTbpkEkrsDnlX8QNJubc3EMH63Uy+lOIaFDVyHiQ== dependencies: - "@cspell/cspell-types" "8.1.3" + "@cspell/cspell-types" "8.3.2" -"@cspell/cspell-pipe@8.1.3": - version "8.1.3" - resolved "https://registry.yarnpkg.com/@cspell/cspell-pipe/-/cspell-pipe-8.1.3.tgz#728567a69d7c315377c5a1178bbe9151da82048a" - integrity sha512-/dcnyLDeyFuoX4seZv7VsDQyRpt3ZY0vjZiDpqFul8hPydM8czLyRPPMD6Za+Gqg6dZmh9+VsQWK52hVsqc0QA== +"@cspell/cspell-pipe@8.3.2": + version "8.3.2" + resolved "https://registry.yarnpkg.com/@cspell/cspell-pipe/-/cspell-pipe-8.3.2.tgz#72b986c6c03ed9894d5ddafdcb435973336216b9" + integrity sha512-GZmDwvQGOjQi3IjD4k9xXeVTDANczksOsgVKb3v2QZk9mR4Qj8c6Uarjd4AgSiIhu/wBliJfzr5rWFJu4X2VfQ== -"@cspell/cspell-resolver@8.1.3": - version "8.1.3" - resolved "https://registry.yarnpkg.com/@cspell/cspell-resolver/-/cspell-resolver-8.1.3.tgz#e54bbb0b5d06813907c92cdead6d1dea12a54263" - integrity sha512-bGyJYqkHRilqhyKGL/NvODN5U+UvCuQo7kxgt0i3Vd7m7k6XYLsSLYZ4w6r1S5IQ/ybU8I5lh6/6fNqKwvo9eg== +"@cspell/cspell-resolver@8.3.2": + version "8.3.2" + resolved "https://registry.yarnpkg.com/@cspell/cspell-resolver/-/cspell-resolver-8.3.2.tgz#e4a981ed8fc2029804d8fa5847e47934a26c5c86" + integrity sha512-w2Tmb95bzdEz9L4W5qvsP5raZbyEzKL7N2ksU/+yh8NEJcTuExmAl/nMnb3aIk7m2b+kPHnMOcJuwfUMLmyv4A== dependencies: global-directory "^4.0.1" -"@cspell/cspell-service-bus@8.1.3": - version "8.1.3" - resolved "https://registry.yarnpkg.com/@cspell/cspell-service-bus/-/cspell-service-bus-8.1.3.tgz#2b34012d7905a596adf4a8a8daaead86c0d32666" - integrity sha512-8E5ZveQKneNfK+cuFMy0y6tDsho71UPppEHNoLZsEFDbIxDdtQcAfs0pk4nwEzxPBt+dBB+Yl8KExQ6x2FAYQw== +"@cspell/cspell-service-bus@8.3.2": + version "8.3.2" + resolved "https://registry.yarnpkg.com/@cspell/cspell-service-bus/-/cspell-service-bus-8.3.2.tgz#b1c6620232c22c0a7c8b68051e524963285f4768" + integrity sha512-skTHNyVi74//W/O+f4IauDhm6twA9S2whkylonsIzPxEl4Pn3y2ZEMXNki/MWUwZfDIzKKSxlcREH61g7zCvhg== -"@cspell/cspell-types@8.1.3": - version "8.1.3" - resolved "https://registry.yarnpkg.com/@cspell/cspell-types/-/cspell-types-8.1.3.tgz#aaba55f4a8f6496a30ccf2235675ec6c21b9e33a" - integrity sha512-j14FENj+DzWu6JjzTl+0X5/OJv9AEckpEp6Jaw9YglxirrBBzTkZGfoLePe/AWo/MlIYp0asl92C1UHEjgz+FQ== +"@cspell/cspell-types@8.3.2": + version "8.3.2" + resolved "https://registry.yarnpkg.com/@cspell/cspell-types/-/cspell-types-8.3.2.tgz#35a6d0f1a4c7c2a8a5275bcd41dacf85618f44c3" + integrity sha512-qS/gWd9ItOrN6ZX5pwC9lJjnBoyiAyhxYq0GUXuV892LQvwrBmECGk6KhsA1lPW7JJS7o57YTAS1jmXnmXMEpg== "@cspell/dict-ada@^4.0.2": version "4.0.2" resolved "https://registry.yarnpkg.com/@cspell/dict-ada/-/dict-ada-4.0.2.tgz#8da2216660aeb831a0d9055399a364a01db5805a" integrity sha512-0kENOWQeHjUlfyId/aCM/mKXtkEgV0Zu2RhUXCBr4hHo9F9vph+Uu8Ww2b0i5a4ZixoIkudGA+eJvyxrG1jUpA== -"@cspell/dict-aws@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@cspell/dict-aws/-/dict-aws-4.0.0.tgz#ab71fe0c05d9ad662d27495e74361bdcb5b470eb" - integrity sha512-1YkCMWuna/EGIDN/zKkW+j98/55mxigftrSFgsehXhPld+ZMJM5J9UuBA88YfL7+/ETvBdd7mwW6IwWsC+/ltQ== +"@cspell/dict-aws@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@cspell/dict-aws/-/dict-aws-4.0.1.tgz#a0e758531ae81792b928a3f406618296291a658a" + integrity sha512-NXO+kTPQGqaaJKa4kO92NAXoqS+i99dQzf3/L1BxxWVSBS3/k1f3uhmqIh7Crb/n22W793lOm0D9x952BFga3Q== "@cspell/dict-bash@^4.1.3": version "4.1.3" resolved "https://registry.yarnpkg.com/@cspell/dict-bash/-/dict-bash-4.1.3.tgz#25fba40825ac10083676ab2c777e471c3f71b36e" integrity sha512-tOdI3QVJDbQSwPjUkOiQFhYcu2eedmX/PtEpVWg0aFps/r6AyjUQINtTgpqMYnYuq8O1QUIQqnpx21aovcgZCw== -"@cspell/dict-companies@^3.0.28": - version "3.0.28" - resolved "https://registry.yarnpkg.com/@cspell/dict-companies/-/dict-companies-3.0.28.tgz#d617be3e036955d2f656d568f0cc6d1bdf198819" - integrity sha512-UinHkMYB/1pUkLKm1PGIm9PBFYxeAa6YvbB1Rq/RAAlrs0WDwiDBr3BAYdxydukG1IqqwT5z9WtU+8D/yV/5lw== +"@cspell/dict-companies@^3.0.29": + version "3.0.29" + resolved "https://registry.yarnpkg.com/@cspell/dict-companies/-/dict-companies-3.0.29.tgz#0c102c852a9b1c879cd926c0870e2cfbaf1cd176" + integrity sha512-F/8XnkqjU7jmSDAcD3LSSX+WxCVUWPssqlO4lzGMIK3MNIUt+d48eSIt3pFAIB/Z9y0ojoLHUtWX9HJ1ZtGrXQ== "@cspell/dict-cpp@^5.0.10": version "5.0.10" resolved "https://registry.yarnpkg.com/@cspell/dict-cpp/-/dict-cpp-5.0.10.tgz#08c3eb438b631dd3f0fc04f5a6d4b6cab87c8d9b" integrity sha512-WCRuDrkFdpmeIR6uXQYKU9loMQKNFS4bUhtHdv5fu4qVyJSh3k/kgmtTm1h1BDTj8EwPRc/RGxS+9Z3b2mnabA== -"@cspell/dict-cryptocurrencies@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@cspell/dict-cryptocurrencies/-/dict-cryptocurrencies-4.0.0.tgz#6517a7e1b0ed184cf3fc18f03230c82508369dec" - integrity sha512-EiZp91ATyRxTmauIQfOX9adLYCunKjHEh092rrM7o2eMXP9n7zpXAL9BK7LviL+LbB8VDOm21q+s83cKrrRrsg== +"@cspell/dict-cryptocurrencies@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-cryptocurrencies/-/dict-cryptocurrencies-5.0.0.tgz#19fbc7bdbec76ce64daf7d53a6d0f3cfff7d0038" + integrity sha512-Z4ARIw5+bvmShL+4ZrhDzGhnc9znaAGHOEMaB/GURdS/jdoreEDY34wdN0NtdLHDO5KO7GduZnZyqGdRoiSmYA== "@cspell/dict-csharp@^4.0.2": version "4.0.2" @@ -1155,20 +1154,20 @@ resolved "https://registry.yarnpkg.com/@cspell/dict-elixir/-/dict-elixir-4.0.3.tgz#57c25843e46cf3463f97da72d9ef8e37c818296f" integrity sha512-g+uKLWvOp9IEZvrIvBPTr/oaO6619uH/wyqypqvwpmnmpjcfi8+/hqZH8YNKt15oviK8k4CkINIqNhyndG9d9Q== -"@cspell/dict-en-common-misspellings@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-1.0.2.tgz#3c4ebab8e9e906d66d60f53c8f8c2e77b7f108e7" - integrity sha512-jg7ZQZpZH7+aAxNBlcAG4tGhYF6Ksy+QS5Df73Oo+XyckBjC9QS+PrRwLTeYoFIgXy5j3ICParK5r3MSSoL4gw== +"@cspell/dict-en-common-misspellings@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-2.0.0.tgz#708f424d75dc65237a6fcb8d253bc1e7ab641380" + integrity sha512-NOg8dlv37/YqLkCfBs5OXeJm/Wcfb/CzeOmOZJ2ZXRuxwsNuolb4TREUce0yAXRqMhawahY5TSDRJJBgKjBOdw== "@cspell/dict-en-gb@1.1.33": version "1.1.33" resolved "https://registry.yarnpkg.com/@cspell/dict-en-gb/-/dict-en-gb-1.1.33.tgz#7f1fd90fc364a5cb77111b5438fc9fcf9cc6da0e" integrity sha512-tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g== -"@cspell/dict-en_us@^4.3.12": - version "4.3.12" - resolved "https://registry.yarnpkg.com/@cspell/dict-en_us/-/dict-en_us-4.3.12.tgz#3b0ceaf5ed3cf30b225834ca7d528e4dc96e9605" - integrity sha512-1bsUxFjgxF30FTzcU5uvmCvH3lyqVKR9dbwsJhomBlUM97f0edrd6590SiYBXDm7ruE68m3lJd4vs0Ev2D6FtQ== +"@cspell/dict-en_us@^4.3.13": + version "4.3.13" + resolved "https://registry.yarnpkg.com/@cspell/dict-en_us/-/dict-en_us-4.3.13.tgz#4176be1e1510ac696a0fa33d9773aaffbf83a50d" + integrity sha512-T6lHiGCjloGNE0d8CogF+efJZPCAP8zdzn+KnlI0Bmjaz5nvG2LTX7CXl1zkOl1nYYev0FuIk9WJ9YPVRjcFbQ== "@cspell/dict-filetypes@^3.0.3": version "3.0.3" @@ -1195,10 +1194,10 @@ resolved "https://registry.yarnpkg.com/@cspell/dict-gaming-terms/-/dict-gaming-terms-1.0.4.tgz#b67d89d014d865da6cb40de4269d4c162a00658e" integrity sha512-hbDduNXlk4AOY0wFxcDMWBPpm34rpqJBeqaySeoUH70eKxpxm+dvjpoRLJgyu0TmymEICCQSl6lAHTHSDiWKZg== -"@cspell/dict-git@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@cspell/dict-git/-/dict-git-2.0.0.tgz#fa5cb298845da9c69efc01c6af07a99097718dc9" - integrity sha512-n1AxyX5Kgxij/sZFkxFJlzn3K9y/sCcgVPg/vz4WNJ4K9YeTsUmyGLA2OQI7d10GJeiuAo2AP1iZf2A8j9aj2w== +"@cspell/dict-git@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-git/-/dict-git-3.0.0.tgz#c275af86041a2b59a7facce37525e2af05653b95" + integrity sha512-simGS/lIiXbEaqJu9E2VPoYW1OTC2xrwPPXNXFMa2uo/50av56qOuaxDrZ5eH1LidFXwoc8HROCHYeKoNrDLSw== "@cspell/dict-golang@^6.0.5": version "6.0.5" @@ -1255,30 +1254,30 @@ resolved "https://registry.yarnpkg.com/@cspell/dict-node/-/dict-node-4.0.3.tgz#5ae0222d72871e82978049f8e11ea627ca42fca3" integrity sha512-sFlUNI5kOogy49KtPg8SMQYirDGIAoKBO3+cDLIwD4MLdsWy1q0upc7pzGht3mrjuyMiPRUV14Bb0rkVLrxOhg== -"@cspell/dict-npm@^5.0.13": - version "5.0.13" - resolved "https://registry.yarnpkg.com/@cspell/dict-npm/-/dict-npm-5.0.13.tgz#81051f791ee29563430145b360947f711316ccd1" - integrity sha512-uPb3DlQA/FvlmzT5RjZoy7fy91mxMRZW1B+K3atVM5A/cmP1QlDaSW/iCtde5kHET1MOV7uxz+vy0Yha2OI5pQ== +"@cspell/dict-npm@^5.0.14": + version "5.0.14" + resolved "https://registry.yarnpkg.com/@cspell/dict-npm/-/dict-npm-5.0.14.tgz#1ca3d305390f393bbfa75f41c4db0fd590ce1a9c" + integrity sha512-k0kC7/W2qG5YII+SW6s+JtvKrkZg651vizi5dv/5G2HmJaeLNgDqBVeeDk/uV+ntBorM66XG4BPMjSxoaIlC5w== -"@cspell/dict-php@^4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@cspell/dict-php/-/dict-php-4.0.4.tgz#7510c0fe4bdbb049c143eb3c471820d1e681bbb9" - integrity sha512-fRlLV730fJbulDsLIouZxXoxHt3KIH6hcLFwxaupHL+iTXDg0lo7neRpbqD5MScr/J3idEr7i9G8XWzIikKFug== +"@cspell/dict-php@^4.0.5": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@cspell/dict-php/-/dict-php-4.0.5.tgz#fa16350d907180a42f16d5e4666e61a97ae9b8b3" + integrity sha512-9r8ao7Z/mH9Z8pSB7yLtyvcCJWw+/MnQpj7xGVYzIV7V2ZWDRjXZAMgteHMJ37m8oYz64q5d4tiipD300QSetQ== -"@cspell/dict-powershell@^5.0.2": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@cspell/dict-powershell/-/dict-powershell-5.0.2.tgz#2b1d7d514354b6d7de405d5faaef30f8eca0ef09" - integrity sha512-IHfWLme3FXE7vnOmMncSBxOsMTdNWd1Vcyhag03WS8oANSgX8IZ+4lMI00mF0ptlgchf16/OU8WsV4pZfikEFw== +"@cspell/dict-powershell@^5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-powershell/-/dict-powershell-5.0.3.tgz#7bceb4e7db39f87479a6d2af3a033ce26796ae49" + integrity sha512-lEdzrcyau6mgzu1ie98GjOEegwVHvoaWtzQnm1ie4DyZgMr+N6D0Iyj1lzvtmt0snvsDFa5F2bsYzf3IMKcpcA== "@cspell/dict-public-licenses@^2.0.5": version "2.0.5" resolved "https://registry.yarnpkg.com/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.5.tgz#86948b29bd36184943955eaa80bf594488c4dd8a" integrity sha512-91HK4dSRri/HqzAypHgduRMarJAleOX5NugoI8SjDLPzWYkwZ1ftuCXSk+fy8DLc3wK7iOaFcZAvbjmnLhVs4A== -"@cspell/dict-python@^4.1.10": - version "4.1.10" - resolved "https://registry.yarnpkg.com/@cspell/dict-python/-/dict-python-4.1.10.tgz#bae6557e7b828a1701d3733b7766c4d95f279175" - integrity sha512-ErF/Ohcu6Xk4QVNzFgo8p7CxkxvAKAmFszvso41qOOhu8CVpB35ikBRpGVDw9gsCUtZzi15Yl0izi4do6WcLkA== +"@cspell/dict-python@^4.1.11": + version "4.1.11" + resolved "https://registry.yarnpkg.com/@cspell/dict-python/-/dict-python-4.1.11.tgz#4e339def01bf468b32d459c46ecb6894970b7eb8" + integrity sha512-XG+v3PumfzUW38huSbfT15Vqt3ihNb462ulfXifpQllPok5OWynhszCLCRQjQReV+dgz784ST4ggRxW452/kVg== dependencies: "@cspell/dict-data-science" "^1.0.11" @@ -1287,10 +1286,10 @@ resolved "https://registry.yarnpkg.com/@cspell/dict-r/-/dict-r-2.0.1.tgz#73474fb7cce45deb9094ebf61083fbf5913f440a" integrity sha512-KCmKaeYMLm2Ip79mlYPc8p+B2uzwBp4KMkzeLd5E6jUlCL93Y5Nvq68wV5fRLDRTf7N1LvofkVFWfDcednFOgA== -"@cspell/dict-ruby@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@cspell/dict-ruby/-/dict-ruby-5.0.1.tgz#a59df952d66781d811e7aac9208c145680e8cdf9" - integrity sha512-rruTm7Emhty/BSYavSm8ZxRuVw0OBqzJkwIFXcV0cX7To8D1qbmS9HFHRuRg8IL11+/nJvtdDz+lMFBSmPUagQ== +"@cspell/dict-ruby@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@cspell/dict-ruby/-/dict-ruby-5.0.2.tgz#cf1a71380c633dec0857143d3270cb503b10679a" + integrity sha512-cIh8KTjpldzFzKGgrqUX4bFyav5lC52hXDKo4LbRuMVncs3zg4hcSf4HtURY+f2AfEZzN6ZKzXafQpThq3dl2g== "@cspell/dict-rust@^4.0.1": version "4.0.1" @@ -1302,15 +1301,15 @@ resolved "https://registry.yarnpkg.com/@cspell/dict-scala/-/dict-scala-5.0.0.tgz#b64365ad559110a36d44ccd90edf7151ea648022" integrity sha512-ph0twaRoV+ylui022clEO1dZ35QbeEQaKTaV2sPOsdwIokABPIiK09oWwGK9qg7jRGQwVaRPEq0Vp+IG1GpqSQ== -"@cspell/dict-software-terms@^3.3.11": - version "3.3.12" - resolved "https://registry.yarnpkg.com/@cspell/dict-software-terms/-/dict-software-terms-3.3.12.tgz#49db44c470925c759465b6fdbd078f2a831e09c8" - integrity sha512-6aa4T9VqOMc0SFNBt6gxp0CWjvRqMg/uxvgpRbil+ToHWcU+Q+As0WKhPLaOniuTdCM85WWzRouD0O1XUGqg5Q== +"@cspell/dict-software-terms@^3.3.15": + version "3.3.16" + resolved "https://registry.yarnpkg.com/@cspell/dict-software-terms/-/dict-software-terms-3.3.16.tgz#c088501687e6a19625800cc612dae8aebaf0f086" + integrity sha512-ixorEP80LGxAU+ODVSn/CYIDjV0XAlZ2VrBu7CT+PwUFJ7h8o3JX1ywKB4qnt0hHru3JjWFtBoBThmZdrXnREQ== -"@cspell/dict-sql@^2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@cspell/dict-sql/-/dict-sql-2.1.2.tgz#80492b887e7986dd8bc39a9c5ea513ede2b17cb1" - integrity sha512-Pi0hAcvsSGtZZeyyAN1VfGtQJbrXos5x2QjJU0niAQKhmITSOrXU/1II1Gogk+FYDjWyV9wP2De0U2f7EWs6oQ== +"@cspell/dict-sql@^2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-sql/-/dict-sql-2.1.3.tgz#8d9666a82e35b310d0be4064032c0d891fbd2702" + integrity sha512-SEyTNKJrjqD6PAzZ9WpdSu6P7wgdNtGV2RV8Kpuw1x6bV+YsSptuClYG+JSdRExBTE6LwIe1bTklejUp3ZP8TQ== "@cspell/dict-svelte@^1.0.2": version "1.0.2" @@ -1332,17 +1331,17 @@ resolved "https://registry.yarnpkg.com/@cspell/dict-vue/-/dict-vue-3.0.0.tgz#68ccb432ad93fcb0fd665352d075ae9a64ea9250" integrity sha512-niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A== -"@cspell/dynamic-import@8.1.3": - version "8.1.3" - resolved "https://registry.yarnpkg.com/@cspell/dynamic-import/-/dynamic-import-8.1.3.tgz#7bfa0dc1dbbd44bced42677ff7129932bf325d3e" - integrity sha512-/lXFLa92v4oOcZ2PbdRpOqBvnqWlYmGaV7iCy8+QhIWlMdzi+7tBX3LVTm9Jzvt/rJseVHQQ6RvfTsSmhbUMFQ== +"@cspell/dynamic-import@8.3.2": + version "8.3.2" + resolved "https://registry.yarnpkg.com/@cspell/dynamic-import/-/dynamic-import-8.3.2.tgz#96fea6b1139164449a8ef92530de670d4c2fb36e" + integrity sha512-4t0xM5luA3yQhar2xWvYK4wQSDB2r0u8XkpzzJqd57MnJXd7uIAxI0awGUrDXukadRaCo0tDIlMUBemH48SNVg== dependencies: import-meta-resolve "^4.0.0" -"@cspell/strong-weak-map@8.1.3": - version "8.1.3" - resolved "https://registry.yarnpkg.com/@cspell/strong-weak-map/-/strong-weak-map-8.1.3.tgz#8c782d32bea999999c761a46b4010ee1569d07c1" - integrity sha512-GhWyximzk8tumo0zhrDV3+nFYiETYefiTBWAEVbXJMibuvitFocVZwddqN85J0UdZ2M7q6tvBleEaI9ME/16gA== +"@cspell/strong-weak-map@8.3.2": + version "8.3.2" + resolved "https://registry.yarnpkg.com/@cspell/strong-weak-map/-/strong-weak-map-8.3.2.tgz#5a9490e042bbc472089817b50cf51262dfedef65" + integrity sha512-Mte/2000ap278kRYOUhiGWI7MNr1+A7WSWJmlcdP4CAH5SO20sZI3/cyZLjJJEyapdhK5vaP1L5J9sUcVDHd3A== "@cspotcode/source-map-support@^0.8.0": version "0.8.1" @@ -1394,40 +1393,60 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.55.0": - version "8.55.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.55.0.tgz#b721d52060f369aa259cf97392403cb9ce892ec6" - integrity sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA== +"@eslint/js@8.56.0": + version "8.56.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b" + integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== "@faker-js/faker@^8.3.1": version "8.3.1" resolved "https://registry.yarnpkg.com/@faker-js/faker/-/faker-8.3.1.tgz#7753df0cb88d7649becf984a96dd1bd0a26f43e3" integrity sha512-FdgpFxY6V6rLZE9mmIBb9hM0xpfvQOSNOLnzolzKwsE1DH+gC7lEKV1p1IbR0lAYyvYd5a4u3qWJzowUkw1bIw== -"@graphql-tools/merge@8.3.18": - version "8.3.18" - resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.18.tgz#bfbb517c68598a885809f16ce5c3bb1ebb8f04a2" - integrity sha512-R8nBglvRWPAyLpZL/f3lxsY7wjnAeE0l056zHhcO/CgpvK76KYUt9oEkR05i8Hmt8DLRycBN0FiotJ0yDQWTVA== +"@graphql-tools/merge@9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-9.0.0.tgz#b0a3636c82716454bff88e9bb40108b0471db281" + integrity sha512-J7/xqjkGTTwOJmaJQJ2C+VDBDOWJL3lKrHJN4yMaRLAJH3PosB7GiPRaSDZdErs0+F77sH2MKs2haMMkywzx7Q== dependencies: - "@graphql-tools/utils" "9.2.1" + "@graphql-tools/utils" "^10.0.0" tslib "^2.4.0" -"@graphql-tools/schema@9.0.16": - version "9.0.16" - resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.16.tgz#7d340d69e6094dc01a2b9e625c7bb4fff89ea521" - integrity sha512-kF+tbYPPf/6K2aHG3e1SWIbapDLQaqnIHVRG6ow3onkFoowwtKszvUyOASL6Krcv2x9bIMvd1UkvRf9OaoROQQ== +"@graphql-tools/merge@^9.0.0": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-9.0.1.tgz#693f15da152339284469b1ce5c6827e3ae350a29" + integrity sha512-hIEExWO9fjA6vzsVjJ3s0cCQ+Q/BEeMVJZtMXd7nbaVefVy0YDyYlEkeoYYNV3NVVvu1G9lr6DM1Qd0DGo9Caw== dependencies: - "@graphql-tools/merge" "8.3.18" - "@graphql-tools/utils" "9.2.1" + "@graphql-tools/utils" "^10.0.10" tslib "^2.4.0" - value-or-promise "1.0.12" -"@graphql-tools/utils@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-9.2.1.tgz#1b3df0ef166cfa3eae706e3518b17d5922721c57" - integrity sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A== +"@graphql-tools/schema@10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-10.0.0.tgz#7b5f6b6a59f51c927de8c9069bde4ebbfefc64b3" + integrity sha512-kf3qOXMFcMs2f/S8Y3A8fm/2w+GaHAkfr3Gnhh2LOug/JgpY/ywgFVxO3jOeSpSEdoYcDKLcXVjMigNbY4AdQg== + dependencies: + "@graphql-tools/merge" "^9.0.0" + "@graphql-tools/utils" "^10.0.0" + tslib "^2.4.0" + value-or-promise "^1.0.12" + +"@graphql-tools/utils@10.0.8": + version "10.0.8" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-10.0.8.tgz#c7b84275ec83dc42ad9f3d4ffc424ff682075759" + integrity sha512-yjyA8ycSa1WRlJqyX/aLqXeE5DvF/H02+zXMUFnCzIDrj0UvLMUrxhmVFnMK0Q2n3bh4uuTeY3621m5za9ovXw== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + cross-inspect "1.0.0" + dset "^3.1.2" + tslib "^2.4.0" + +"@graphql-tools/utils@^10.0.0", "@graphql-tools/utils@^10.0.10": + version "10.0.13" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-10.0.13.tgz#d0ab7a4dd02a8405f5ef62dd140b7579ba69f8cb" + integrity sha512-fMILwGr5Dm2zefNItjQ6C2rauigklv69LIwppccICuGTnGaOp3DspLt/6Lxj72cbg5d9z60Sr+Egco3CJKLsNg== dependencies: "@graphql-typed-document-node/core" "^3.1.1" + cross-inspect "1.0.0" + dset "^3.1.2" tslib "^2.4.0" "@graphql-typed-document-node/core@^3.1.1": @@ -1435,12 +1454,12 @@ resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== -"@hapi/hoek@^9.0.0": +"@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0": version "9.3.0" resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== -"@hapi/topo@^5.0.0": +"@hapi/topo@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== @@ -1800,6 +1819,13 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" +"@ljharb/through@^2.3.9": + version "2.3.11" + resolved "https://registry.yarnpkg.com/@ljharb/through/-/through-2.3.11.tgz#783600ff12c06f21a76cc26e33abd0b1595092f9" + integrity sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w== + dependencies: + call-bind "^1.0.2" + "@lukeed/csprng@^1.0.0": version "1.0.1" resolved "https://registry.yarnpkg.com/@lukeed/csprng/-/csprng-1.0.1.tgz#625e93a0edb2c830e3c52ce2d67b9d53377c6a66" @@ -1817,14 +1843,14 @@ resolved "https://registry.yarnpkg.com/@nestjs/axios/-/axios-3.0.1.tgz#b006f81dd54a49def92cfaf9a8970434567e75ce" integrity sha512-VlOZhAGDmOoFdsmewn8AyClAdGpKXQQaY1+3PGB+g6ceurGIdTxZgRX3VXc1T6Zs60PedWjg3A82TDOB05mrzQ== -"@nestjs/cli@^10.2.1": - version "10.2.1" - resolved "https://registry.yarnpkg.com/@nestjs/cli/-/cli-10.2.1.tgz#a1d32c28e188f0fb4c3f54235c55745de4c6dd7f" - integrity sha512-CAJAQwmxFZfB3RTvqz/eaXXWpyU+mZ4QSqfBYzjneTsPgF+uyOAW3yQpaLNn9Dfcv39R9UxSuAhayv6yuFd+Jg== +"@nestjs/cli@^10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@nestjs/cli/-/cli-10.3.0.tgz#5f9ef49a60baf4b39cb87e4b74240f7c9339e923" + integrity sha512-37h+wSDItY0NE/x3a/M9yb2cXzfsD4qoE26rHgFn592XXLelDN12wdnfn7dTIaiRZT7WOCdQ+BYP9mQikR4AsA== dependencies: - "@angular-devkit/core" "16.2.8" - "@angular-devkit/schematics" "16.2.8" - "@angular-devkit/schematics-cli" "16.2.8" + "@angular-devkit/core" "17.0.9" + "@angular-devkit/schematics" "17.0.9" + "@angular-devkit/schematics-cli" "17.0.9" "@nestjs/schematics" "^10.0.1" chalk "4.1.2" chokidar "3.5.3" @@ -1835,21 +1861,20 @@ inquirer "8.2.6" node-emoji "1.11.0" ora "5.4.1" - os-name "4.0.1" rimraf "4.4.1" shelljs "0.8.5" source-map-support "0.5.21" tree-kill "1.2.2" tsconfig-paths "4.2.0" tsconfig-paths-webpack-plugin "4.1.0" - typescript "5.2.2" + typescript "5.3.3" webpack "5.89.0" webpack-node-externals "3.0.0" -"@nestjs/common@^10.2.10": - version "10.2.10" - resolved "https://registry.yarnpkg.com/@nestjs/common/-/common-10.2.10.tgz#22ba5c17962b54ffdf70a7bad690f1647995fe55" - integrity sha512-fwAk931rjW8CNH2Mgwawq/7HWHH1dxkOLdcgs7U52ddLk8CtHXjejm1cbNahewlSbNhvlOl7y1STLHutE6sUqw== +"@nestjs/common@^10.3.1": + version "10.3.1" + resolved "https://registry.yarnpkg.com/@nestjs/common/-/common-10.3.1.tgz#7aa5a0ffbd0123533adc1cfee8fd184b74bc2fc1" + integrity sha512-YuxeIlVemVQCuXMkNbBpNlmwZgp/Cu6dwCOjki63mhyYHEFX48GNNA4zZn5MFRjF4h7VSceABsScROuzsxs9LA== dependencies: uid "2.0.2" iterare "1.2.1" @@ -1865,10 +1890,10 @@ lodash "4.17.21" uuid "9.0.0" -"@nestjs/core@^10.2.10": - version "10.2.10" - resolved "https://registry.yarnpkg.com/@nestjs/core/-/core-10.2.10.tgz#96b6fda7785402b0a3b819c15103675990b75290" - integrity sha512-+ckOI6BPi2ZMHikT9MCG4ctHDc4OnjhoIytrn7f2AYMMXI4bnutJhqyQKc30VDka5x3Wq6QAD57pgSP7y+JjJg== +"@nestjs/core@^10.3.1": + version "10.3.1" + resolved "https://registry.yarnpkg.com/@nestjs/core/-/core-10.3.1.tgz#96f34ad7e6efab080ac7c3f07d5454c9705eccc4" + integrity sha512-mh6FwTKh2R3CmLRuB50BF5q/lzc+Mz+7qAlEvpgCiTSIfSXzbQ47vWpfgLirwkL3SlCvtFS8onxOeI69RpxvXA== dependencies: uid "2.0.2" "@nuxtjs/opencollective" "0.3.2" @@ -1877,25 +1902,25 @@ path-to-regexp "3.2.0" tslib "2.6.2" -"@nestjs/graphql@^10.0.20": - version "10.2.1" - resolved "https://registry.yarnpkg.com/@nestjs/graphql/-/graphql-10.2.1.tgz#703315b21ebdea2b8d0ebc8bc725da668f665b3d" - integrity sha512-FBzYTymT4oopiGMpej7GTRyhz1BgJxLlXZPUueamC5J9u1WxCwJyETkzBI/zeUkUydlklF/xd5zDd/Md6//hEw== +"@nestjs/graphql@~12.0.11": + version "12.0.11" + resolved "https://registry.yarnpkg.com/@nestjs/graphql/-/graphql-12.0.11.tgz#8ea2324f529828b5f8202850cbb7ac8cd51925e0" + integrity sha512-iCyVs9+utCQt9ehMhUjQcEdjRN/MrcTBINd7P44O1fzGENuWMbt1Z8RCoZbeGi5iVPBY63HgYik+BnnICqmxZw== dependencies: - "@graphql-tools/merge" "8.3.18" - "@graphql-tools/schema" "9.0.16" - "@graphql-tools/utils" "9.2.1" - "@nestjs/mapped-types" "1.2.2" + "@graphql-tools/merge" "9.0.0" + "@graphql-tools/schema" "10.0.0" + "@graphql-tools/utils" "10.0.8" + "@nestjs/mapped-types" "2.0.2" chokidar "3.5.3" - fast-glob "3.2.12" + fast-glob "3.3.2" graphql-tag "2.12.6" - graphql-ws "5.11.3" + graphql-ws "5.14.2" lodash "4.17.21" normalize-path "3.0.0" subscriptions-transport-ws "0.11.0" - tslib "2.5.0" - uuid "9.0.0" - ws "8.12.0" + tslib "2.6.2" + uuid "9.0.1" + ws "8.14.2" "@nestjs/jwt@^10.2.0": version "10.2.0" @@ -1905,10 +1930,10 @@ "@types/jsonwebtoken" "9.0.5" jsonwebtoken "9.0.2" -"@nestjs/mapped-types@1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@nestjs/mapped-types/-/mapped-types-1.2.2.tgz#d9ddb143776e309dbc1a518ac1607fddac1e140e" - integrity sha512-3dHxLXs3M0GPiriAcCFFJQHoDFUuzTD5w6JDhE7TyfT89YKpe6tcCCIqOZWdXmt9AZjjK30RkHRSFF+QEnWFQg== +"@nestjs/mapped-types@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@nestjs/mapped-types/-/mapped-types-2.0.2.tgz#c8a090a8d22145b85ed977414c158534210f2e4f" + integrity sha512-V0izw6tWs6fTp9+KiiPUbGHWALy563Frn8X6Bm87ANLRuE46iuBMD5acKBDP5lKL/75QFvrzSJT7HkCbB0jTpg== "@nestjs/mapped-types@2.0.4": version "2.0.4" @@ -1925,10 +1950,10 @@ resolved "https://registry.yarnpkg.com/@nestjs/passport/-/passport-10.0.3.tgz#26ec5b2167d364e04962c115fcef80d10e185367" integrity sha512-znJ9Y4S8ZDVY+j4doWAJ8EuuVO7SkQN3yOBmzxbGaXbvcSwFDAdGJ+OMCg52NdzIO4tQoN4pYKx8W6M0ArfFRQ== -"@nestjs/platform-express@^10.2.10": - version "10.2.10" - resolved "https://registry.yarnpkg.com/@nestjs/platform-express/-/platform-express-10.2.10.tgz#6ff94e5a3f3a15ff39d8044e966fd4ceecd8d068" - integrity sha512-U4KDgtMjH8TqEvt0RzC/POP8ABvL9bYoCScvlGtFSKgVGaMLBKkZ4+jHtbQx6qItYSlBBRUuz/dveMZCObfrkQ== +"@nestjs/platform-express@^10.3.1": + version "10.3.1" + resolved "https://registry.yarnpkg.com/@nestjs/platform-express/-/platform-express-10.3.1.tgz#f72f337ddd96895e56284b13971bdbd3479e24b3" + integrity sha512-Rj21quI5h4Lry7q9an+nO4ADQiQUy9A6XK74o5aTUHo3Ysm25ujqh2NgU4XbT3M2oXU9qzhE59OfhkQ7ZUvTAg== dependencies: body-parser "1.20.2" cors "2.8.5" @@ -1955,27 +1980,27 @@ jsonc-parser "3.2.0" pluralize "8.0.0" -"@nestjs/schematics@^10.0.3": - version "10.0.3" - resolved "https://registry.yarnpkg.com/@nestjs/schematics/-/schematics-10.0.3.tgz#0f48af0a20983ffecabcd8763213a3e53d43f270" - integrity sha512-2BRujK0GqGQ7j1Zpz+obVfskDnnOeVKt5aXoSaVngKo8Oczy8uYCY+R547TQB+Kf35epdfFER2pVnQrX3/It5A== +"@nestjs/schematics@^10.1.0": + version "10.1.0" + resolved "https://registry.yarnpkg.com/@nestjs/schematics/-/schematics-10.1.0.tgz#bf9be846bafad0f45f0ea5ed80aaaf971bb90873" + integrity sha512-HQWvD3F7O0Sv3qHS2jineWxPLmBTLlyjT6VdSw2EAIXulitmV+ErxB3TCVQQORlNkl5p5cwRYWyBaOblDbNFIQ== dependencies: - "@angular-devkit/core" "16.2.8" - "@angular-devkit/schematics" "16.2.8" + "@angular-devkit/core" "17.0.9" + "@angular-devkit/schematics" "17.0.9" comment-json "4.2.3" jsonc-parser "3.2.0" pluralize "8.0.0" -"@nestjs/swagger@^7.1.17": - version "7.1.17" - resolved "https://registry.yarnpkg.com/@nestjs/swagger/-/swagger-7.1.17.tgz#3f8d849db8983cf609264270e83418bf5b379085" - integrity sha512-ASCxBrvMEN2o/8vEEmrIPMNzrr/hVi7QIR4y1oNYvoBNXHuwoF1VSI3+4Rq/3xmwVnVveJxHlBIs2u5xY9VgGQ== +"@nestjs/swagger@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@nestjs/swagger/-/swagger-7.2.0.tgz#a449ab0a2319eca8e695cf3892f4e63bbd8a916d" + integrity sha512-W7WPq561/79w27ZEgViXS7c5hqPwT7QXhsLsSeu2jeBROUhMM825QKDFKbMmtb643IW5dznJ4PjherlZZgtMvg== dependencies: "@nestjs/mapped-types" "2.0.4" js-yaml "4.1.0" lodash "4.17.21" path-to-regexp "3.2.0" - swagger-ui-dist "5.10.3" + swagger-ui-dist "5.11.0" "@nestjs/terminus@^10.2.0": version "10.2.0" @@ -1985,17 +2010,17 @@ boxen "5.1.2" check-disk-space "3.4.0" -"@nestjs/testing@^10.2.10": - version "10.2.10" - resolved "https://registry.yarnpkg.com/@nestjs/testing/-/testing-10.2.10.tgz#bd0a1e86622f7aa8cf6d8804af0f23b9444c3099" - integrity sha512-IVLUnPz/+fkBtPATYfqTIP+phN9yjkXejmj+JyhmcfPJZpxBmD1i9VSMqa4u54l37j0xkGPscQ0IXpbhqMYUKw== +"@nestjs/testing@^10.3.1": + version "10.3.1" + resolved "https://registry.yarnpkg.com/@nestjs/testing/-/testing-10.3.1.tgz#ea28a7d29122dd3a2df1542842e741a52dd7c474" + integrity sha512-74aSAugWT31jSPnStyRWDXgjHXWO3GYaUfAZ2T7Dml88UGkGy95iwaWgYy7aYM8/xVFKcDYkfL5FAYqZYce/yg== dependencies: tslib "2.6.2" -"@nestjs/throttler@^5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@nestjs/throttler/-/throttler-5.1.0.tgz#95cff2c2d02cc16a6e67452e451624fc9190b1e4" - integrity sha512-3Wi15O4R8zjwM8jsx3zND5VVdqjTlFx8K5JUJZwBjZa6B+iV6IFeYnYInJh10/ybf29xIueKECEbD7hT1Id3/g== +"@nestjs/throttler@^5.1.1": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@nestjs/throttler/-/throttler-5.1.1.tgz#cefdf1bc28c6692769412692db78753317f9e59b" + integrity sha512-0fJAGroqpQLnQlERslx2fG264YCXU35nMfiFhykY6/chgc56/W0QPM6BEEf9Q/Uca9lXh5IyjE0fqFToksbP/A== dependencies: md5 "^2.2.1" @@ -2020,12 +2045,12 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@ntegral/nestjs-sentry@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@ntegral/nestjs-sentry/-/nestjs-sentry-4.0.0.tgz#db2747ec57e128f82801682187a61265e061d385" - integrity sha512-6WHZcK7NLeg7ue1y3Z61msEBzCGZeXQ0hWhliH1ddQH0kPbZ6lXLxduGMWYb0N/fPjXAX1Astz8urqnoTOZBQw== +"@ntegral/nestjs-sentry@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@ntegral/nestjs-sentry/-/nestjs-sentry-4.0.1.tgz#2937d56ae365fd22b06d5a1709dcdf20e0629c85" + integrity sha512-GQUL0Bm0T+FhTNJXUbnF5mZc2u5YuvUV2H6naXxrnw8tY0b9eE/DGj+GUyHNL7V2DuHHFzsYP2c30O5FoGoYfQ== optionalDependencies: - "@nestjs/graphql" "^10.0.20" + "@nestjs/graphql" "~12.0.11" "@nuxtjs/opencollective@0.3.2": version "0.3.2" @@ -2041,47 +2066,46 @@ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== -"@sentry-internal/tracing@7.87.0": - version "7.87.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.87.0.tgz#e0a9d5d9fd1d68c432eae14bf1f4d4dccffaa97e" - integrity sha512-HYa0+rfFmYQ/DadXoiuarTSxrcnYDCd/fm0pFuOHjICtfja8IcLegVYP2/r3CgwB+IjquCtJ5kDcqS/NTgUcpA== +"@sentry-internal/tracing@7.95.0": + version "7.95.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.95.0.tgz#d439ac65bc612ec9a808ad39a2088d1577c17a18" + integrity sha512-YKiLPMnEgTsTh7u/W1Zep9HtV1rJqAetqJ4ekaIxyUUB6ppi6V00MacSjb01o++fwlNNDYFxNpJlgQqNPqsCNA== dependencies: - "@sentry/core" "7.87.0" - "@sentry/types" "7.87.0" - "@sentry/utils" "7.87.0" + "@sentry/core" "7.95.0" + "@sentry/types" "7.95.0" + "@sentry/utils" "7.95.0" -"@sentry/core@7.87.0": - version "7.87.0" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.87.0.tgz#98cdd1ce04f781353224dd1ac79b4ef7f6786053" - integrity sha512-jkoXqK/nuYh8DYS+n7uaSuSIdw4HJemyRkXsWjAEPtEgD7taGMafZGbP5pl+XE38SE59jTBxmKnkUEZOFMgZGA== +"@sentry/core@7.95.0": + version "7.95.0" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.95.0.tgz#b16a4d82cdcaa3b330091dd624a4416e63d157ab" + integrity sha512-z+ffO6jK/ZUxnRbBGmnj5sOouKZ4mvRY0KJa33kbyqcmeiJKrN81M7Ecj1IJUCamo/6RqX0GCwDDxgUPZZZBwA== dependencies: - "@sentry/types" "7.87.0" - "@sentry/utils" "7.87.0" + "@sentry/types" "7.95.0" + "@sentry/utils" "7.95.0" -"@sentry/node@^7.87.0": - version "7.87.0" - resolved "https://registry.yarnpkg.com/@sentry/node/-/node-7.87.0.tgz#e5450f197f5efe7ad3d61a5ce670e9c8c7f9c088" - integrity sha512-mGcZMCL3/IMTLIRcWLF+H9z2Bb2d34gKmg2rhXqI8BqhhUA551jMRlZv/y4za2Osjy550KwVoNsA1qtEe5mYyQ== +"@sentry/node@^7.95.0": + version "7.95.0" + resolved "https://registry.yarnpkg.com/@sentry/node/-/node-7.95.0.tgz#f9c846d4f8cf31f589b6f002162a9da45fbd3944" + integrity sha512-3fbN+4ajPly9rhbuJtuZ+o2FGmka8Y7A3T/ooHuhCGoWegKtn3OzaOIrdwcYoBIy1fO6SuldTi/P72Y7wgIPtw== dependencies: - "@sentry-internal/tracing" "7.87.0" - "@sentry/core" "7.87.0" - "@sentry/types" "7.87.0" - "@sentry/utils" "7.87.0" - https-proxy-agent "^5.0.0" + "@sentry-internal/tracing" "7.95.0" + "@sentry/core" "7.95.0" + "@sentry/types" "7.95.0" + "@sentry/utils" "7.95.0" -"@sentry/types@7.87.0": - version "7.87.0" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.87.0.tgz#9f9a5e4ce97676af17dda01766399f31c8916ca4" - integrity sha512-w8jKFHq/Llupmr2FezmFgQsnm3y/CnqLjb7s6PstI78E409wrhH7p7oqX/OEuzccH1qNCNwes/3QKvPTRQDB4Q== +"@sentry/types@7.95.0": + version "7.95.0" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.95.0.tgz#94fbde10eaec4949d81ca9e3f6fe1d1cc0b2d9e5" + integrity sha512-ouU7NsEcrwmcnXHMNBGmKZEmKMzmgPGoBydZn1gukCI67Ci71fAYpPNrbtmjai6+jtsY21o45rVLqExru2sdfw== -"@sentry/utils@7.87.0": - version "7.87.0" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.87.0.tgz#95ca4bf2208077346f9d433ba536ee1610ec3cae" - integrity sha512-7xgtPTnTNP/4IznFMFXxltuaXfLvzznrYCDMv9ny8EeUjJqlLX3CVA8Qq3YALsLCQCKcrGRARbAcd/EGG//w2w== +"@sentry/utils@7.95.0": + version "7.95.0" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.95.0.tgz#2b66778eb70a412f3ac0147bbcd0648a914f0411" + integrity sha512-0zget8AOaQWLIEA9cTx/qiQQYpx2x0UfnaW5xRmQg12QGTSngo/cUm9O04zuHw5gpBBGG0ocMDHxwwr+UCCBiw== dependencies: - "@sentry/types" "7.87.0" + "@sentry/types" "7.95.0" -"@sideway/address@^4.1.3": +"@sideway/address@^4.1.4": version "4.1.4" resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw== @@ -2122,553 +2146,468 @@ dependencies: "@sinonjs/commons" "^2.0.0" -"@smithy/abort-controller@^2.0.15": - version "2.0.15" - resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-2.0.15.tgz#fcec9193da8b86eef1eedc3e71139a99c061db32" - integrity sha512-JkS36PIS3/UCbq/MaozzV7jECeL+BTt4R75bwY8i+4RASys4xOyUS1HsRyUNSqUXFP4QyCz5aNnh3ltuaxv+pw== - dependencies: - "@smithy/types" "^2.7.0" - tslib "^2.5.0" - -"@smithy/chunked-blob-reader-native@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-2.0.1.tgz#0599eaed8c2cd15c7ab43a1838cef1258ff27133" - integrity sha512-N2oCZRglhWKm7iMBu7S6wDzXirjAofi7tAd26cxmgibRYOBS4D3hGfmkwCpHdASZzwZDD8rluh0Rcqw1JeZDRw== +"@smithy/abort-controller@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-2.1.1.tgz#bb68596a7c8213c2ef259bc7fb0f0c118c67ea9d" + integrity sha512-1+qdrUqLhaALYL0iOcN43EP6yAXXQ2wWZ6taf4S2pNGowmOc5gx+iMQv+E42JizNJjB0+gEadOXeV1Bf7JWL1Q== dependencies: - "@smithy/util-base64" "^2.0.1" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@smithy/chunked-blob-reader@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader/-/chunked-blob-reader-2.0.0.tgz#c44fe2c780eaf77f9e5381d982ac99a880cce51b" - integrity sha512-k+J4GHJsMSAIQPChGBrjEmGS+WbPonCXesoqP9fynIqjn7rdOThdH8FAeCmokP9mxTYKQAKoHCLPzNlm6gh7Wg== +"@smithy/chunked-blob-reader-native@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-2.1.1.tgz#6b98479c8f6ea94832dd6a6e5ca78969a44eafe1" + integrity sha512-zNW+43dltfNMUrBEYLMWgI8lQr0uhtTcUyxkgC9EP4j17WREzgSFMPUFVrVV6Rc2+QtWERYjb4tzZnQGa7R9fQ== dependencies: + "@smithy/util-base64" "^2.1.1" tslib "^2.5.0" -"@smithy/config-resolver@^2.0.21": - version "2.0.21" - resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-2.0.21.tgz#97cb1c71f3c8c453fb01169545f98414b3414d7f" - integrity sha512-rlLIGT+BeqjnA6C2FWumPRJS1UW07iU5ZxDHtFuyam4W65gIaOFMjkB90ofKCIh+0mLVQrQFrl/VLtQT/6FWTA== +"@smithy/chunked-blob-reader@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader/-/chunked-blob-reader-2.1.1.tgz#997faba8e197e0cb9824dad30ae581466e386e57" + integrity sha512-NjNFCKxC4jVvn+lUr3Yo4/PmUJj3tbyqH6GNHueyTGS5Q27vlEJ1MkNhUDV8QGxJI7Bodnc2pD18lU2zRfhHlQ== dependencies: - "@smithy/node-config-provider" "^2.1.8" - "@smithy/types" "^2.7.0" - "@smithy/util-config-provider" "^2.0.0" - "@smithy/util-middleware" "^2.0.8" tslib "^2.5.0" -"@smithy/credential-provider-imds@^2.0.0": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-2.0.2.tgz#9096ff1a2ceb235497a62d469ac70086b96022ad" - integrity sha512-mbWFYEZ00LBRDk3WvcXViwpdpkJQcfrM3seuKzFxZnF6wIBLMwrcWcsj+OUC/1L+86m8aQY9imXMAaQsAoGxow== +"@smithy/config-resolver@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-2.1.1.tgz#fc6b036084b98fd26a8ff01a5d7eb676e41749c7" + integrity sha512-lxfLDpZm+AWAHPFZps5JfDoO9Ux1764fOgvRUBpHIO8HWHcSN1dkgsago1qLRVgm1BZ8RCm8cgv99QvtaOWIhw== dependencies: - "@smithy/node-config-provider" "^2.0.2" - "@smithy/property-provider" "^2.0.2" - "@smithy/types" "^2.1.0" - "@smithy/url-parser" "^2.0.2" + "@smithy/node-config-provider" "^2.2.1" + "@smithy/types" "^2.9.1" + "@smithy/util-config-provider" "^2.2.1" + "@smithy/util-middleware" "^2.1.1" tslib "^2.5.0" -"@smithy/credential-provider-imds@^2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-2.1.4.tgz#126adf69eac333f23f8683edbfabdc2b3b2deb15" - integrity sha512-cwPJN1fa1YOQzhBlTXRavABEYRRchci1X79QRwzaNLySnIMJfztyv1Zkst0iZPLMnpn8+CnHu3wOHS11J5Dr3A== - dependencies: - "@smithy/node-config-provider" "^2.1.8" - "@smithy/property-provider" "^2.0.16" - "@smithy/types" "^2.7.0" - "@smithy/url-parser" "^2.0.15" +"@smithy/core@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-1.3.1.tgz#ecedc564e68453b02c20db9e8435d59005c066d8" + integrity sha512-tf+NIu9FkOh312b6M9G4D68is4Xr7qptzaZGZUREELF8ysE1yLKphqt7nsomjKZVwW7WE5pDDex9idowNGRQ/Q== + dependencies: + "@smithy/middleware-endpoint" "^2.4.1" + "@smithy/middleware-retry" "^2.1.1" + "@smithy/middleware-serde" "^2.1.1" + "@smithy/protocol-http" "^3.1.1" + "@smithy/smithy-client" "^2.3.1" + "@smithy/types" "^2.9.1" + "@smithy/util-middleware" "^2.1.1" tslib "^2.5.0" -"@smithy/eventstream-codec@^2.0.15": - version "2.0.15" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-2.0.15.tgz#733e638fd38e7e264bc0429dbda139bab950bd25" - integrity sha512-crjvz3j1gGPwA0us6cwS7+5gAn35CTmqu/oIxVbYJo2Qm/sGAye6zGJnMDk3BKhWZw5kcU1G4MxciTkuBpOZPg== +"@smithy/credential-provider-imds@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-2.2.1.tgz#4805bf5e104718b959cf8699113fa9de6ddeeafa" + integrity sha512-7XHjZUxmZYnONheVQL7j5zvZXga+EWNgwEAP6OPZTi7l8J4JTeNh9aIOfE5fKHZ/ee2IeNOh54ZrSna+Vc6TFA== dependencies: - "@aws-crypto/crc32" "3.0.0" - "@smithy/types" "^2.7.0" - "@smithy/util-hex-encoding" "^2.0.0" + "@smithy/node-config-provider" "^2.2.1" + "@smithy/property-provider" "^2.1.1" + "@smithy/types" "^2.9.1" + "@smithy/url-parser" "^2.1.1" tslib "^2.5.0" -"@smithy/eventstream-codec@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-2.0.2.tgz#9d81c8d081ac28ba098d98b06cbb39955af1e09b" - integrity sha512-PQZiKx7fMnNwx4zxcUCm82VjnqK6wV4MEHSmMy3taj5dKfXV782IjRGyaDT+8TsmNqVdZIkve5zLRAzh+7kOhA== +"@smithy/eventstream-codec@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-2.1.1.tgz#4405ab0f9c77d439c575560c4886e59ee17d6d38" + integrity sha512-E8KYBxBIuU4c+zrpR22VsVrOPoEDzk35bQR3E+xm4k6Pa6JqzkDOdMyf9Atac5GPNKHJBdVaQ4JtjdWX2rl/nw== dependencies: "@aws-crypto/crc32" "3.0.0" - "@smithy/types" "^2.1.0" - "@smithy/util-hex-encoding" "^2.0.0" + "@smithy/types" "^2.9.1" + "@smithy/util-hex-encoding" "^2.1.1" tslib "^2.5.0" -"@smithy/eventstream-serde-browser@^2.0.15": - version "2.0.15" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.0.15.tgz#f62c891e6f8ad59f552a92d8aa14eb6b4541d418" - integrity sha512-WiFG5N9j3jmS5P0z5Xev6dO0c3lf7EJYC2Ncb0xDnWFvShwXNn741AF71ABr5EcZw8F4rQma0362MMjAwJeZog== +"@smithy/eventstream-serde-browser@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.1.1.tgz#743a374639e9e2dd858b6fda1fd814eb6c604946" + integrity sha512-JvEdCmGlZUay5VtlT8/kdR6FlvqTDUiJecMjXsBb0+k1H/qc9ME5n2XKPo8q/MZwEIA1GmGgYMokKGjVvMiDow== dependencies: - "@smithy/eventstream-serde-universal" "^2.0.15" - "@smithy/types" "^2.7.0" + "@smithy/eventstream-serde-universal" "^2.1.1" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@smithy/eventstream-serde-config-resolver@^2.0.15": - version "2.0.15" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.0.15.tgz#50e98c59aeb31a0702bad5dfab4009a15fc8b3bf" - integrity sha512-o65d2LRjgCbWYH+VVNlWXtmsI231SO99ZTOL4UuIPa6WTjbSHWtlXvUcJG9libhEKWmEV9DIUiH2IqyPWi7ubA== +"@smithy/eventstream-serde-config-resolver@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.1.1.tgz#0b84d6f8be0836af7b92455c69f7427e4f01e7a2" + integrity sha512-EqNqXYp3+dk//NmW3NAgQr9bEQ7fsu/CcxQmTiq07JlaIcne/CBWpMZETyXm9w5LXkhduBsdXdlMscfDUDn2fA== dependencies: - "@smithy/types" "^2.7.0" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@smithy/eventstream-serde-node@^2.0.15": - version "2.0.15" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.0.15.tgz#8be1bd024048adcff4ccbb723c55fc42ce582d33" - integrity sha512-9OOXiIhHq1VeOG6xdHkn2ZayfMYM3vzdUTV3zhcCnt+tMqA3BJK3XXTJFRR2BV28rtRM778DzqbBTf+hqwQPTg== +"@smithy/eventstream-serde-node@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.1.1.tgz#2e1afa27f9c7eb524c1c53621049c5e4e3cea6a5" + integrity sha512-LF882q/aFidFNDX7uROAGxq3H0B7rjyPkV6QDn6/KDQ+CG7AFkRccjxRf1xqajq/Pe4bMGGr+VKAaoF6lELIQw== dependencies: - "@smithy/eventstream-serde-universal" "^2.0.15" - "@smithy/types" "^2.7.0" + "@smithy/eventstream-serde-universal" "^2.1.1" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@smithy/eventstream-serde-universal@^2.0.15": - version "2.0.15" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.0.15.tgz#85cdff39abc630cb18b4d333913b7120651771ca" - integrity sha512-dP8AQp/pXlWBjvL0TaPBJC3rM0GoYv7O0Uim8d/7UKZ2Wo13bFI3/BhQfY/1DeiP1m23iCHFNFtOQxfQNBB8rQ== +"@smithy/eventstream-serde-universal@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.1.1.tgz#0f5eec9ad033017973a67bafb5549782499488d2" + integrity sha512-LR0mMT+XIYTxk4k2fIxEA1BPtW3685QlqufUEUAX1AJcfFfxNDKEvuCRZbO8ntJb10DrIFVJR9vb0MhDCi0sAQ== dependencies: - "@smithy/eventstream-codec" "^2.0.15" - "@smithy/types" "^2.7.0" + "@smithy/eventstream-codec" "^2.1.1" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@smithy/fetch-http-handler@^2.3.1": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-2.3.1.tgz#aa055db5bf4d78acec97abe6ef24283fa2c18430" - integrity sha512-6MNk16fqb8EwcYY8O8WxB3ArFkLZ2XppsSNo1h7SQcFdDDwIumiJeO6wRzm7iB68xvsOQzsdQKbdtTieS3hfSQ== +"@smithy/fetch-http-handler@^2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-2.4.1.tgz#b4d73bbc1449f61234077d58c705b843a8587bf0" + integrity sha512-VYGLinPsFqH68lxfRhjQaSkjXM7JysUOJDTNjHBuN/ykyRb2f1gyavN9+VhhPTWCy32L4yZ2fdhpCs/nStEicg== dependencies: - "@smithy/protocol-http" "^3.0.11" - "@smithy/querystring-builder" "^2.0.15" - "@smithy/types" "^2.7.0" - "@smithy/util-base64" "^2.0.1" + "@smithy/protocol-http" "^3.1.1" + "@smithy/querystring-builder" "^2.1.1" + "@smithy/types" "^2.9.1" + "@smithy/util-base64" "^2.1.1" tslib "^2.5.0" -"@smithy/hash-blob-browser@^2.0.16": - version "2.0.16" - resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-2.0.16.tgz#6cd3686e79f3c8d96a129076073bf20d06293152" - integrity sha512-cSYRi05LA7DZDwjB1HL0BP8B56eUNNeLglVH147QTXFyuXJq/7erAIiLRfsyXB8+GfFHkSS5BHbc76a7k/AYPA== +"@smithy/hash-blob-browser@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-2.1.1.tgz#f4571d4e2fbc2cc1869c443850e5409bf541ba25" + integrity sha512-jizu1+2PAUjiGIfRtlPEU8Yo6zn+d78ti/ZHDesdf1SUn2BuZW433JlPoCOLH3dBoEEvTgLvQ8tUGSoTTALA+A== dependencies: - "@smithy/chunked-blob-reader" "^2.0.0" - "@smithy/chunked-blob-reader-native" "^2.0.1" - "@smithy/types" "^2.7.0" + "@smithy/chunked-blob-reader" "^2.1.1" + "@smithy/chunked-blob-reader-native" "^2.1.1" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@smithy/hash-node@^2.0.17": - version "2.0.17" - resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-2.0.17.tgz#9ce5e3f137143e3658759d31a16e068ef94a14fc" - integrity sha512-Il6WuBcI1nD+e2DM7tTADMf01wEPGK8PAhz4D+YmDUVaoBqlA+CaH2uDJhiySifmuKBZj748IfygXty81znKhw== +"@smithy/hash-node@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-2.1.1.tgz#0f8a22d97565ca948724f72267e4d3a2f33740a8" + integrity sha512-Qhoq0N8f2OtCnvUpCf+g1vSyhYQrZjhSwvJ9qvR8BUGOtTXiyv2x1OD2e6jVGmlpC4E4ax1USHoyGfV9JFsACg== dependencies: - "@smithy/types" "^2.7.0" - "@smithy/util-buffer-from" "^2.0.0" - "@smithy/util-utf8" "^2.0.2" + "@smithy/types" "^2.9.1" + "@smithy/util-buffer-from" "^2.1.1" + "@smithy/util-utf8" "^2.1.1" tslib "^2.5.0" -"@smithy/hash-stream-node@^2.0.17": - version "2.0.17" - resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-2.0.17.tgz#90375ed9c1a586118433c925a61d39b5555bf284" - integrity sha512-ey8DtnATzp1mOXgS7rqMwSmAki6iJA+jgNucKcxRkhMB1rrICfHg+rhmIF50iLPDHUhTcS5pBMOrLzzpZftvNQ== +"@smithy/hash-stream-node@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-2.1.1.tgz#d1885a3bf159872cbb8c9d9f1aefc596ea6cf5db" + integrity sha512-VgDaKcfCy0iHcmtAZgZ3Yw9g37Gkn2JsQiMtFQXUh8Wmo3GfNgDwLOtdhJ272pOT7DStzpe9cNr+eV5Au8KfQA== dependencies: - "@smithy/types" "^2.7.0" - "@smithy/util-utf8" "^2.0.2" + "@smithy/types" "^2.9.1" + "@smithy/util-utf8" "^2.1.1" tslib "^2.5.0" -"@smithy/invalid-dependency@^2.0.15": - version "2.0.15" - resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-2.0.15.tgz#7653490047bf0ab6042fb812adfbcce857aa2d06" - integrity sha512-dlEKBFFwVfzA5QroHlBS94NpgYjXhwN/bFfun+7w3rgxNvVy79SK0w05iGc7UAeC5t+D7gBxrzdnD6hreZnDVQ== +"@smithy/invalid-dependency@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-2.1.1.tgz#bd69fa24dd35e9bc65a160bd86becdf1399e4463" + integrity sha512-7WTgnKw+VPg8fxu2v9AlNOQ5yaz6RA54zOVB4f6vQuR0xFKd+RzlCpt0WidYTsye7F+FYDIaS/RnJW4pxjNInw== dependencies: - "@smithy/types" "^2.7.0" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@smithy/is-array-buffer@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.0.0.tgz#8fa9b8040651e7ba0b2f6106e636a91354ff7d34" - integrity sha512-z3PjFjMyZNI98JFRJi/U0nGoLWMSJlDjAW4QUX2WNZLas5C0CmVV6LJ01JI0k90l7FvpmixjWxPFmENSClQ7ug== +"@smithy/is-array-buffer@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.1.1.tgz#07b4c77ae67ed58a84400c76edd482271f9f957b" + integrity sha512-xozSQrcUinPpNPNPds4S7z/FakDTh1MZWtRP/2vQtYB/u3HYrX2UXuZs+VhaKBd6Vc7g2XPr2ZtwGBNDN6fNKQ== dependencies: tslib "^2.5.0" -"@smithy/md5-js@^2.0.17": - version "2.0.17" - resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-2.0.17.tgz#784c02da6cee539f5af0e45b1eaf9beb10ed8ad6" - integrity sha512-jmISTCnEkOnm2oCNx/rMkvBT/eQh3aA6nktevkzbmn/VYqYEuc5Z2n5sTTqsciMSO01Lvf56wG1A4twDqovYeQ== +"@smithy/md5-js@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-2.1.1.tgz#f414982bc6ab275b80ec517d2e44a779c374ff9c" + integrity sha512-L3MbIYBIdLlT+MWTYrdVSv/dow1+6iZ1Ad7xS0OHxTTs17d753ZcpOV4Ro7M7tRAVWML/sg2IAp/zzCb6aAttg== dependencies: - "@smithy/types" "^2.7.0" - "@smithy/util-utf8" "^2.0.2" + "@smithy/types" "^2.9.1" + "@smithy/util-utf8" "^2.1.1" tslib "^2.5.0" -"@smithy/middleware-content-length@^2.0.17": - version "2.0.17" - resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-2.0.17.tgz#13479173a15d1cd4224e3e21071a27c66a74b653" - integrity sha512-OyadvMcKC7lFXTNBa8/foEv7jOaqshQZkjWS9coEXPRZnNnihU/Ls+8ZuJwGNCOrN2WxXZFmDWhegbnM4vak8w== +"@smithy/middleware-content-length@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-2.1.1.tgz#df767de12d594bc5622009fb0fc8343522697d8c" + integrity sha512-rSr9ezUl9qMgiJR0UVtVOGEZElMdGFyl8FzWEF5iEKTlcWxGr2wTqGfDwtH3LAB7h+FPkxqv4ZU4cpuCN9Kf/g== dependencies: - "@smithy/protocol-http" "^3.0.11" - "@smithy/types" "^2.7.0" + "@smithy/protocol-http" "^3.1.1" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@smithy/middleware-endpoint@^2.2.3": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-2.2.3.tgz#4069ab6e8d1b485bc0d2384b30f7b37096111ec2" - integrity sha512-nYfxuq0S/xoAjdLbyn1ixeVB6cyH9wYCMtbbOCpcCRYR5u2mMtqUtVjjPAZ/DIdlK3qe0tpB0Q76szFGNuz+kQ== - dependencies: - "@smithy/middleware-serde" "^2.0.15" - "@smithy/node-config-provider" "^2.1.8" - "@smithy/shared-ini-file-loader" "^2.2.7" - "@smithy/types" "^2.7.0" - "@smithy/url-parser" "^2.0.15" - "@smithy/util-middleware" "^2.0.8" +"@smithy/middleware-endpoint@^2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-2.4.1.tgz#9e500df4d944741808e92018ccd2e948b598a49f" + integrity sha512-XPZTb1E2Oav60Ven3n2PFx+rX9EDsU/jSTA8VDamt7FXks67ekjPY/XrmmPDQaFJOTUHJNKjd8+kZxVO5Ael4Q== + dependencies: + "@smithy/middleware-serde" "^2.1.1" + "@smithy/node-config-provider" "^2.2.1" + "@smithy/shared-ini-file-loader" "^2.3.1" + "@smithy/types" "^2.9.1" + "@smithy/url-parser" "^2.1.1" + "@smithy/util-middleware" "^2.1.1" tslib "^2.5.0" -"@smithy/middleware-retry@^2.0.24": - version "2.0.24" - resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-2.0.24.tgz#556a39e7d2be32cc61862e020409d3f93e2c5be1" - integrity sha512-q2SvHTYu96N7lYrn3VSuX3vRpxXHR/Cig6MJpGWxd0BWodUQUWlKvXpWQZA+lTaFJU7tUvpKhRd4p4MU3PbeJg== - dependencies: - "@smithy/node-config-provider" "^2.1.8" - "@smithy/protocol-http" "^3.0.11" - "@smithy/service-error-classification" "^2.0.8" - "@smithy/smithy-client" "^2.1.18" - "@smithy/types" "^2.7.0" - "@smithy/util-middleware" "^2.0.8" - "@smithy/util-retry" "^2.0.8" +"@smithy/middleware-retry@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-2.1.1.tgz#ddc749dd927f136714f76ca5a52dcfb0993ee162" + integrity sha512-eMIHOBTXro6JZ+WWzZWd/8fS8ht5nS5KDQjzhNMHNRcG5FkNTqcKpYhw7TETMYzbLfhO5FYghHy1vqDWM4FLDA== + dependencies: + "@smithy/node-config-provider" "^2.2.1" + "@smithy/protocol-http" "^3.1.1" + "@smithy/service-error-classification" "^2.1.1" + "@smithy/smithy-client" "^2.3.1" + "@smithy/types" "^2.9.1" + "@smithy/util-middleware" "^2.1.1" + "@smithy/util-retry" "^2.1.1" tslib "^2.5.0" uuid "^8.3.2" -"@smithy/middleware-serde@^2.0.15": - version "2.0.15" - resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-2.0.15.tgz#9deac4daad1f2a60d5c4e7097658f9ae2eb0a33f" - integrity sha512-FOZRFk/zN4AT4wzGuBY+39XWe+ZnCFd0gZtyw3f9Okn2CJPixl9GyWe98TIaljeZdqWkgrzGyPre20AcW2UMHQ== - dependencies: - "@smithy/types" "^2.7.0" - tslib "^2.5.0" - -"@smithy/middleware-stack@^2.0.9": - version "2.0.9" - resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-2.0.9.tgz#60e51697c74258fac087bc739d940f524921a15f" - integrity sha512-bCB5dUtGQ5wh7QNL2ELxmDc6g7ih7jWU3Kx6MYH1h4mZbv9xL3WyhKHojRltThCB1arLPyTUFDi+x6fB/oabtA== - dependencies: - "@smithy/types" "^2.7.0" - tslib "^2.5.0" - -"@smithy/node-config-provider@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-2.0.2.tgz#a15f125f7011ff82610297d899826b7ef7889867" - integrity sha512-9wVJccASfuCctNWrzR0zrDkf0ox3HCHGEhFlWL2LBoghUYuK28pVRBbG69wvnkhlHnB8dDZHagxH+Nq9dm7eWw== +"@smithy/middleware-serde@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-2.1.1.tgz#2c5750f76e276a5249720f6c3c24fac29abbee16" + integrity sha512-D8Gq0aQBeE1pxf3cjWVkRr2W54t+cdM2zx78tNrVhqrDykRA7asq8yVJij1u5NDtKzKqzBSPYh7iW0svUKg76g== dependencies: - "@smithy/property-provider" "^2.0.2" - "@smithy/shared-ini-file-loader" "^2.0.2" - "@smithy/types" "^2.1.0" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@smithy/node-config-provider@^2.1.8": - version "2.1.8" - resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-2.1.8.tgz#8cab8f1172c8cd1146e7997292786909abcae763" - integrity sha512-+w26OKakaBUGp+UG+dxYZtFb5fs3tgHg3/QrRrmUZj+rl3cIuw840vFUXX35cVPTUCQIiTqmz7CpVF7+hdINdQ== +"@smithy/middleware-stack@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-2.1.1.tgz#67f992dc36e8a6861f881f80a81c1c30956a0396" + integrity sha512-KPJhRlhsl8CjgGXK/DoDcrFGfAqoqvuwlbxy+uOO4g2Azn1dhH+GVfC3RAp+6PoL5PWPb+vt6Z23FP+Mr6qeCw== dependencies: - "@smithy/property-provider" "^2.0.16" - "@smithy/shared-ini-file-loader" "^2.2.7" - "@smithy/types" "^2.7.0" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@smithy/node-http-handler@^2.2.1": +"@smithy/node-config-provider@^2.2.1": version "2.2.1" - resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-2.2.1.tgz#23f6540e565edcae8c558a854fffde3d003451c0" - integrity sha512-8iAKQrC8+VFHPAT8pg4/j6hlsTQh+NKOWlctJBrYtQa4ExcxX7aSg3vdQ2XLoYwJotFUurg/NLqFCmZaPRrogw== - dependencies: - "@smithy/abort-controller" "^2.0.15" - "@smithy/protocol-http" "^3.0.11" - "@smithy/querystring-builder" "^2.0.15" - "@smithy/types" "^2.7.0" - tslib "^2.5.0" - -"@smithy/property-provider@^2.0.0", "@smithy/property-provider@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-2.0.2.tgz#abe091d1e7dc5b617e3418b63eaed11363c96f21" - integrity sha512-DfaZ8cO+d/mgnMzIllcXcU4OYP+omiOl2LYdn/fTGpw/EAQSVzscYV2muV3sDDnuPYQ/r014hUqIxnF+pzh+SQ== - dependencies: - "@smithy/types" "^2.1.0" - tslib "^2.5.0" - -"@smithy/property-provider@^2.0.16": - version "2.0.16" - resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-2.0.16.tgz#0c15ea8a3e8c8e7012bf5877c79ce754f7d2c06e" - integrity sha512-28Ky0LlOqtEjwg5CdHmwwaDRHcTWfPRzkT6HrhwOSRS2RryAvuDfJrZpM+BMcrdeCyEg1mbcgIMoqTla+rdL8Q== - dependencies: - "@smithy/types" "^2.7.0" - tslib "^2.5.0" - -"@smithy/protocol-http@^3.0.11": - version "3.0.11" - resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-3.0.11.tgz#a9ea712fe7cc3375378ac68d9168a7b6cd0b6f65" - integrity sha512-3ziB8fHuXIRamV/akp/sqiWmNPR6X+9SB8Xxnozzj+Nq7hSpyKdFHd1FLpBkgfGFUTzzcBJQlDZPSyxzmdcx5A== + resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-2.2.1.tgz#c440c7948d58d72f0e212aa1967aa12f0729defd" + integrity sha512-epzK3x1xNxA9oJgHQ5nz+2j6DsJKdHfieb+YgJ7ATWxzNcB7Hc+Uya2TUck5MicOPhDV8HZImND7ZOecVr+OWg== dependencies: - "@smithy/types" "^2.7.0" + "@smithy/property-provider" "^2.1.1" + "@smithy/shared-ini-file-loader" "^2.3.1" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@smithy/querystring-builder@^2.0.15": - version "2.0.15" - resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-2.0.15.tgz#aa8c889bcaef274b8345be4ddabae3bfedf2cf33" - integrity sha512-e1q85aT6HutvouOdN+dMsN0jcdshp50PSCvxDvo6aIM57LqeXimjfONUEgfqQ4IFpYWAtVixptyIRE5frMp/2A== - dependencies: - "@smithy/types" "^2.7.0" - "@smithy/util-uri-escape" "^2.0.0" - tslib "^2.5.0" - -"@smithy/querystring-parser@^2.0.15": - version "2.0.15" - resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-2.0.15.tgz#46c8806a145f46636e4aee2a5d79e7ba68161a4c" - integrity sha512-jbBvoK3cc81Cj1c1TH1qMYxNQKHrYQ2DoTntN9FBbtUWcGhc+T4FP6kCKYwRLXyU4AajwGIZstvNAmIEgUUNTQ== +"@smithy/node-http-handler@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-2.3.1.tgz#77d23279ff0a12cbe7cde93c5e7c0e86ad56dd20" + integrity sha512-gLA8qK2nL9J0Rk/WEZSvgin4AppvuCYRYg61dcUo/uKxvMZsMInL5I5ZdJTogOvdfVug3N2dgI5ffcUfS4S9PA== dependencies: - "@smithy/types" "^2.7.0" + "@smithy/abort-controller" "^2.1.1" + "@smithy/protocol-http" "^3.1.1" + "@smithy/querystring-builder" "^2.1.1" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@smithy/querystring-parser@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-2.0.2.tgz#d6b2562e7ae29282b144939e5fd439b17bdf61dd" - integrity sha512-L4VtKQ8O4/aWPQJbiFymbhAmxdfLnEaROh/Vs0OstJ7jtOZeBl2QJmuWY2V7hjt64W7V+tEn2sv6vVvnxkm/xQ== +"@smithy/property-provider@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-2.1.1.tgz#0f7ffc5e43829eaca5b2b5aae8554807a52b30f3" + integrity sha512-FX7JhhD/o5HwSwg6GLK9zxrMUrGnb3PzNBrcthqHKBc3dH0UfgEAU24xnJ8F0uow5mj17UeBEOI6o3CF2k7Mhw== dependencies: - "@smithy/types" "^2.1.0" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@smithy/service-error-classification@^2.0.8": - version "2.0.8" - resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-2.0.8.tgz#c9e421312a2def84da025c5efe6de06679c5be95" - integrity sha512-jCw9+005im8tsfYvwwSc4TTvd29kXRFkH9peQBg5R/4DD03ieGm6v6Hpv9nIAh98GwgYg1KrztcINC1s4o7/hg== - dependencies: - "@smithy/types" "^2.7.0" - -"@smithy/shared-ini-file-loader@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.0.2.tgz#49b9bf384ece821352f50c8f6cb989edc77d2dbf" - integrity sha512-2VkNOM/82u4vatVdK5nfusgGIlvR48Fkq6me17Oc+V1iyxfR/1x0pG6LzW0br1qlGtzBYFZKmDyviBRcPVFTVw== +"@smithy/protocol-http@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-3.1.1.tgz#eee522d0ed964a72b735d64925e07bcfb7a7806f" + integrity sha512-6ZRTSsaXuSL9++qEwH851hJjUA0OgXdQFCs+VDw4tGH256jQ3TjYY/i34N4vd24RV3nrjNsgd1yhb57uMoKbzQ== dependencies: - "@smithy/types" "^2.1.0" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@smithy/shared-ini-file-loader@^2.0.6": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.0.6.tgz#95dbc455e56a261ffe0b32bb3e640292b2f31798" - integrity sha512-NO6dHqho6APbVR0DxPtYoL4KXBqUeSM3Slsd103MOgL50YbzzsQmMLtDMZ87W8MlvvCN0tuiq+OrAO/rM7hTQg== +"@smithy/querystring-builder@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-2.1.1.tgz#b9693448ad3f8e0767d84cf5cae29f35514591fb" + integrity sha512-C/ko/CeEa8jdYE4gt6nHO5XDrlSJ3vdCG0ZAc6nD5ZIE7LBp0jCx4qoqp7eoutBu7VrGMXERSRoPqwi1WjCPbg== dependencies: - "@smithy/types" "^2.2.2" + "@smithy/types" "^2.9.1" + "@smithy/util-uri-escape" "^2.1.1" tslib "^2.5.0" -"@smithy/shared-ini-file-loader@^2.2.7": - version "2.2.7" - resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.2.7.tgz#4a3bd469703d02c3cc8e36dcba2238c06efa12cb" - integrity sha512-0Qt5CuiogIuvQIfK+be7oVHcPsayLgfLJGkPlbgdbl0lD28nUKu4p11L+UG3SAEsqc9UsazO+nErPXw7+IgDpQ== +"@smithy/querystring-parser@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-2.1.1.tgz#a4282a66cc56844317dbff824e573f469bbfc032" + integrity sha512-H4+6jKGVhG1W4CIxfBaSsbm98lOO88tpDWmZLgkJpt8Zkk/+uG0FmmqMuCAc3HNM2ZDV+JbErxr0l5BcuIf/XQ== dependencies: - "@smithy/types" "^2.7.0" - tslib "^2.5.0" - -"@smithy/signature-v4@^2.0.0": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-2.0.2.tgz#c1ec6d9485a72039060e9a8fe2c02e0afb9d7764" - integrity sha512-YMooDEw/UmGxcXY4qWnSXkbPFsRloluSvyXVT678YPDN/K2AS1GzKfRsvSU7fbccOB4WF8MHZf2UqcRGEltE3Q== - dependencies: - "@smithy/eventstream-codec" "^2.0.2" - "@smithy/is-array-buffer" "^2.0.0" - "@smithy/types" "^2.1.0" - "@smithy/util-hex-encoding" "^2.0.0" - "@smithy/util-middleware" "^2.0.0" - "@smithy/util-uri-escape" "^2.0.0" - "@smithy/util-utf8" "^2.0.0" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@smithy/smithy-client@^2.1.18": - version "2.1.18" - resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-2.1.18.tgz#f8ce2c0e9614f207256ddcd992403aff40750546" - integrity sha512-7FqdbaJiVaHJDD9IfDhmzhSDbpjyx+ZsfdYuOpDJF09rl8qlIAIlZNoSaflKrQ3cEXZN2YxGPaNWGhbYimyIRQ== +"@smithy/service-error-classification@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-2.1.1.tgz#dd24e1ec529ae9ec8e87d8b15f0fc8f7e17f3d02" + integrity sha512-txEdZxPUgM1PwGvDvHzqhXisrc5LlRWYCf2yyHfvITWioAKat7srQvpjMAvgzf0t6t7j8yHrryXU9xt7RZqFpw== dependencies: - "@smithy/middleware-stack" "^2.0.9" - "@smithy/types" "^2.7.0" - "@smithy/util-stream" "^2.0.23" - tslib "^2.5.0" + "@smithy/types" "^2.9.1" -"@smithy/types@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@smithy/types/-/types-2.1.0.tgz#67fd47c25bbb0fd818951891bf7bcf19a8ee2fe6" - integrity sha512-KLsCsqxX0j2l99iP8s0f7LBlcsp7a7ceXGn0LPYPyVOsqmIKvSaPQajq0YevlL4T9Bm+DtcyXfBTbtBcLX1I7A== +"@smithy/shared-ini-file-loader@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.3.1.tgz#a2e28b4d85f8a8262a84403fa2b74a086b3a7703" + integrity sha512-2E2kh24igmIznHLB6H05Na4OgIEilRu0oQpYXo3LCNRrawHAcfDKq9004zJs+sAMt2X5AbY87CUCJ7IpqpSgdw== dependencies: + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@smithy/types@^2.2.2": - version "2.2.2" - resolved "https://registry.yarnpkg.com/@smithy/types/-/types-2.2.2.tgz#bd8691eb92dd07ac33b83e0e1c45f283502b1bf7" - integrity sha512-4PS0y1VxDnELGHGgBWlDksB2LJK8TG8lcvlWxIsgR+8vROI7Ms8h1P4FQUx+ftAX2QZv5g1CJCdhdRmQKyonyw== - dependencies: +"@smithy/signature-v4@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-2.1.1.tgz#6080171e3d694f40d3f553bbc236c5c433efd4d2" + integrity sha512-Hb7xub0NHuvvQD3YwDSdanBmYukoEkhqBjqoxo+bSdC0ryV9cTfgmNjuAQhTPYB6yeU7hTR+sPRiFMlxqv6kmg== + dependencies: + "@smithy/eventstream-codec" "^2.1.1" + "@smithy/is-array-buffer" "^2.1.1" + "@smithy/types" "^2.9.1" + "@smithy/util-hex-encoding" "^2.1.1" + "@smithy/util-middleware" "^2.1.1" + "@smithy/util-uri-escape" "^2.1.1" + "@smithy/util-utf8" "^2.1.1" tslib "^2.5.0" -"@smithy/types@^2.7.0": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@smithy/types/-/types-2.7.0.tgz#6ed9ba5bff7c4d28c980cff967e6d8456840a4f3" - integrity sha512-1OIFyhK+vOkMbu4aN2HZz/MomREkrAC/HqY5mlJMUJfGrPRwijJDTeiN8Rnj9zUaB8ogXAfIOtZrrgqZ4w7Wnw== - dependencies: +"@smithy/smithy-client@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-2.3.1.tgz#0c3a4a0d3935c7ad2240cc23181f276705212b1f" + integrity sha512-YsTdU8xVD64r2pLEwmltrNvZV6XIAC50LN6ivDopdt+YiF/jGH6PY9zUOu0CXD/d8GMB8gbhnpPsdrjAXHS9QA== + dependencies: + "@smithy/middleware-endpoint" "^2.4.1" + "@smithy/middleware-stack" "^2.1.1" + "@smithy/protocol-http" "^3.1.1" + "@smithy/types" "^2.9.1" + "@smithy/util-stream" "^2.1.1" tslib "^2.5.0" -"@smithy/url-parser@^2.0.15": - version "2.0.15" - resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-2.0.15.tgz#878d9b61f9eac8834cb611cf1a8a0e5d9a48038c" - integrity sha512-sADUncUj9rNbOTrdDGm4EXlUs0eQ9dyEo+V74PJoULY4jSQxS+9gwEgsPYyiu8PUOv16JC/MpHonOgqP/IEDZA== +"@smithy/types@^2.9.1": + version "2.9.1" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-2.9.1.tgz#ed04d4144eed3b8bd26d20fc85aae8d6e357ebb9" + integrity sha512-vjXlKNXyprDYDuJ7UW5iobdmyDm6g8dDG+BFUncAg/3XJaN45Gy5RWWWUVgrzIK7S4R1KWgIX5LeJcfvSI24bw== dependencies: - "@smithy/querystring-parser" "^2.0.15" - "@smithy/types" "^2.7.0" tslib "^2.5.0" -"@smithy/url-parser@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-2.0.2.tgz#af50bd62298b209b1a16c80912a03460b7cb8994" - integrity sha512-X1mHCzrSVDlhVy7d3S7Vq+dTfYzwh4n7xGHhyJumu77nJqIss0lazVug85Pwo0DKIoO314wAOvMnBxNYDa+7wA== +"@smithy/url-parser@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-2.1.1.tgz#a30de227b6734650d740b6dff74d488b874e85e3" + integrity sha512-qC9Bv8f/vvFIEkHsiNrUKYNl8uKQnn4BdhXl7VzQRP774AwIjiSMMwkbT+L7Fk8W8rzYVifzJNYxv1HwvfBo3Q== dependencies: - "@smithy/querystring-parser" "^2.0.2" - "@smithy/types" "^2.1.0" + "@smithy/querystring-parser" "^2.1.1" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@smithy/util-base64@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-2.0.1.tgz#57f782dafc187eddea7c8a1ff2a7c188ed1a02c4" - integrity sha512-DlI6XFYDMsIVN+GH9JtcRp3j02JEVuWIn/QOZisVzpIAprdsxGveFed0bjbMRCqmIFe8uetn5rxzNrBtIGrPIQ== +"@smithy/util-base64@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-2.1.1.tgz#af729085cc9d92ebd54a5d2c5d0aa5a0c31f83bf" + integrity sha512-UfHVpY7qfF/MrgndI5PexSKVTxSZIdz9InghTFa49QOvuu9I52zLPLUHXvHpNuMb1iD2vmc6R+zbv/bdMipR/g== dependencies: - "@smithy/util-buffer-from" "^2.0.0" + "@smithy/util-buffer-from" "^2.1.1" tslib "^2.5.0" -"@smithy/util-body-length-browser@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-2.0.1.tgz#424485cc81c640d18c17c683e0e6edb57e8e2ab9" - integrity sha512-NXYp3ttgUlwkaug4bjBzJ5+yIbUbUx8VsSLuHZROQpoik+gRkIBeEG9MPVYfvPNpuXb/puqodeeUXcKFe7BLOQ== +"@smithy/util-body-length-browser@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-2.1.1.tgz#1fc77072768013ae646415eedb9833cd252d055d" + integrity sha512-ekOGBLvs1VS2d1zM2ER4JEeBWAvIOUKeaFch29UjjJsxmZ/f0L3K3x0dEETgh3Q9bkZNHgT+rkdl/J/VUqSRag== dependencies: tslib "^2.5.0" -"@smithy/util-body-length-node@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-2.1.0.tgz#313a5f7c5017947baf5fa018bfc22628904bbcfa" - integrity sha512-/li0/kj/y3fQ3vyzn36NTLGmUwAICb7Jbe/CsWCktW363gh1MOcpEcSO3mJ344Gv2dqz8YJCLQpb6hju/0qOWw== +"@smithy/util-body-length-node@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-2.2.1.tgz#a6f5c9911f1c3e23efb340d5ce7a590b62f2056e" + integrity sha512-/ggJG+ta3IDtpNVq4ktmEUtOkH1LW64RHB5B0hcr5ZaWBmo96UX2cIOVbjCqqDickTXqBWZ4ZO0APuaPrD7Abg== dependencies: tslib "^2.5.0" -"@smithy/util-buffer-from@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-2.0.0.tgz#7eb75d72288b6b3001bc5f75b48b711513091deb" - integrity sha512-/YNnLoHsR+4W4Vf2wL5lGv0ksg8Bmk3GEGxn2vEQt52AQaPSCuaO5PM5VM7lP1K9qHRKHwrPGktqVoAHKWHxzw== +"@smithy/util-buffer-from@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-2.1.1.tgz#f9346bf8b23c5ba6f6bdb61dd9db779441ba8d08" + integrity sha512-clhNjbyfqIv9Md2Mg6FffGVrJxw7bgK7s3Iax36xnfVj6cg0fUG7I4RH0XgXJF8bxi+saY5HR21g2UPKSxVCXg== dependencies: - "@smithy/is-array-buffer" "^2.0.0" + "@smithy/is-array-buffer" "^2.1.1" tslib "^2.5.0" -"@smithy/util-config-provider@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-2.0.0.tgz#4dd6a793605559d94267312fd06d0f58784b4c38" - integrity sha512-xCQ6UapcIWKxXHEU4Mcs2s7LcFQRiU3XEluM2WcCjjBtQkUN71Tb+ydGmJFPxMUrW/GWMgQEEGipLym4XG0jZg== +"@smithy/util-config-provider@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-2.2.1.tgz#aea0a80236d6cedaee60473802899cff4a8cc0ba" + integrity sha512-50VL/tx9oYYcjJn/qKqNy7sCtpD0+s8XEBamIFo4mFFTclKMNp+rsnymD796uybjiIquB7VCB/DeafduL0y2kw== dependencies: tslib "^2.5.0" -"@smithy/util-defaults-mode-browser@^2.0.22": - version "2.0.22" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.0.22.tgz#8ef8c36b8c3c2f98f7a62278c3c684d659134269" - integrity sha512-qcF20IHHH96FlktvBRICDXDhLPtpVmtksHmqNGtotb9B0DYWXsC6jWXrkhrrwF7tH26nj+npVTqh9isiFV1gdA== +"@smithy/util-defaults-mode-browser@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.1.1.tgz#be9ac82acee6ec4821b610e7187b0e147f0ba8ff" + integrity sha512-lqLz/9aWRO6mosnXkArtRuQqqZBhNpgI65YDpww4rVQBuUT7qzKbDLG5AmnQTCiU4rOquaZO/Kt0J7q9Uic7MA== dependencies: - "@smithy/property-provider" "^2.0.16" - "@smithy/smithy-client" "^2.1.18" - "@smithy/types" "^2.7.0" + "@smithy/property-provider" "^2.1.1" + "@smithy/smithy-client" "^2.3.1" + "@smithy/types" "^2.9.1" bowser "^2.11.0" tslib "^2.5.0" -"@smithy/util-defaults-mode-node@^2.0.29": - version "2.0.29" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.0.29.tgz#6b210aede145a6bf4bd83d9f465948fb300ca577" - integrity sha512-+uG/15VoUh6JV2fdY9CM++vnSuMQ1VKZ6BdnkUM7R++C/vLjnlg+ToiSR1FqKZbMmKBXmsr8c/TsDWMAYvxbxQ== - dependencies: - "@smithy/config-resolver" "^2.0.21" - "@smithy/credential-provider-imds" "^2.1.4" - "@smithy/node-config-provider" "^2.1.8" - "@smithy/property-provider" "^2.0.16" - "@smithy/smithy-client" "^2.1.18" - "@smithy/types" "^2.7.0" - tslib "^2.5.0" - -"@smithy/util-endpoints@^1.0.7": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-1.0.7.tgz#5a258ac7838dea085660060b515cd2d19f19a4bc" - integrity sha512-Q2gEind3jxoLk6hdKWyESMU7LnXz8aamVwM+VeVjOYzYT1PalGlY/ETa48hv2YpV4+YV604y93YngyzzzQ4IIA== - dependencies: - "@smithy/node-config-provider" "^2.1.8" - "@smithy/types" "^2.7.0" +"@smithy/util-defaults-mode-node@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.1.1.tgz#0910ee00aac3e8a08aac3e6ae8794e52f3efef02" + integrity sha512-tYVrc+w+jSBfBd267KDnvSGOh4NMz+wVH7v4CClDbkdPfnjvImBZsOURncT5jsFwR9KCuDyPoSZq4Pa6+eCUrA== + dependencies: + "@smithy/config-resolver" "^2.1.1" + "@smithy/credential-provider-imds" "^2.2.1" + "@smithy/node-config-provider" "^2.2.1" + "@smithy/property-provider" "^2.1.1" + "@smithy/smithy-client" "^2.3.1" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@smithy/util-hex-encoding@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-2.0.0.tgz#0aa3515acd2b005c6d55675e377080a7c513b59e" - integrity sha512-c5xY+NUnFqG6d7HFh1IFfrm3mGl29lC+vF+geHv4ToiuJCBmIfzx6IeHLg+OgRdPFKDXIw6pvi+p3CsscaMcMA== +"@smithy/util-endpoints@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-1.1.1.tgz#45426dba6fb42282a0ad955600b2b3ba050d118f" + integrity sha512-sI4d9rjoaekSGEtq3xSb2nMjHMx8QXcz2cexnVyRWsy4yQ9z3kbDpX+7fN0jnbdOp0b3KSTZJZ2Yb92JWSanLw== dependencies: + "@smithy/node-config-provider" "^2.2.1" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@smithy/util-middleware@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-2.0.0.tgz#706681d4a1686544a2275f68266304233f372c99" - integrity sha512-eCWX4ECuDHn1wuyyDdGdUWnT4OGyIzV0LN1xRttBFMPI9Ff/4heSHVxneyiMtOB//zpXWCha1/SWHJOZstG7kA== +"@smithy/util-hex-encoding@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-2.1.1.tgz#978252b9fb242e0a59bae4ead491210688e0d15f" + integrity sha512-3UNdP2pkYUUBGEXzQI9ODTDK+Tcu1BlCyDBaRHwyxhA+8xLP8agEKQq4MGmpjqb4VQAjq9TwlCQX0kP6XDKYLg== dependencies: tslib "^2.5.0" -"@smithy/util-middleware@^2.0.8": - version "2.0.8" - resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-2.0.8.tgz#2ec1da1190d09b69512ce0248ebd5e819e3c8a92" - integrity sha512-qkvqQjM8fRGGA8P2ydWylMhenCDP8VlkPn8kiNuFEaFz9xnUKC2irfqsBSJrfrOB9Qt6pQsI58r3zvvumhFMkw== +"@smithy/util-middleware@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-2.1.1.tgz#903ba19bb17704f4b476fb9ade9bf9eb0174bc3d" + integrity sha512-mKNrk8oz5zqkNcbcgAAepeJbmfUW6ogrT2Z2gDbIUzVzNAHKJQTYmH9jcy0jbWb+m7ubrvXKb6uMjkSgAqqsFA== dependencies: - "@smithy/types" "^2.7.0" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@smithy/util-retry@^2.0.8": - version "2.0.8" - resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-2.0.8.tgz#61f8db11e4fe60975cb9fb2eada173f5024a06f3" - integrity sha512-cQTPnVaVFMjjS6cb44WV2yXtHVyXDC5icKyIbejMarJEApYeJWpBU3LINTxHqp/tyLI+MZOUdosr2mZ3sdziNg== +"@smithy/util-retry@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-2.1.1.tgz#f2d3566b6e5b841028c7240c852007d4037e49b2" + integrity sha512-Mg+xxWPTeSPrthpC5WAamJ6PW4Kbo01Fm7lWM1jmGRvmrRdsd3192Gz2fBXAMURyXpaNxyZf6Hr/nQ4q70oVEA== dependencies: - "@smithy/service-error-classification" "^2.0.8" - "@smithy/types" "^2.7.0" - tslib "^2.5.0" - -"@smithy/util-stream@^2.0.23": - version "2.0.23" - resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-2.0.23.tgz#468ad29913d091092317cfea2d8ac5b866326a07" - integrity sha512-OJMWq99LAZJUzUwTk+00plyxX3ESktBaGPhqNIEVab+53gLULiWN9B/8bRABLg0K6R6Xg4t80uRdhk3B/LZqMQ== - dependencies: - "@smithy/fetch-http-handler" "^2.3.1" - "@smithy/node-http-handler" "^2.2.1" - "@smithy/types" "^2.7.0" - "@smithy/util-base64" "^2.0.1" - "@smithy/util-buffer-from" "^2.0.0" - "@smithy/util-hex-encoding" "^2.0.0" - "@smithy/util-utf8" "^2.0.2" + "@smithy/service-error-classification" "^2.1.1" + "@smithy/types" "^2.9.1" tslib "^2.5.0" -"@smithy/util-uri-escape@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-2.0.0.tgz#19955b1a0f517a87ae77ac729e0e411963dfda95" - integrity sha512-ebkxsqinSdEooQduuk9CbKcI+wheijxEb3utGXkCoYQkJnwTnLbH1JXGimJtUkQwNQbsbuYwG2+aFVyZf5TLaw== - dependencies: +"@smithy/util-stream@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-2.1.1.tgz#3ae0e88c3a1a45899e29c1655d2e5a3865b6c0a6" + integrity sha512-J7SMIpUYvU4DQN55KmBtvaMc7NM3CZ2iWICdcgaovtLzseVhAqFRYqloT3mh0esrFw+3VEK6nQFteFsTqZSECQ== + dependencies: + "@smithy/fetch-http-handler" "^2.4.1" + "@smithy/node-http-handler" "^2.3.1" + "@smithy/types" "^2.9.1" + "@smithy/util-base64" "^2.1.1" + "@smithy/util-buffer-from" "^2.1.1" + "@smithy/util-hex-encoding" "^2.1.1" + "@smithy/util-utf8" "^2.1.1" tslib "^2.5.0" -"@smithy/util-utf8@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-2.0.0.tgz#b4da87566ea7757435e153799df9da717262ad42" - integrity sha512-rctU1VkziY84n5OXe3bPNpKR001ZCME2JCaBBFgtiM2hfKbHFudc/BkMuPab8hRbLd0j3vbnBTTZ1igBf0wgiQ== +"@smithy/util-uri-escape@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-2.1.1.tgz#7eedc93b73ecda68f12fb9cf92e9fa0fbbed4d83" + integrity sha512-saVzI1h6iRBUVSqtnlOnc9ssU09ypo7n+shdQ8hBTZno/9rZ3AuRYvoHInV57VF7Qn7B+pFJG7qTzFiHxWlWBw== dependencies: - "@smithy/util-buffer-from" "^2.0.0" tslib "^2.5.0" -"@smithy/util-utf8@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-2.0.2.tgz#626b3e173ad137208e27ed329d6bea70f4a1a7f7" - integrity sha512-qOiVORSPm6Ce4/Yu6hbSgNHABLP2VMv8QOC3tTDNHHlWY19pPyc++fBTbZPtx6egPXi4HQxKDnMxVxpbtX2GoA== +"@smithy/util-utf8@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-2.1.1.tgz#690018dd28f47f014114497735e51417ea5900a6" + integrity sha512-BqTpzYEcUMDwAKr7/mVRUtHDhs6ZoXDi9NypMvMfOr/+u1NW7JgqodPDECiiLboEm6bobcPcECxzjtQh865e9A== dependencies: - "@smithy/util-buffer-from" "^2.0.0" + "@smithy/util-buffer-from" "^2.1.1" tslib "^2.5.0" -"@smithy/util-waiter@^2.0.15": - version "2.0.15" - resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-2.0.15.tgz#b02a42bf1b82f07973d1756a0ee10fafa1fbf58e" - integrity sha512-9Y+btzzB7MhLADW7xgD6SjvmoYaRkrb/9SCbNGmNdfO47v38rxb90IGXyDtAK0Shl9bMthTmLgjlfYc+vtz2Qw== +"@smithy/util-waiter@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-2.1.1.tgz#292d4d09cda7df38aba6ea2abd7d948e3f11bf2d" + integrity sha512-kYy6BLJJNif+uqNENtJqWdXcpqo1LS+nj1AfXcDhOpqpSHJSAkVySLyZV9fkmuVO21lzGoxjvd1imGGJHph/IA== dependencies: - "@smithy/abort-controller" "^2.0.15" - "@smithy/types" "^2.7.0" + "@smithy/abort-controller" "^2.1.1" + "@smithy/types" "^2.9.1" tslib "^2.5.0" "@ts-morph/common@~0.12.3": @@ -2759,10 +2698,10 @@ dependencies: "@types/node" "*" -"@types/cookiejar@*": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@types/cookiejar/-/cookiejar-2.1.2.tgz#66ad9331f63fe8a3d3d9d8c6e3906dd10f6446e8" - integrity sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog== +"@types/cookiejar@^2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@types/cookiejar/-/cookiejar-2.1.5.tgz#14a3e83fa641beb169a2dd8422d91c3c345a9a78" + integrity sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q== "@types/cors@^2.8.17": version "2.8.17" @@ -2779,10 +2718,10 @@ "@types/luxon" "*" "@types/node" "*" -"@types/crypto-js@^4.2.1": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@types/crypto-js/-/crypto-js-4.2.1.tgz#480edd76991a63050cb88db1a8840758c55a7135" - integrity sha512-FSPGd9+OcSok3RsM0UZ/9fcvMOXJ1ENE/ZbLfOPlBWj7BgXtEAM8VYfTtT760GiLbQIMoVozwVuisjvsVwqYWw== +"@types/crypto-js@^4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@types/crypto-js/-/crypto-js-4.2.2.tgz#771c4a768d94eb5922cc202a3009558204df0cea" + integrity sha512-sDOLlVbHhXpAUAL0YHDUUwDZf3iN4Bwi4W6a0W0b+QcAezUbRtH4FVb+9J4h+XFPW7l/gQ9F8qC7P+Ec4k8QVQ== "@types/eslint-scope@^3.7.3": version "3.7.4" @@ -2926,6 +2865,11 @@ resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.3.2.tgz#f6e3524c2486b949a4db445e85d93c8e9886dfe2" integrity sha512-l5cpE57br4BIjK+9BSkFBOsWtwv6J9bJpC7gdXIzZyI0vuKvNTk0wZZrkQxMGsUAuGW9+WMNWF2IJMD7br2yeQ== +"@types/methods@^1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@types/methods/-/methods-1.1.4.tgz#d3b7ac30ac47c91054ea951ce9eed07b1051e547" + integrity sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ== + "@types/mime@^1": version "1.3.2" resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" @@ -2948,10 +2892,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.3.tgz#463fc47f13ec0688a33aec75d078a0541a447199" integrity sha512-HzNRZtp4eepNitP+BD6k2L6DROIDG4Q0fm4x+dwfsr6LGmROENnok75VGw40628xf+iR24WeMFcHuuBDUAzzsQ== -"@types/node@^20.10.4": - version "20.10.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.4.tgz#b246fd84d55d5b1b71bf51f964bd514409347198" - integrity sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg== +"@types/node@^20.11.6": + version "20.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.6.tgz#6adf4241460e28be53836529c033a41985f85b6e" + integrity sha512-+EOokTnksGVgip2PbYbr3xnR7kZigh4LbybAfBAw5BpnQ+FqBYUsvCEjYd70IXKlbohQ64mzEYmMtlWUY8q//Q== dependencies: undici-types "~5.26.4" @@ -2960,12 +2904,11 @@ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== -"@types/passport-jwt@^3.0.13": - version "3.0.13" - resolved "https://registry.yarnpkg.com/@types/passport-jwt/-/passport-jwt-3.0.13.tgz#119267d2fc1af7d274a512731146183de5f2b53f" - integrity sha512-fjHaC6Bv8EpMMqzTnHP32SXlZGaNfBPC/Po5dmRGYi2Ky7ljXPbGnOy+SxZqa6iZvFgVhoJ1915Re3m93zmcfA== +"@types/passport-jwt@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/passport-jwt/-/passport-jwt-4.0.0.tgz#96fd75557b83352efe9f5ca55d5e7ab9e7194d4d" + integrity sha512-m32144UaQENieShQDWVQ8w+CVAzCV/pDahICUlQvmqLOePGglQaMRQ28I7fKnRMFLNwVP4eWssOtcQ0kLe1vww== dependencies: - "@types/express" "*" "@types/jsonwebtoken" "*" "@types/passport-strategy" "*" @@ -3020,20 +2963,22 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== -"@types/superagent@*": - version "4.1.15" - resolved "https://registry.yarnpkg.com/@types/superagent/-/superagent-4.1.15.tgz#63297de457eba5e2bc502a7609426c4cceab434a" - integrity sha512-mu/N4uvfDN2zVQQ5AYJI/g4qxn2bHB6521t1UuH09ShNWjebTqN0ZFuYK9uYjcgmI0dTQEs+Owi1EO6U0OkOZQ== +"@types/superagent@^8.1.0": + version "8.1.1" + resolved "https://registry.yarnpkg.com/@types/superagent/-/superagent-8.1.1.tgz#dbc620c5df3770b0c3092f947d6d5e808adae2bc" + integrity sha512-YQyEXA4PgCl7EVOoSAS3o0fyPFU6erv5mMixztQYe1bqbWmmn8c+IrqoxjQeZe4MgwXikgcaZPiI/DsbmOVlzA== dependencies: - "@types/cookiejar" "*" + "@types/cookiejar" "^2.1.5" + "@types/methods" "^1.1.4" "@types/node" "*" -"@types/supertest@^2.0.16": - version "2.0.16" - resolved "https://registry.yarnpkg.com/@types/supertest/-/supertest-2.0.16.tgz#7a1294edebecb960d957bbe9b26002a2b7f21cd7" - integrity sha512-6c2ogktZ06tr2ENoZivgm7YnprnhYE4ZoXGMY+oA7IuAf17M8FWvujXZGmxLv8y0PTyts4x5A+erSwVUFA8XSg== +"@types/supertest@^6.0.2": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@types/supertest/-/supertest-6.0.2.tgz#2af1c466456aaf82c7c6106c6b5cbd73a5e86588" + integrity sha512-137ypx2lk/wTQbW6An6safu9hXmajAifU/s7szAHLN/FeIm5w7yR0Wkl9fdJMRSHwOn4HLAI0DaB2TOORuhPDg== dependencies: - "@types/superagent" "*" + "@types/methods" "^1.1.4" + "@types/superagent" "^8.1.0" "@types/ua-parser-js@^0.7.39": version "0.7.39" @@ -3045,22 +2990,21 @@ resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.7.tgz#b14cebc75455eeeb160d5fe23c2fcc0c64f724d8" integrity sha512-WUtIVRUZ9i5dYXefDEAI7sh9/O7jGvHg7Df/5O/gtH3Yabe5odI3UWopVR1qbPXQtvOxWu3mM4XxlYeZtMWF4g== -"@types/validator@^13.7.10": - version "13.7.10" - resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.7.10.tgz#f9763dc0933f8324920afa9c0790308eedf55ca7" - integrity sha512-t1yxFAR2n0+VO6hd/FJ9F2uezAZVWHLmpmlJzm1eX03+H7+HsuTAp7L8QJs+2pQCfWkP1+EXsGK9Z9v7o/qPVQ== +"@types/validator@^13.11.8": + version "13.11.8" + resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.11.8.tgz#bb1162ec0fe6f87c95ca812f15b996fcc5e1e2dc" + integrity sha512-c/hzNDBh7eRF+KbCf+OoZxKbnkpaK/cKp9iLQWqB7muXtM+MtL9SUUH8vCFcLn6dH1Qm05jiexK0ofWY7TfOhQ== "@types/webidl-conversions@*": version "6.1.1" resolved "https://registry.yarnpkg.com/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz#e33bc8ea812a01f63f90481c666334844b12a09e" integrity sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q== -"@types/whatwg-url@^8.2.1": - version "8.2.2" - resolved "https://registry.yarnpkg.com/@types/whatwg-url/-/whatwg-url-8.2.2.tgz#749d5b3873e845897ada99be4448041d4cc39e63" - integrity sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA== +"@types/whatwg-url@^11.0.2": + version "11.0.4" + resolved "https://registry.yarnpkg.com/@types/whatwg-url/-/whatwg-url-11.0.4.tgz#ffed0dc8d89d91f62e3f368fcbda222a487c4f63" + integrity sha512-lXCmTWSHJvf0TRSO58nm978b8HJ/EdsSsEKLd3ODHFjo+3VGAyyTp4v50nWvwtzBxSMQrVOK7tcuN0zGPLICMw== dependencies: - "@types/node" "*" "@types/webidl-conversions" "*" "@types/yargs-parser@*": @@ -3075,16 +3019,16 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^6.14.0": - version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.14.0.tgz#fc1ab5f23618ba590c87e8226ff07a760be3dd7b" - integrity sha512-1ZJBykBCXaSHG94vMMKmiHoL0MhNHKSVlcHVYZNw+BKxufhqQVTOawNpwwI1P5nIFZ/4jLVop0mcY6mJJDFNaw== +"@typescript-eslint/eslint-plugin@^6.19.1": + version "6.19.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.19.1.tgz#bb0676af940bc23bf299ca58dbdc6589c2548c2e" + integrity sha512-roQScUGFruWod9CEyoV5KlCYrubC/fvG8/1zXuT0WTcxX87GnMMmnksMwSg99lo1xiKrBzw2icsJPMAw1OtKxg== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.14.0" - "@typescript-eslint/type-utils" "6.14.0" - "@typescript-eslint/utils" "6.14.0" - "@typescript-eslint/visitor-keys" "6.14.0" + "@typescript-eslint/scope-manager" "6.19.1" + "@typescript-eslint/type-utils" "6.19.1" + "@typescript-eslint/utils" "6.19.1" + "@typescript-eslint/visitor-keys" "6.19.1" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -3092,72 +3036,73 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^6.14.0": - version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.14.0.tgz#a2d6a732e0d2b95c73f6a26ae7362877cc1b4212" - integrity sha512-QjToC14CKacd4Pa7JK4GeB/vHmWFJckec49FR4hmIRf97+KXole0T97xxu9IFiPxVQ1DBWrQ5wreLwAGwWAVQA== +"@typescript-eslint/parser@^6.19.1": + version "6.19.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.19.1.tgz#68a87bb21afaf0b1689e9cdce0e6e75bc91ada78" + integrity sha512-WEfX22ziAh6pRE9jnbkkLGp/4RhTpffr2ZK5bJ18M8mIfA8A+k97U9ZyaXCEJRlmMHh7R9MJZWXp/r73DzINVQ== dependencies: - "@typescript-eslint/scope-manager" "6.14.0" - "@typescript-eslint/types" "6.14.0" - "@typescript-eslint/typescript-estree" "6.14.0" - "@typescript-eslint/visitor-keys" "6.14.0" + "@typescript-eslint/scope-manager" "6.19.1" + "@typescript-eslint/types" "6.19.1" + "@typescript-eslint/typescript-estree" "6.19.1" + "@typescript-eslint/visitor-keys" "6.19.1" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.14.0": - version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.14.0.tgz#53d24363fdb5ee0d1d8cda4ed5e5321272ab3d48" - integrity sha512-VT7CFWHbZipPncAZtuALr9y3EuzY1b1t1AEkIq2bTXUPKw+pHoXflGNG5L+Gv6nKul1cz1VH8fz16IThIU0tdg== +"@typescript-eslint/scope-manager@6.19.1": + version "6.19.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.19.1.tgz#2f527ee30703a6169a52b31d42a1103d80acd51b" + integrity sha512-4CdXYjKf6/6aKNMSly/BP4iCSOpvMmqtDzRtqFyyAae3z5kkqEjKndR5vDHL8rSuMIIWP8u4Mw4VxLyxZW6D5w== dependencies: - "@typescript-eslint/types" "6.14.0" - "@typescript-eslint/visitor-keys" "6.14.0" + "@typescript-eslint/types" "6.19.1" + "@typescript-eslint/visitor-keys" "6.19.1" -"@typescript-eslint/type-utils@6.14.0": - version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.14.0.tgz#ac9cb5ba0615c837f1a6b172feeb273d36e4f8af" - integrity sha512-x6OC9Q7HfYKqjnuNu5a7kffIYs3No30isapRBJl1iCHLitD8O0lFbRcVGiOcuyN837fqXzPZ1NS10maQzZMKqw== +"@typescript-eslint/type-utils@6.19.1": + version "6.19.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.19.1.tgz#6a130e3afe605a4898e043fa9f72e96309b54935" + integrity sha512-0vdyld3ecfxJuddDjACUvlAeYNrHP/pDeQk2pWBR2ESeEzQhg52DF53AbI9QCBkYE23lgkhLCZNkHn2hEXXYIg== dependencies: - "@typescript-eslint/typescript-estree" "6.14.0" - "@typescript-eslint/utils" "6.14.0" + "@typescript-eslint/typescript-estree" "6.19.1" + "@typescript-eslint/utils" "6.19.1" debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/types@6.14.0": - version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.14.0.tgz#935307f7a931016b7a5eb25d494ea3e1f613e929" - integrity sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA== +"@typescript-eslint/types@6.19.1": + version "6.19.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.19.1.tgz#2d4c9d492a63ede15e7ba7d129bdf7714b77f771" + integrity sha512-6+bk6FEtBhvfYvpHsDgAL3uo4BfvnTnoge5LrrCj2eJN8g3IJdLTD4B/jK3Q6vo4Ql/Hoip9I8aB6fF+6RfDqg== -"@typescript-eslint/typescript-estree@6.14.0": - version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.14.0.tgz#90c7ddd45cd22139adf3d4577580d04c9189ac13" - integrity sha512-yPkaLwK0yH2mZKFE/bXkPAkkFgOv15GJAUzgUVonAbv0Hr4PK/N2yaA/4XQbTZQdygiDkpt5DkxPELqHguNvyw== +"@typescript-eslint/typescript-estree@6.19.1": + version "6.19.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.1.tgz#796d88d88882f12e85bb33d6d82d39e1aea54ed1" + integrity sha512-aFdAxuhzBFRWhy+H20nYu19+Km+gFfwNO4TEqyszkMcgBDYQjmPJ61erHxuT2ESJXhlhrO7I5EFIlZ+qGR8oVA== dependencies: - "@typescript-eslint/types" "6.14.0" - "@typescript-eslint/visitor-keys" "6.14.0" + "@typescript-eslint/types" "6.19.1" + "@typescript-eslint/visitor-keys" "6.19.1" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" + minimatch "9.0.3" semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.14.0": - version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.14.0.tgz#856a9e274367d99ffbd39c48128b93a86c4261e3" - integrity sha512-XwRTnbvRr7Ey9a1NT6jqdKX8y/atWG+8fAIu3z73HSP8h06i3r/ClMhmaF/RGWGW1tHJEwij1uEg2GbEmPYvYg== +"@typescript-eslint/utils@6.19.1": + version "6.19.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.19.1.tgz#df93497f9cfddde2bcc2a591da80536e68acd151" + integrity sha512-JvjfEZuP5WoMqwh9SPAPDSHSg9FBHHGhjPugSRxu5jMfjvBpq5/sGTD+9M9aQ5sh6iJ8AY/Kk/oUYVEMAPwi7w== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.14.0" - "@typescript-eslint/types" "6.14.0" - "@typescript-eslint/typescript-estree" "6.14.0" + "@typescript-eslint/scope-manager" "6.19.1" + "@typescript-eslint/types" "6.19.1" + "@typescript-eslint/typescript-estree" "6.19.1" semver "^7.5.4" -"@typescript-eslint/visitor-keys@6.14.0": - version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.14.0.tgz#1d1d486581819287de824a56c22f32543561138e" - integrity sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw== +"@typescript-eslint/visitor-keys@6.19.1": + version "6.19.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.1.tgz#2164073ed4fc34a5ff3b5e25bb5a442100454c4c" + integrity sha512-gkdtIO+xSO/SmI0W68DBg4u1KElmIUo3vXzgHyGPs6cxgB0sa3TlptRAAE0hUY1hM6FcDKEv7aIwiTGm76cXfQ== dependencies: - "@typescript-eslint/types" "6.14.0" + "@typescript-eslint/types" "6.19.1" eslint-visitor-keys "^3.4.1" "@ucast/core@^1.0.0", "@ucast/core@^1.4.1", "@ucast/core@^1.6.1": @@ -3372,13 +3317,6 @@ adler-32@~1.3.0: resolved "https://registry.yarnpkg.com/adler-32/-/adler-32-1.3.1.tgz#1dbf0b36dda0012189a32b3679061932df1821e2" integrity sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A== -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - agent-base@^7.0.2: version "7.1.0" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434" @@ -3440,7 +3378,7 @@ ansi-colors@4.1.3: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== -ansi-escapes@^4.2.1: +ansi-escapes@^4.2.1, ansi-escapes@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== @@ -3609,12 +3547,12 @@ available-typed-arrays@^1.0.5: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== -axios@^1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2" - integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== +axios@^1.6.5: + version "1.6.5" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.5.tgz#2c090da14aeeab3770ad30c3a1461bc970fb0cd8" + integrity sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg== dependencies: - follow-redirects "^1.15.0" + follow-redirects "^1.15.4" form-data "^4.0.0" proxy-from-env "^1.1.0" @@ -3987,14 +3925,14 @@ class-transformer@^0.5.1: resolved "https://registry.yarnpkg.com/class-transformer/-/class-transformer-0.5.1.tgz#24147d5dffd2a6cea930a3250a677addf96ab336" integrity sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw== -class-validator@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.14.0.tgz#40ed0ecf3c83b2a8a6a320f4edb607be0f0df159" - integrity sha512-ct3ltplN8I9fOwUd8GrP8UQixwff129BkEtuWDKL5W45cQuLd19xqmTLu5ge78YDm/fdje6FMt0hGOhl0lii3A== +class-validator@^0.14.1: + version "0.14.1" + resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.14.1.tgz#ff2411ed8134e9d76acfeb14872884448be98110" + integrity sha512-2VEG9JICxIqTpoK1eMzZqaV+u/EiwEJkMGzTrZf6sU/fwsnOITVgYJ8yojSy6CaXtO9V0Cc6ZQZ8h8m4UBuLwQ== dependencies: - "@types/validator" "^13.7.10" - libphonenumber-js "^1.10.14" - validator "^13.7.0" + "@types/validator" "^13.11.8" + libphonenumber-js "^1.10.53" + validator "^13.9.0" clear-module@^4.1.2: version "4.1.2" @@ -4035,6 +3973,11 @@ cli-width@^3.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +cli-width@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.1.0.tgz#42daac41d3c254ef38ad8ac037672130173691c5" + integrity sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ== + cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -4239,10 +4182,10 @@ cookie@0.5.0, cookie@^0.5.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== -cookiejar@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.3.tgz#fc7a6216e408e74414b90230050842dacda75acc" - integrity sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ== +cookiejar@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.4.tgz#ee669c1fea2cf42dc31585469d193fef0d65771b" + integrity sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw== core-util-is@^1.0.3, core-util-is@~1.0.0: version "1.0.3" @@ -4309,6 +4252,13 @@ cron@3.1.3: "@types/luxon" "~3.3.0" luxon "~3.4.0" +cross-inspect@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cross-inspect/-/cross-inspect-1.0.0.tgz#5fda1af759a148594d2d58394a9e21364f6849af" + integrity sha512-4PFfn4b5ZN6FMNGSZlyb7wUhuN8wvj8t/VQHZdM4JsDcruGJ8L2kf9zao98QIrBPFCpdk27qst/AGTl7pL3ypQ== + dependencies: + tslib "^2.4.0" + cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -4335,76 +4285,76 @@ crypto-random-string@^4.0.0: dependencies: type-fest "^1.0.1" -cspell-config-lib@8.1.3: - version "8.1.3" - resolved "https://registry.yarnpkg.com/cspell-config-lib/-/cspell-config-lib-8.1.3.tgz#5cd4a8e4d844e9b5737825bda5b445ed50795f88" - integrity sha512-whzJYxcxos3vnywn0alCFZ+Myc0K/C62pUurfOGhgvIba7ArmlXhNRaL2r5noBxWARtpBOtzz3vrzSBK7Lq6jg== +cspell-config-lib@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/cspell-config-lib/-/cspell-config-lib-8.3.2.tgz#050a6d782072a810cb6655efe11c08c80ae7636b" + integrity sha512-Wc98XhBNLwDxnxCzMtgRJALI9a69cu3C5Gf1rGjNTKSFo9JYiQmju0Ur3z25Pkx9Sa86f+2IjvNCf33rUDSoBQ== dependencies: - "@cspell/cspell-types" "8.1.3" + "@cspell/cspell-types" "8.3.2" comment-json "^4.2.3" yaml "^2.3.4" -cspell-dictionary@8.1.3: - version "8.1.3" - resolved "https://registry.yarnpkg.com/cspell-dictionary/-/cspell-dictionary-8.1.3.tgz#7294ade35ceb388cb841a6ac8435b631aa1cac68" - integrity sha512-nkRQDPNnA6tw+hJFBqq26M0nK306q5rtyv/AUIWa8ZHhQkwzACnpMSpuJA7/DV5GVvPKltMK5M4A6vgfpoaFHw== +cspell-dictionary@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/cspell-dictionary/-/cspell-dictionary-8.3.2.tgz#6627a94501811a143f3b638e0e77f7262335dbd4" + integrity sha512-xyK95hO2BMPFxIo8zBwGml8035qOxSBdga1BMhwW/p2wDrQP8S4Cdm/54//tCDmKn6uRkFQvyOfWGaX2l8WMEg== dependencies: - "@cspell/cspell-pipe" "8.1.3" - "@cspell/cspell-types" "8.1.3" - cspell-trie-lib "8.1.3" + "@cspell/cspell-pipe" "8.3.2" + "@cspell/cspell-types" "8.3.2" + cspell-trie-lib "8.3.2" fast-equals "^5.0.1" gensequence "^6.0.0" -cspell-gitignore@8.1.3: - version "8.1.3" - resolved "https://registry.yarnpkg.com/cspell-gitignore/-/cspell-gitignore-8.1.3.tgz#1d2ec9dc8d97ea8291a197e5acf6d6b6c9634193" - integrity sha512-NHx5lg44eCKb6yJmUPOCz4prcuYowzoo5GJ5hOcCfbk7ZEBWV1E2/kDRuQMOK2W0y1hNGr45CSxO3UxWJlYg7w== +cspell-gitignore@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/cspell-gitignore/-/cspell-gitignore-8.3.2.tgz#5cf244be494bf87257ca8715ac88b0849dd5fef3" + integrity sha512-3Qc9P5BVvl/cg//s2s+zIMGKcoH5v7oOtRgwn4UQry8yiyo19h0tiTKkSR574FMhF5NtcShTnwIwPSIXVBPFHA== dependencies: - cspell-glob "8.1.3" + cspell-glob "8.3.2" find-up-simple "^1.0.0" -cspell-glob@8.1.3: - version "8.1.3" - resolved "https://registry.yarnpkg.com/cspell-glob/-/cspell-glob-8.1.3.tgz#3eeecbf6ecbfab184107021fdf8691ce4e8fa6c5" - integrity sha512-Likr7UVUXBpthQnM5r6yao3X0YBNRbJ9AHWXTC2RJfzwZOFKF+pKPfeo3FU+Px8My96M4RC2bVMbrbZUwN5NJw== +cspell-glob@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/cspell-glob/-/cspell-glob-8.3.2.tgz#4c208e4ddd5604d2871df534a3054c7a3fdc9998" + integrity sha512-KtIFxE+3l5dGEofND4/CdZffXP8XN1+XGQKxJ96lIzWsc01mkotfhxTkla6mgvfH039t7BsY/SWv0460KyGslQ== dependencies: micromatch "^4.0.5" -cspell-grammar@8.1.3: - version "8.1.3" - resolved "https://registry.yarnpkg.com/cspell-grammar/-/cspell-grammar-8.1.3.tgz#8ee7d4cef92053c53b320ae105e64b771c73d21e" - integrity sha512-dTOwNq6a5wcVzOsi4xY5/tq2r2w/+wLVU+WfyySTsPe66Rjqx/QceFl4OinImks/ZMKF7Zyjd3WGyQ5TcSsJFQ== +cspell-grammar@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/cspell-grammar/-/cspell-grammar-8.3.2.tgz#69d7980c036c206745d5d417d32c95edaaff6107" + integrity sha512-tYCkOmRzJe1a6/R+8QGSwG7TwTgznLPqsHtepKzLmnS4YX54VXjKRI9zMARxXDzUVfyCSVdW5MyiY/0WTNoy+A== dependencies: - "@cspell/cspell-pipe" "8.1.3" - "@cspell/cspell-types" "8.1.3" + "@cspell/cspell-pipe" "8.3.2" + "@cspell/cspell-types" "8.3.2" -cspell-io@8.1.3: - version "8.1.3" - resolved "https://registry.yarnpkg.com/cspell-io/-/cspell-io-8.1.3.tgz#57e99a78d998d5ab6a7a09468892174f1233b62b" - integrity sha512-QkcFeYd79oIl7PgSqFSZyvwXnZQhXmdCI733n54IN2+iXDcf7W0mwptxoC/cE19RkEwAwEFLG81UAy6L/BXI6A== +cspell-io@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/cspell-io/-/cspell-io-8.3.2.tgz#8ddd865fa9a1391852e3288789f5b2a6613239bd" + integrity sha512-WYpKsyBCQP0SY4gXnhW5fPuxcYchKYKG1PIXVV3ezFU4muSgW6GuLNbGuSfwv/8YNXRgFSN0e3hYH0rdBK2Aow== dependencies: - "@cspell/cspell-service-bus" "8.1.3" + "@cspell/cspell-service-bus" "8.3.2" -cspell-lib@8.1.3: - version "8.1.3" - resolved "https://registry.yarnpkg.com/cspell-lib/-/cspell-lib-8.1.3.tgz#5c1f87c4adb2643baa510cf1bec083bd9145b5ab" - integrity sha512-Kk8bpHVkDZO4MEiPkDvRf/LgJ0h5mufbKLTWModq6k0Ca8EkZ/qgQlZ0ve0rIivbleSqebuWjpJHKDM+IHmzHA== - dependencies: - "@cspell/cspell-bundled-dicts" "8.1.3" - "@cspell/cspell-pipe" "8.1.3" - "@cspell/cspell-resolver" "8.1.3" - "@cspell/cspell-types" "8.1.3" - "@cspell/dynamic-import" "8.1.3" - "@cspell/strong-weak-map" "8.1.3" +cspell-lib@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/cspell-lib/-/cspell-lib-8.3.2.tgz#8225f8d3a20596bda4b9689a2ad958f7831f5a7d" + integrity sha512-wTvdaev/TyGB/ln6CVD1QbVs2D7/+QiajQ67S7yj1suLHM6YcNQQb/5sPAM8VPtj0E7PgwgPXf3bq18OtPvnFg== + dependencies: + "@cspell/cspell-bundled-dicts" "8.3.2" + "@cspell/cspell-pipe" "8.3.2" + "@cspell/cspell-resolver" "8.3.2" + "@cspell/cspell-types" "8.3.2" + "@cspell/dynamic-import" "8.3.2" + "@cspell/strong-weak-map" "8.3.2" clear-module "^4.1.2" comment-json "^4.2.3" configstore "^6.0.0" - cspell-config-lib "8.1.3" - cspell-dictionary "8.1.3" - cspell-glob "8.1.3" - cspell-grammar "8.1.3" - cspell-io "8.1.3" - cspell-trie-lib "8.1.3" + cspell-config-lib "8.3.2" + cspell-dictionary "8.3.2" + cspell-glob "8.3.2" + cspell-grammar "8.3.2" + cspell-io "8.3.2" + cspell-trie-lib "8.3.2" fast-equals "^5.0.1" gensequence "^6.0.0" import-fresh "^3.3.0" @@ -4412,34 +4362,34 @@ cspell-lib@8.1.3: vscode-languageserver-textdocument "^1.0.11" vscode-uri "^3.0.8" -cspell-trie-lib@8.1.3: - version "8.1.3" - resolved "https://registry.yarnpkg.com/cspell-trie-lib/-/cspell-trie-lib-8.1.3.tgz#0831429f898f816c301ac440dc1f2b199d51f7ba" - integrity sha512-EDSYU9MCtzPSJDrfvDrTKmc0rzl50Ehjg1c5rUCqn33p2LCRe/G8hW0FxXe0mxrZxrMO2b8l0PVSGlrCXCQ8RQ== +cspell-trie-lib@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/cspell-trie-lib/-/cspell-trie-lib-8.3.2.tgz#e1e8c9926f41a094bec7f0af85b931be06019fe7" + integrity sha512-8qh2FqzkLMwzlTlvO/5Z+89fhi30rrfekocpight/BmqKbE2XFJQD7wS2ml24e7q/rdHJLXVpJbY/V5mByucCA== dependencies: - "@cspell/cspell-pipe" "8.1.3" - "@cspell/cspell-types" "8.1.3" + "@cspell/cspell-pipe" "8.3.2" + "@cspell/cspell-types" "8.3.2" gensequence "^6.0.0" -cspell@^8.1.3: - version "8.1.3" - resolved "https://registry.yarnpkg.com/cspell/-/cspell-8.1.3.tgz#c8643b86d7e06b69e7032bf2ddf3b27563f85c43" - integrity sha512-SU4Su6002bPoJYaiMeNV4wwLoS8TwaOgIwaTxhys3GDbJIxZV6CrDgwksezHcG7TZrC4yrveDVsdpnrzmQ7T5Q== +cspell@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/cspell/-/cspell-8.3.2.tgz#56e7e919d87d38016b4c34b8c8ee745404c230a7" + integrity sha512-V8Ub3RO/a5lwSsltW/ib3Z3G/sczKtSpBBN1JChzbSCfEgaY2mJY8JW0BpkSV+Ug6uJitpXNOOaxa3Xr489i7g== dependencies: - "@cspell/cspell-json-reporter" "8.1.3" - "@cspell/cspell-pipe" "8.1.3" - "@cspell/cspell-types" "8.1.3" - "@cspell/dynamic-import" "8.1.3" + "@cspell/cspell-json-reporter" "8.3.2" + "@cspell/cspell-pipe" "8.3.2" + "@cspell/cspell-types" "8.3.2" + "@cspell/dynamic-import" "8.3.2" chalk "^5.3.0" chalk-template "^1.1.0" commander "^11.1.0" - cspell-gitignore "8.1.3" - cspell-glob "8.1.3" - cspell-io "8.1.3" - cspell-lib "8.1.3" + cspell-gitignore "8.3.2" + cspell-glob "8.3.2" + cspell-io "8.3.2" + cspell-lib "8.3.2" fast-glob "^3.3.2" fast-json-stable-stringify "^2.1.0" - file-entry-cache "^7.0.2" + file-entry-cache "^8.0.0" get-stdin "^9.0.0" semver "^7.5.4" strip-ansi "^7.1.0" @@ -4599,6 +4549,11 @@ dotenv@16.3.1: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e" integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== +dset@^3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/dset/-/dset-3.1.3.tgz#c194147f159841148e8e34ca41f638556d9542d2" + integrity sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ== + eastasianwidth@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" @@ -4646,13 +4601,6 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - enhanced-resolve@^5.0.0, enhanced-resolve@^5.7.0: version "5.10.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz#0dc579c3bb2a1032e357ac45b8f3a6f3ad4fb1e6" @@ -4776,6 +4724,11 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + eslint-config-prettier@^9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" @@ -4797,10 +4750,10 @@ eslint-module-utils@^2.8.0: dependencies: debug "^3.2.7" -eslint-plugin-import@^2.29.0: - version "2.29.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz#8133232e4329ee344f2f612885ac3073b0b7e155" - integrity sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg== +eslint-plugin-import@^2.29.1: + version "2.29.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" + integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== dependencies: array-includes "^3.1.7" array.prototype.findlastindex "^1.2.3" @@ -4818,7 +4771,7 @@ eslint-plugin-import@^2.29.0: object.groupby "^1.0.1" object.values "^1.1.7" semver "^6.3.1" - tsconfig-paths "^3.14.2" + tsconfig-paths "^3.15.0" eslint-scope@5.1.1: version "5.1.1" @@ -4851,15 +4804,15 @@ eslint-visitor-keys@^3.4.3: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@^8.55.0: - version "8.55.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.55.0.tgz#078cb7b847d66f2c254ea1794fa395bf8e7e03f8" - integrity sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA== +eslint@^8.56.0: + version "8.56.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15" + integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.55.0" + "@eslint/js" "8.56.0" "@humanwhocodes/config-array" "^0.11.13" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -4953,21 +4906,6 @@ events@^3.2.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -execa@^4.0.2: - version "4.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" - integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - execa@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" @@ -5052,7 +4990,7 @@ extend@^3.0.2: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -external-editor@^3.0.3: +external-editor@^3.0.3, external-editor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== @@ -5071,10 +5009,10 @@ fast-equals@^5.0.1: resolved "https://registry.yarnpkg.com/fast-equals/-/fast-equals-5.0.1.tgz#a4eefe3c5d1c0d021aeed0bc10ba5e0c12ee405d" integrity sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ== -fast-glob@3.2.12: - version "3.2.12" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" - integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== +fast-glob@3.3.2, fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -5093,17 +5031,6 @@ fast-glob@^3.2.7, fast-glob@^3.2.9: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" @@ -5152,6 +5079,14 @@ figures@^3.0.0: dependencies: escape-string-regexp "^1.0.5" +figures@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-5.0.0.tgz#126cd055052dea699f8a54e8c9450e6ecfc44d5f" + integrity sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg== + dependencies: + escape-string-regexp "^5.0.0" + is-unicode-supported "^1.2.0" + file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -5159,12 +5094,12 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" -file-entry-cache@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-7.0.2.tgz#2d61bb70ba89b9548e3035b7c9173fe91deafff0" - integrity sha512-TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g== +file-entry-cache@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" + integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== dependencies: - flat-cache "^3.2.0" + flat-cache "^4.0.0" file-stream-rotator@^0.6.1: version "0.6.1" @@ -5222,14 +5157,14 @@ flat-cache@^3.0.4: flatted "^3.1.0" rimraf "^3.0.2" -flat-cache@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" - integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== +flat-cache@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.0.tgz#d12437636f83bb8a12b8f300c36fd1614e1c7224" + integrity sha512-EryKbCE/wxpxKniQlyas6PY1I9vwtF3uCBweX+N8KYTCn3Y12RTGtQAJ/bd5pl7kxUAc8v/R3Ake/N17OZiFqA== dependencies: flatted "^3.2.9" - keyv "^4.5.3" - rimraf "^3.0.2" + keyv "^4.5.4" + rimraf "^5.0.5" flatted@^3.1.0: version "3.2.6" @@ -5246,10 +5181,10 @@ fn.name@1.x.x: resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== -follow-redirects@^1.15.0: - version "1.15.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" - integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== +follow-redirects@^1.15.4: + version "1.15.4" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.4.tgz#cdc7d308bf6493126b17ea2191ea0ccf3e535adf" + integrity sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw== for-each@^0.3.3: version "0.3.3" @@ -5293,10 +5228,10 @@ form-data@^4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" -formidable@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/formidable/-/formidable-2.1.1.tgz#81269cbea1a613240049f5f61a9d97731517414f" - integrity sha512-0EcS9wCFEzLvfiks7omJ+SiYJAiD+TzK4Pcw1UlUoGnhUxDcMKjt0P7x8wEb0u6OHu8Nb98WG3nxtlF5C7bvUQ== +formidable@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/formidable/-/formidable-2.1.2.tgz#fa973a2bec150e4ce7cac15589d7a25fc30ebd89" + integrity sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g== dependencies: dezalgo "^1.0.4" hexoid "^1.0.0" @@ -5448,13 +5383,6 @@ get-stdin@^9.0.0: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-9.0.0.tgz#3983ff82e03d56f1b2ea0d3e60325f39d703a575" integrity sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA== -get-stream@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - get-stream@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" @@ -5558,10 +5486,10 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -google-auth-library@^9.4.1: - version "9.4.1" - resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-9.4.1.tgz#dea32cbdae0a47066995a379e6873c52926ea80e" - integrity sha512-Chs7cuzDuav8W/BXOoRgSXw4u0zxYtuqAHETDR5Q6dG1RwNwz7NUKjsDDHAsBV3KkiiJBtJqjbzy1XU1L41w1g== +google-auth-library@^9.4.2: + version "9.4.2" + resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-9.4.2.tgz#4831150d2c049c37450a81141be34027657c38b6" + integrity sha512-rTLO4gjhqqo3WvYKL5IdtlCvRqeQ4hxUx/p4lObobY2xotFW3bCQC+Qf1N51CYOfiqfMecdMwW9RIo7dFWYjqw== dependencies: base64-js "^1.3.0" ecdsa-sig-formatter "^1.0.11" @@ -5599,10 +5527,10 @@ graphql-tag@2.12.6: dependencies: tslib "^2.1.0" -graphql-ws@5.11.3: - version "5.11.3" - resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.11.3.tgz#eaf8e6baf669d167975cff13ad86abca4ecfe82f" - integrity sha512-fU8zwSgAX2noXAsuFiCZ8BtXeXZOzXyK5u1LloCdacsVth4skdBMPO74EG51lBoWSIZ8beUocdpV8+cQHBODnQ== +graphql-ws@5.14.2: + version "5.14.2" + resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.14.2.tgz#7db6f6138717a544d9480f0213f65f2841ed1c52" + integrity sha512-LycmCwhZ+Op2GlHz4BZDsUYHKRiiUz+3r9wbhBATMETNlORQJAaFlAgTFoeRh6xQoQegwYwIylVD1Qns9/DA3w== gtoken@^7.0.0: version "7.0.1" @@ -5696,14 +5624,6 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" -https-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - https-proxy-agent@^7.0.1: version "7.0.2" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz#e2645b846b90e96c6e6f347fb5b2e41f1590b09b" @@ -5712,11 +5632,6 @@ https-proxy-agent@^7.0.1: agent-base "^7.0.2" debug "4" -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== - human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" @@ -5793,27 +5708,6 @@ ini@4.1.1: resolved "https://registry.yarnpkg.com/ini/-/ini-4.1.1.tgz#d95b3d843b1e906e56d6747d5447904ff50ce7a1" integrity sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g== -inquirer@8.2.4: - version "8.2.4" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.4.tgz#ddbfe86ca2f67649a67daa6f1051c128f684f0b4" - integrity sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg== - dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.1" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.21" - mute-stream "0.0.8" - ora "^5.4.1" - run-async "^2.4.0" - rxjs "^7.5.5" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - wrap-ansi "^7.0.0" - inquirer@8.2.6: version "8.2.6" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.6.tgz#733b74888195d8d400a67ac332011b5fae5ea562" @@ -5835,6 +5729,27 @@ inquirer@8.2.6: through "^2.3.6" wrap-ansi "^6.0.1" +inquirer@9.2.11: + version "9.2.11" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-9.2.11.tgz#e9003755c233a414fceda1891c23bd622cad4a95" + integrity sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g== + dependencies: + "@ljharb/through" "^2.3.9" + ansi-escapes "^4.3.2" + chalk "^5.3.0" + cli-cursor "^3.1.0" + cli-width "^4.1.0" + external-editor "^3.1.0" + figures "^5.0.0" + lodash "^4.17.21" + mute-stream "1.0.0" + ora "^5.4.1" + run-async "^3.0.0" + rxjs "^7.8.1" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wrap-ansi "^6.2.0" + internal-slot@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" @@ -6063,6 +5978,11 @@ is-unicode-supported@^0.1.0: resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== +is-unicode-supported@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz#d824984b616c292a2e198207d4a609983842f714" + integrity sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ== + is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" @@ -6588,14 +6508,14 @@ jest@^29.7.0: import-local "^3.0.2" jest-cli "^29.7.0" -joi@^17.11.0: - version "17.11.0" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.11.0.tgz#aa9da753578ec7720e6f0ca2c7046996ed04fc1a" - integrity sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ== +joi@^17.12.0: + version "17.12.0" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.12.0.tgz#a3fb5715f198beb0471cd551dd26792089c308d5" + integrity sha512-HSLsmSmXz+PV9PYoi3p7cgIbj06WnEBNT28n+bbBNcPZXZFqCzzvGqpTBPujx/Z0nh1+KNQPDrNgdmQ8dq0qYw== dependencies: - "@hapi/hoek" "^9.0.0" - "@hapi/topo" "^5.0.0" - "@sideway/address" "^4.1.3" + "@hapi/hoek" "^9.3.0" + "@hapi/topo" "^5.1.0" + "@sideway/address" "^4.1.4" "@sideway/formula" "^3.0.1" "@sideway/pinpoint" "^2.0.0" @@ -6752,10 +6672,10 @@ kareem@2.5.1: resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.5.1.tgz#7b8203e11819a8e77a34b3517d3ead206764d15d" integrity sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA== -keyv@^4.5.3: - version "4.5.3" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.3.tgz#00873d2b046df737963157bd04f294ca818c9c25" - integrity sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug== +keyv@^4.5.4: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== dependencies: json-buffer "3.0.1" @@ -6782,10 +6702,10 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -libphonenumber-js@^1.10.14: - version "1.10.15" - resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.10.15.tgz#cad454adb5bf271bc820bbf7dd66776afcda7be6" - integrity sha512-sLeVLmWX17VCKKulc+aDIRHS95TxoTsKMRJi5s5gJdwlqNzMWcBCtSHHruVyXjqfi67daXM2SnLf2juSrdx5Sg== +libphonenumber-js@^1.10.53: + version "1.10.54" + resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.10.54.tgz#8dfba112f49d1b9c2a160e55f9697f22e50f0841" + integrity sha512-P+38dUgJsmh0gzoRDoM4F5jLbyfztkU6PY6eSK6S5HwTi/LPvnwXqVCQZlAy1FxZ5c48q25QhxGQ0pq+WQcSlQ== lines-and-columns@^1.1.6: version "1.2.4" @@ -6912,11 +6832,6 @@ luxon@~3.4.0: resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.4.3.tgz#8ddf0358a9492267ffec6a13675fbaab5551315d" integrity sha512-tFWBiv3h7z+T/tDaoxA8rqTxy1CHV6gHS//QdaH4pulbq/JuBSGgQspQQqcgnwdAx6pNI7cmvz5Sv/addzHmUg== -macos-release@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.5.0.tgz#067c2c88b5f3fb3c56a375b2ec93826220fa1ff2" - integrity sha512-EIgv+QZ9r+814gjJj0Bt5vSLJLzswGmSUbUpbi9AIr/fsN2IWFBl2NucV9PAiek+U1STK468tEkxmVYUtuAN3g== - magic-string@0.30.0: version "0.30.0" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.0.tgz#fd58a4748c5c4547338a424e90fa5dd17f4de529" @@ -6924,10 +6839,10 @@ magic-string@0.30.0: dependencies: "@jridgewell/sourcemap-codec" "^1.4.13" -magic-string@0.30.1: - version "0.30.1" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.1.tgz#ce5cd4b0a81a5d032bd69aab4522299b2166284d" - integrity sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA== +magic-string@0.30.5: + version "0.30.5" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" + integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== dependencies: "@jridgewell/sourcemap-codec" "^1.4.15" @@ -7031,6 +6946,13 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +minimatch@9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -7079,10 +7001,10 @@ mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -moment-timezone@^0.5.43: - version "0.5.43" - resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.43.tgz#3dd7f3d0c67f78c23cd1906b9b2137a09b3c4790" - integrity sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ== +moment-timezone@^0.5.44: + version "0.5.44" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.44.tgz#a64a4e47b68a43deeab5ae4eb4f82da77cdf595f" + integrity sha512-nv3YpzI/8lkQn0U6RkLd+f0W/zy/JnoR5/EyPz/dNkPTBjA2jNLCVxaiQ8QpeLymhSZvX0wCL5s27NQWdOPwAw== dependencies: moment "^2.29.4" @@ -7091,31 +7013,36 @@ moment@2.x.x, moment@^2.29.1, moment@^2.29.4: resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== -mongodb-connection-string-url@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz#57901bf352372abdde812c81be47b75c6b2ec5cf" - integrity sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ== +moment@^2.30.1: + version "2.30.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" + integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== + +mongodb-connection-string-url@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.0.tgz#b4f87f92fd8593f3b9365f592515a06d304a1e9c" + integrity sha512-t1Vf+m1I5hC2M5RJx/7AtxgABy1cZmIPQRMXw+gEIPn/cZNF3Oiy+l0UIypUwVB5trcWHq3crg2g3uAR9aAwsQ== dependencies: - "@types/whatwg-url" "^8.2.1" - whatwg-url "^11.0.0" + "@types/whatwg-url" "^11.0.2" + whatwg-url "^13.0.0" -mongodb@6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-6.2.0.tgz#2c9dcb3eeaf528ed850e94b3df392de6c6b0d7ab" - integrity sha512-d7OSuGjGWDZ5usZPqfvb36laQ9CPhnWkAGHT61x5P95p/8nMVeH8asloMwW6GcYFeB0Vj4CB/1wOTDG2RA9BFA== +mongodb@6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-6.3.0.tgz#ec9993b19f7ed2ea715b903fcac6171c9d1d38ca" + integrity sha512-tt0KuGjGtLUhLoU263+xvQmPHEGTw5LbcNC73EoFRYgSHwZt5tsoJC110hDyO1kjQzpgNrpdcSza9PknWN4LrA== dependencies: "@mongodb-js/saslprep" "^1.1.0" bson "^6.2.0" - mongodb-connection-string-url "^2.6.0" + mongodb-connection-string-url "^3.0.0" -mongoose@^8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-8.0.3.tgz#f3708ba0f40b6dec8f5f1a5d40abd69a80207114" - integrity sha512-LJRT0yP4TW14HT4r2RkxqyvoTylMSzWpl5QOeVHTnRggCLQSpkoBdgbUtORFq/mSL2o9cLCPJz+6uzFj25qbHw== +mongoose@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-8.1.0.tgz#25be9a39295c0cbffc971fdd4fb6302dceeb2ded" + integrity sha512-kOA4Xnq2goqNpN9EmYElGNWfxA9H80fxcr7UdJKWi3UMflza0R7wpTihCpM67dE/0MNFljoa0sjQtlXVkkySAQ== dependencies: bson "^6.2.0" kareem "2.5.1" - mongodb "6.2.0" + mongodb "6.3.0" mpath "0.9.0" mquery "5.0.0" ms "2.1.3" @@ -7166,6 +7093,11 @@ mute-stream@0.0.8: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== +mute-stream@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" + integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -7249,7 +7181,7 @@ normalize-path@3.0.0, normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -npm-run-path@^4.0.0, npm-run-path@^4.0.1: +npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== @@ -7331,7 +7263,7 @@ on-headers@~1.0.1: resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== @@ -7379,14 +7311,6 @@ ora@5.4.1, ora@^5.4.1: strip-ansi "^6.0.0" wcwidth "^1.0.1" -os-name@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/os-name/-/os-name-4.0.1.tgz#32cee7823de85a8897647ba4d76db46bf845e555" - integrity sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw== - dependencies: - macos-release "^2.5.0" - windows-release "^4.0.0" - os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -7550,7 +7474,12 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@2.3.1, picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: +picomatch@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-3.0.1.tgz#817033161def55ec9638567a2f3bbc876b3e7516" + integrity sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -7577,10 +7506,10 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.1.tgz#6ba9f23165d690b6cbdaa88cb0807278f7019848" - integrity sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw== +prettier@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.4.tgz#4723cadeac2ce7c9227de758e5ff9b14e075f283" + integrity sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ== pretty-format@^29.0.0, pretty-format@^29.0.1: version "29.0.1" @@ -7626,19 +7555,16 @@ proxy-from-env@^1.1.0: resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@^2.1.0, punycode@^2.1.1: +punycode@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +punycode@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + pure-rand@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.1.tgz#31207dddd15d43f299fdcdb2f572df65030c19af" @@ -7729,10 +7655,10 @@ rechoir@^0.6.2: dependencies: resolve "^1.1.6" -reflect-metadata@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.2.0.tgz#e40299bf27422fe672b905468f34152a96efcaf7" - integrity sha512-vUN0wuk3MuhSVMfU/ImnPQAK8QZcXJ339DtVsP3jDscxCe6dT+PsOe3J1BYS9Ec2Fd4oC6ry6bCBebzTya0IYw== +reflect-metadata@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.2.1.tgz#8d5513c0f5ef2b4b9c3865287f3c0940c1f67f74" + integrity sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw== regexp.prototype.flags@^1.5.1: version "1.5.1" @@ -7840,16 +7766,21 @@ rimraf@^5.0.5: dependencies: glob "^10.3.7" -rotating-file-stream@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/rotating-file-stream/-/rotating-file-stream-3.1.1.tgz#1c126ab2d34ab19c703909922182468b66d6b893" - integrity sha512-PNF1iDkxcZG+T87uUzLlcO4aquTCyY8yl+Q/OTK4dMwhwWDYWU4ZATYeIXHmYVGIzqZ2MrpY4WIkYc9Bsc3Nzw== +rotating-file-stream@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/rotating-file-stream/-/rotating-file-stream-3.2.1.tgz#1d0a536d75884eedc3a677f5b0871fdc69f97d22" + integrity sha512-n2B18CJb+n2VA5Tdle+1NP2toEcRv68CjAOBjHmwcyswNwMVsrN3gVRZ9ymH3sapaiGY8jc9OhhV5b6I5rAeiA== run-async@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== +run-async@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-3.0.0.tgz#42a432f6d76c689522058984384df28be379daad" + integrity sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q== + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -8270,29 +8201,29 @@ subscriptions-transport-ws@0.11.0: symbol-observable "^1.0.4" ws "^5.2.0 || ^6.0.0 || ^7.0.0" -superagent@^8.0.5: - version "8.0.6" - resolved "https://registry.yarnpkg.com/superagent/-/superagent-8.0.6.tgz#e3fb0b3112b79b12acd605c08846253197765bf6" - integrity sha512-HqSe6DSIh3hEn6cJvCkaM1BLi466f1LHi4yubR0tpewlMpk4RUFFy35bKz8SsPBwYfIIJy5eclp+3tCYAuX0bw== +superagent@^8.1.2: + version "8.1.2" + resolved "https://registry.yarnpkg.com/superagent/-/superagent-8.1.2.tgz#03cb7da3ec8b32472c9d20f6c2a57c7f3765f30b" + integrity sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA== dependencies: component-emitter "^1.3.0" - cookiejar "^2.1.3" + cookiejar "^2.1.4" debug "^4.3.4" fast-safe-stringify "^2.1.1" form-data "^4.0.0" - formidable "^2.1.1" + formidable "^2.1.2" methods "^1.1.2" mime "2.6.0" qs "^6.11.0" semver "^7.3.8" -supertest@^6.3.3: - version "6.3.3" - resolved "https://registry.yarnpkg.com/supertest/-/supertest-6.3.3.tgz#42f4da199fee656106fd422c094cf6c9578141db" - integrity sha512-EMCG6G8gDu5qEqRQ3JjjPs6+FYT1a7Hv5ApHvtSghmOFJYtsU5S+pSb6Y2EUeCEY3CmEL3mmQ8YWlPOzQomabA== +supertest@^6.3.4: + version "6.3.4" + resolved "https://registry.yarnpkg.com/supertest/-/supertest-6.3.4.tgz#2145c250570c2ea5d337db3552dbfb78a2286218" + integrity sha512-erY3HFDG0dPnhw4U+udPfrzXa4xhSG+n4rxfRuZWCUvjFWwKl+OxWf/7zk50s84/fAAs7vf5QAb9uRa0cCykxw== dependencies: methods "^1.1.2" - superagent "^8.0.5" + superagent "^8.1.2" supports-color@^5.3.0: version "5.5.0" @@ -8320,10 +8251,10 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -swagger-ui-dist@5.10.3: - version "5.10.3" - resolved "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-5.10.3.tgz#903adbfbecc0670a802b6d8b770e5dd07b5a36cb" - integrity sha512-fu3aozjxFWsmcO1vyt1q1Ji2kN7KlTd1vHy27E9WgPyXo9nrEzhQPqgxaAjbMsOmb8XFKNGo4Sa3Q+84Fh+pFw== +swagger-ui-dist@5.11.0: + version "5.11.0" + resolved "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-5.11.0.tgz#9bcfd75278b1fa9c36fe52f206f8fc611470547c" + integrity sha512-j0PIATqQSEFGOLmiJOJZj1X1Jt6bFIur3JpY7+ghliUnfZs0fpWDdHEkn9q7QUlBtKbkn6TepvSxTqnE8l3s0A== symbol-observable@4.0.0: version "4.0.0" @@ -8414,12 +8345,12 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== -tr46@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" - integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== +tr46@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-4.1.1.tgz#281a758dcc82aeb4fe38c7dfe4d11a395aac8469" + integrity sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw== dependencies: - punycode "^2.1.1" + punycode "^2.3.0" tr46@~0.0.3: version "0.0.3" @@ -8446,10 +8377,10 @@ ts-api-utils@^1.0.1: resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.1.tgz#8144e811d44c749cd65b2da305a032510774452d" integrity sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A== -ts-jest@^29.1.1: - version "29.1.1" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.1.1.tgz#f58fe62c63caf7bfcc5cc6472082f79180f0815b" - integrity sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA== +ts-jest@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.1.2.tgz#7613d8c81c43c8cb312c6904027257e814c40e09" + integrity sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g== dependencies: bs-logger "0.x" fast-json-stable-stringify "2.x" @@ -8528,10 +8459,10 @@ tsconfig-paths@4.2.0, tsconfig-paths@^4.2.0: minimist "^1.2.6" strip-bom "^3.0.0" -tsconfig-paths@^3.14.2: - version "3.14.2" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" - integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== +tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== dependencies: "@types/json5" "^0.0.29" json5 "^1.0.2" @@ -8547,11 +8478,6 @@ tsconfig-paths@^4.1.2: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@2.5.0, tslib@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" - integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== - tslib@2.6.2, tslib@^2.4.0: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" @@ -8567,6 +8493,11 @@ tslib@^2.1.0, tslib@^2.3.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== +tslib@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" + integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== + type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -8653,12 +8584,7 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typescript@5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" - integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== - -typescript@^5.3.3: +typescript@5.3.3, typescript@^5.3.3: version "5.3.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== @@ -8761,12 +8687,12 @@ v8-to-istanbul@^9.0.1: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" -validator@^13.7.0: - version "13.7.0" - resolved "https://registry.yarnpkg.com/validator/-/validator-13.7.0.tgz#4f9658ba13ba8f3d82ee881d3516489ea85c0857" - integrity sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw== +validator@^13.9.0: + version "13.11.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.11.0.tgz#23ab3fd59290c61248364eabf4067f04955fbb1b" + integrity sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ== -value-or-promise@1.0.12: +value-or-promise@^1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.12.tgz#0e5abfeec70148c78460a849f6b003ea7986f15c" integrity sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q== @@ -8858,12 +8784,12 @@ webpack@5.89.0: watchpack "^2.4.0" webpack-sources "^3.2.3" -whatwg-url@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" - integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== +whatwg-url@^13.0.0: + version "13.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-13.0.0.tgz#b7b536aca48306394a34e44bda8e99f332410f8f" + integrity sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig== dependencies: - tr46 "^3.0.0" + tr46 "^4.1.1" webidl-conversions "^7.0.0" whatwg-url@^5.0.0: @@ -8910,13 +8836,6 @@ widest-line@^3.1.0: dependencies: string-width "^4.0.0" -windows-release@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-4.0.0.tgz#4725ec70217d1bf6e02c7772413b29cdde9ec377" - integrity sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg== - dependencies: - execa "^4.0.2" - winston-daily-rotate-file@^4.7.1: version "4.7.1" resolved "https://registry.yarnpkg.com/winston-daily-rotate-file/-/winston-daily-rotate-file-4.7.1.tgz#f60a643af87f8867f23170d8cd87dbe3603a625f" @@ -8972,7 +8891,7 @@ word@~0.3.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^6.0.1: +wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== @@ -9013,10 +8932,10 @@ write-file-atomic@^4.0.2: imurmurhash "^0.1.4" signal-exit "^3.0.7" -ws@8.12.0: - version "8.12.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.0.tgz#485074cc392689da78e1828a9ff23585e06cddd8" - integrity sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig== +ws@8.14.2: + version "8.14.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" + integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== "ws@^5.2.0 || ^6.0.0 || ^7.0.0": version "7.5.9"