diff --git a/backend/package.json b/backend/package.json index b92b38f..898224f 100644 --- a/backend/package.json +++ b/backend/package.json @@ -22,6 +22,7 @@ "purge": "rm -rf dist && rm -rf node_modules" }, "dependencies": { + "@aws-sdk/client-s3": "^3.238.0", "@fastify/helmet": "^10.1.0", "@fastify/multipart": "^7.5.0", "@fastify/reply-from": "^9.0.1", diff --git a/backend/src/collections/file-s3/file-s3.module.ts b/backend/src/collections/file-s3/file-s3.module.ts new file mode 100644 index 0000000..f563a33 --- /dev/null +++ b/backend/src/collections/file-s3/file-s3.module.ts @@ -0,0 +1,10 @@ +import { Module } from '@nestjs/common'; +import { EarlyConfigModule } from '../../config/early/early-config.module'; +import { FileS3Service } from './file-s3.service'; + +@Module({ + imports: [EarlyConfigModule], + providers: [FileS3Service], + exports: [FileS3Service], +}) +export class FileS3Module {} diff --git a/backend/src/collections/file-s3/file-s3.service.ts b/backend/src/collections/file-s3/file-s3.service.ts new file mode 100644 index 0000000..c94ecbc --- /dev/null +++ b/backend/src/collections/file-s3/file-s3.service.ts @@ -0,0 +1,122 @@ +import { + CreateBucketCommand, + DeleteObjectCommand, + DeleteObjectsCommand, + GetObjectCommand, + ListBucketsCommand, + PutObjectCommand, + S3Client, +} from '@aws-sdk/client-s3'; +import { Injectable, Logger, OnModuleInit } from '@nestjs/common'; +import { buffer as streamToBuffer } from 'get-stream'; +import { AsyncFailable, Fail, FT } from 'picsur-shared/dist/types'; +import { Readable } from 'stream'; +import { S3ConfigService } from '../../config/early/s3.config.service'; + +@Injectable() +export class FileS3Service implements OnModuleInit { + private readonly logger = new Logger(FileS3Service.name); + + private S3: Promise = this.loadS3(); + + constructor(private readonly s3config: S3ConfigService) {} + + onModuleInit() { + this.loadS3(); + } + + public async putFile(key: string, data: Buffer): AsyncFailable { + const S3 = await this.S3; + + const request = new PutObjectCommand({ + Bucket: this.s3config.getS3Bucket(), + Key: key, + Body: data, + }); + + try { + await S3.send(request); + return key; + } catch (e) { + return Fail(FT.Database, e); + } + } + + public async getFile(key: string): AsyncFailable { + const S3 = await this.S3; + + const request = new GetObjectCommand({ + Bucket: this.s3config.getS3Bucket(), + Key: key, + }); + + try { + const result = await S3.send(request); + if (!result.Body) return Fail(FT.NotFound, 'File not found'); + + if (result.Body instanceof Blob) { + return Buffer.from(await result.Body.arrayBuffer()); + } + return streamToBuffer(result.Body as Readable); + } catch (e) { + return Fail(FT.Database, e); + } + } + + public async deleteFile(key: string): AsyncFailable { + const S3 = await this.S3; + + const request = new DeleteObjectCommand({ + Bucket: this.s3config.getS3Bucket(), + Key: key, + }); + + try { + await S3.send(request); + return true; + } catch (e) { + return Fail(FT.Database, e); + } + } + + public async deleteFiles(keys: string[]): AsyncFailable { + const S3 = await this.S3; + + const request = new DeleteObjectsCommand({ + Bucket: this.s3config.getS3Bucket(), + Delete: { + Objects: keys.map((key) => ({ Key: key })), + }, + }); + + try { + await S3.send(request); + return true; + } catch (e) { + return Fail(FT.Database, e); + } + } + + private async loadS3(): Promise { + const S3 = new S3Client(this.s3config.getS3Config()); + + try { + // Create bucket if it doesn't exist + const bucket = this.s3config.getS3Bucket(); + + // List buckets + const listBuckets = await S3.send(new ListBucketsCommand({})); + + const bucketExists = listBuckets.Buckets?.some((b) => b.Name === bucket); + if (!bucketExists) { + this.logger.verbose(`Creating S3 Bucket ${bucket}`); + await S3.send(new CreateBucketCommand({ Bucket: bucket })); + } else { + this.logger.verbose(`Using existing S3 Bucket ${bucket}`); + } + } catch (e) { + this.logger.error(e); + } + return S3; + } +} diff --git a/backend/src/config/early/early-config.module.ts b/backend/src/config/early/early-config.module.ts index f2b9573..4effe43 100644 --- a/backend/src/config/early/early-config.module.ts +++ b/backend/src/config/early/early-config.module.ts @@ -5,6 +5,7 @@ import { EarlyJwtConfigService } from './early-jwt.config.service'; import { HostConfigService } from './host.config.service'; import { MultipartConfigService } from './multipart.config.service'; import { RedisConfigService } from './redis.config.service'; +import { S3ConfigService } from './s3.config.service'; import { ServeStaticConfigService } from './serve-static.config.service'; import { TypeOrmConfigService } from './type-orm.config.service'; @@ -23,6 +24,7 @@ import { TypeOrmConfigService } from './type-orm.config.service'; AuthConfigService, MultipartConfigService, RedisConfigService, + S3ConfigService, ], exports: [ ConfigModule, @@ -33,6 +35,7 @@ import { TypeOrmConfigService } from './type-orm.config.service'; AuthConfigService, MultipartConfigService, RedisConfigService, + S3ConfigService, ], }) export class EarlyConfigModule {} diff --git a/backend/src/config/early/s3.config.service.ts b/backend/src/config/early/s3.config.service.ts new file mode 100644 index 0000000..c33c6c5 --- /dev/null +++ b/backend/src/config/early/s3.config.service.ts @@ -0,0 +1,73 @@ +import { S3ClientConfig } from '@aws-sdk/client-s3'; +import { Injectable, Logger } from '@nestjs/common'; +import { ConfigService } from '@nestjs/config'; +import { ParseString } from 'picsur-shared/dist/util/parse-simple'; +import { EnvPrefix } from '../config.static'; + +@Injectable() +export class S3ConfigService { + private readonly logger = new Logger(S3ConfigService.name); + + constructor(private readonly configService: ConfigService) { + if (this.getS3Endpoint()) + this.logger.log('Custom S3 Endpoint: ' + this.getS3Endpoint()); + + this.logger.log('S3 Region: ' + this.getS3Region()); + this.logger.log('S3 Bucket: ' + this.getS3Bucket()); + + this.logger.verbose('S3 Access Key: ' + this.getS3AccessKey()); + this.logger.verbose('S3 Secret Key: ' + this.getS3SecretKey()); + } + + public getS3Config(): S3ClientConfig { + return { + credentials: { + accessKeyId: this.getS3AccessKey(), + secretAccessKey: this.getS3SecretKey(), + }, + endpoint: this.getS3Endpoint() ?? undefined, + region: this.getS3Region(), + tls: this.getS3TLS(), + }; + } + + public getS3Endpoint(): string | null { + return ParseString(this.configService.get(`${EnvPrefix}S3_ENDPOINT`), null); + } + + public getS3TLS(): boolean | undefined { + const endpoint = this.getS3Endpoint(); + if (endpoint) { + return endpoint.startsWith('https'); + } + return undefined; + } + + public getS3Bucket(): string { + return ParseString( + this.configService.get(`${EnvPrefix}S3_BUCKET`), + 'picsur', + ); + } + + public getS3Region(): string { + return ParseString( + this.configService.get(`${EnvPrefix}S3_REGION`), + 'us-east-1', + ); + } + + public getS3AccessKey(): string { + return ParseString( + this.configService.get(`${EnvPrefix}S3_ACCESS_KEY`), + 'picsur', + ); + } + + public getS3SecretKey(): string { + return ParseString( + this.configService.get(`${EnvPrefix}S3_SECRET_KEY`), + 'picsur', + ); + } +} diff --git a/backend/src/config/early/type-orm.config.service.ts b/backend/src/config/early/type-orm.config.service.ts index da8e9b2..8783cc1 100644 --- a/backend/src/config/early/type-orm.config.service.ts +++ b/backend/src/config/early/type-orm.config.service.ts @@ -6,6 +6,7 @@ import { EntityList } from '../../database/entities'; import { MigrationList } from '../../database/migrations'; import { DefaultName, EnvPrefix } from '../config.static'; import { HostConfigService } from './host.config.service'; +import { RedisConfigService } from './redis.config.service'; @Injectable() export class TypeOrmConfigService implements TypeOrmOptionsFactory { @@ -13,6 +14,7 @@ export class TypeOrmConfigService implements TypeOrmOptionsFactory { constructor( private readonly configService: ConfigService, + private readonly redisConfig: RedisConfigService, private readonly hostService: HostConfigService, ) { const varOptions = this.getTypeOrmServerOptions(); @@ -66,6 +68,13 @@ export class TypeOrmConfigService implements TypeOrmOptionsFactory { entitiesDir: 'src/database/entities', }, + // cache: { + // duration: 60000, + // type: 'ioredis', + // alwaysEnabled: false, + // options: this.redisConfig.getRedisUrl(), + // }, + ...varOptions, } as TypeOrmModuleOptions; } diff --git a/backend/src/managers/image/image-manager.module.ts b/backend/src/managers/image/image-manager.module.ts index a4104cf..d9d9aaa 100644 --- a/backend/src/managers/image/image-manager.module.ts +++ b/backend/src/managers/image/image-manager.module.ts @@ -38,6 +38,7 @@ export class ImageManagerModule implements OnModuleInit { private async imageManagerCron() { await this.cleanupDerivatives(); await this.cleanupExpired(); + await this.cleanupOrphanedFiles(); } private async cleanupDerivatives() { @@ -75,4 +76,25 @@ export class ImageManagerModule implements OnModuleInit { if (cleanedUp > 0) this.logger.log(`Cleaned up ${cleanedUp} expired images`); } + + private async cleanupOrphanedFiles() { + // const cleanedUpDerivatives = + // await this.imageFileDB.cleanupOrphanedDerivatives(); + + // if (HasFailed(cleanedUpDerivatives)) { + // cleanedUpDerivatives.print(this.logger); + // return; + // } + + // const cleanedUpFiles = await this.imageFileDB.cleanupOrphanedFiles(); + // if (HasFailed(cleanedUpFiles)) { + // cleanedUpFiles.print(this.logger); + // return; + // } + + // if (cleanedUpDerivatives > 0 || cleanedUpFiles > 0) + // this.logger.log( + // `Cleaned up ${cleanedUpDerivatives} orphaned derivatives and ${cleanedUpFiles} orphaned files`, + // ); + } } diff --git a/backend/src/workers/sharp/universal-sharp.ts b/backend/src/workers/sharp/universal-sharp.ts index 89e625d..72c56bc 100644 --- a/backend/src/workers/sharp/universal-sharp.ts +++ b/backend/src/workers/sharp/universal-sharp.ts @@ -2,7 +2,7 @@ import { BMPdecode, BMPencode } from 'bmp-img'; import { AnimFileType, FileType, - ImageFileType + ImageFileType, } from 'picsur-shared/dist/dto/mimes.dto'; import { QOIdecode, QOIencode } from 'qoi-img'; import sharp, { Sharp, SharpOptions } from 'sharp'; diff --git a/support/dev.docker-compose.yml b/support/dev.docker-compose.yml index 50062c9..8b2e083 100644 --- a/support/dev.docker-compose.yml +++ b/support/dev.docker-compose.yml @@ -1,6 +1,7 @@ version: '3' services: devdb: + container_name: devdb image: postgres:14-alpine environment: POSTGRES_DB: picsur @@ -11,6 +12,23 @@ services: restart: unless-stopped volumes: - db-data:/var/lib/postgresql/data - + devs3: + image: zenko/cloudserver:latest + container_name: devs3 + environment: + S3BACKEND: file + S3DATAPATH: /storage/data/ + S3METADATAPATH: /storage/metadata/ + SCALITY_ACCESS_KEY_ID: username + SCALITY_SECRET_ACCESS_KEY: password + REMOTE_MANAGEMENT_DISABLE: 'true' + ports: + - '8000:8000' + restart: unless-stopped + volumes: + - s3-data:/storage/data + - s3-metadata:/storage/metadata volumes: db-data: + s3-data: + s3-metadata: diff --git a/yarn.lock b/yarn.lock index 057887f..4a86dde 100644 --- a/yarn.lock +++ b/yarn.lock @@ -659,6 +659,1160 @@ __metadata: languageName: node linkType: hard +"@aws-crypto/crc32@npm:2.0.0": + version: 2.0.0 + resolution: "@aws-crypto/crc32@npm:2.0.0" + dependencies: + "@aws-crypto/util": ^2.0.0 + "@aws-sdk/types": ^3.1.0 + tslib: ^1.11.1 + checksum: 88ab906da8304a430c655496e363835f3c7ca870db0dec50bb9d53ed0f446337de60c85ba7baa4528c8363bee708474785649262ebfde23a1e099eb69318b53e + languageName: node + linkType: hard + +"@aws-crypto/crc32c@npm:2.0.0": + version: 2.0.0 + resolution: "@aws-crypto/crc32c@npm:2.0.0" + dependencies: + "@aws-crypto/util": ^2.0.0 + "@aws-sdk/types": ^3.1.0 + tslib: ^1.11.1 + checksum: 776e1e61b3bde018b815d3973774a4ec3cd88c282046e49bb5a2625ac7db923068aad708a8e4c21b62a80e50a5c58324a32621b9ba82b7b2ecab66370c4fe893 + languageName: node + linkType: hard + +"@aws-crypto/ie11-detection@npm:^2.0.0": + version: 2.0.2 + resolution: "@aws-crypto/ie11-detection@npm:2.0.2" + dependencies: + tslib: ^1.11.1 + checksum: 713293deea8eefd3ab43dc05e62228571d27754e7293f8ec2fd8a0c693fbbfc55213e6599387776e3cdbc951965dc62e24e92b9c4a853e4a50d00ae6a9f6b2bd + languageName: node + linkType: hard + +"@aws-crypto/sha1-browser@npm:2.0.0": + version: 2.0.0 + resolution: "@aws-crypto/sha1-browser@npm:2.0.0" + dependencies: + "@aws-crypto/ie11-detection": ^2.0.0 + "@aws-crypto/supports-web-crypto": ^2.0.0 + "@aws-sdk/types": ^3.1.0 + "@aws-sdk/util-locate-window": ^3.0.0 + "@aws-sdk/util-utf8-browser": ^3.0.0 + tslib: ^1.11.1 + checksum: 72c0b24800cd79328fef934553e7a5d5929c90877d7e9a661614542dd29d0d99ee1594bd59fc028ee9ec595d77df56645a396c6336cff3c7784a564302d4a254 + languageName: node + linkType: hard + +"@aws-crypto/sha256-browser@npm:2.0.0": + version: 2.0.0 + resolution: "@aws-crypto/sha256-browser@npm:2.0.0" + dependencies: + "@aws-crypto/ie11-detection": ^2.0.0 + "@aws-crypto/sha256-js": ^2.0.0 + "@aws-crypto/supports-web-crypto": ^2.0.0 + "@aws-crypto/util": ^2.0.0 + "@aws-sdk/types": ^3.1.0 + "@aws-sdk/util-locate-window": ^3.0.0 + "@aws-sdk/util-utf8-browser": ^3.0.0 + tslib: ^1.11.1 + checksum: 7bc1ff042d0c53a46c0fc3824bd97fb3ed1df7dc030b8a995889471052860b8c8ade469c97866fafd8249a3144d0f48b0f1054f357e2b403606009381c4b8f0e + languageName: node + linkType: hard + +"@aws-crypto/sha256-js@npm:2.0.0": + version: 2.0.0 + resolution: "@aws-crypto/sha256-js@npm:2.0.0" + dependencies: + "@aws-crypto/util": ^2.0.0 + "@aws-sdk/types": ^3.1.0 + tslib: ^1.11.1 + checksum: e4abf9baec6bed19d380f92a999a41ac5bdd8890dfd45971d29054c298854c5b7087e7de633413f2e64618ef8238ccf4c0b75797c73063c74bbba3cb5d8b2581 + languageName: node + linkType: hard + +"@aws-crypto/sha256-js@npm:^2.0.0": + version: 2.0.2 + resolution: "@aws-crypto/sha256-js@npm:2.0.2" + dependencies: + "@aws-crypto/util": ^2.0.2 + "@aws-sdk/types": ^3.110.0 + tslib: ^1.11.1 + checksum: 9125ec65a2b05fce908ac2289ba97b995a299f2d717684804211df8e8bcffd8cd9b8861582240655b88f2255c46fcee34026f75c057ffb22f44b6a76cd43f65a + languageName: node + linkType: hard + +"@aws-crypto/supports-web-crypto@npm:^2.0.0": + version: 2.0.2 + resolution: "@aws-crypto/supports-web-crypto@npm:2.0.2" + dependencies: + tslib: ^1.11.1 + checksum: 03d04d29292dc1b76db9bc6becd05f52fa79adee0ec084f971b0767f7e73250dd0422bea57636015f8c27f38aefcd1d9c58800a4749cf35339296c8d670f3ccb + languageName: node + linkType: hard + +"@aws-crypto/util@npm:^2.0.0, @aws-crypto/util@npm:^2.0.2": + version: 2.0.2 + resolution: "@aws-crypto/util@npm:2.0.2" + dependencies: + "@aws-sdk/types": ^3.110.0 + "@aws-sdk/util-utf8-browser": ^3.0.0 + tslib: ^1.11.1 + checksum: 13cb33a39005b09c062398d361043c2224bc8ba42b1432bad52e15bc4bf9ffad4facdddc394b3cc71b3fb8d86a7ec325fd1afa107b5fde0dab84a7e32d311d7f + languageName: node + linkType: hard + +"@aws-sdk/abort-controller@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/abort-controller@npm:3.226.0" + dependencies: + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: 44045b60c7697ed76bcbfbe3f7f4bb019f139d2337e77d8ce79d98bca17c1245e2d33934bba04fe8e2d462b729124ba4414a589ed9275c07f2bfefd3a0850184 + languageName: node + linkType: hard + +"@aws-sdk/chunked-blob-reader-native@npm:3.208.0": + version: 3.208.0 + resolution: "@aws-sdk/chunked-blob-reader-native@npm:3.208.0" + dependencies: + "@aws-sdk/util-base64": 3.208.0 + tslib: ^2.3.1 + checksum: 6df294c66d6acaa3de2c5f3444a62577d0effa451a65b6a1606df538cfc865d257f01c74e711b36741a2c59f43385bd393c07c8562fe5101d6069b8c2646da53 + languageName: node + linkType: hard + +"@aws-sdk/chunked-blob-reader@npm:3.188.0": + version: 3.188.0 + resolution: "@aws-sdk/chunked-blob-reader@npm:3.188.0" + dependencies: + tslib: ^2.3.1 + checksum: d6becebc6d77a63dd84601806c5f04bc9d0e418368fb2d593d786738119091e4d2e40721751be66260063fe7bb1c7ee2a5e075fa731eb8307722b90f6ce809dc + languageName: node + linkType: hard + +"@aws-sdk/client-s3@npm:^3.238.0": + version: 3.238.0 + resolution: "@aws-sdk/client-s3@npm:3.238.0" + dependencies: + "@aws-crypto/sha1-browser": 2.0.0 + "@aws-crypto/sha256-browser": 2.0.0 + "@aws-crypto/sha256-js": 2.0.0 + "@aws-sdk/client-sts": 3.238.0 + "@aws-sdk/config-resolver": 3.234.0 + "@aws-sdk/credential-provider-node": 3.238.0 + "@aws-sdk/eventstream-serde-browser": 3.226.0 + "@aws-sdk/eventstream-serde-config-resolver": 3.226.0 + "@aws-sdk/eventstream-serde-node": 3.226.0 + "@aws-sdk/fetch-http-handler": 3.226.0 + "@aws-sdk/hash-blob-browser": 3.226.0 + "@aws-sdk/hash-node": 3.226.0 + "@aws-sdk/hash-stream-node": 3.226.0 + "@aws-sdk/invalid-dependency": 3.226.0 + "@aws-sdk/md5-js": 3.226.0 + "@aws-sdk/middleware-bucket-endpoint": 3.226.0 + "@aws-sdk/middleware-content-length": 3.226.0 + "@aws-sdk/middleware-endpoint": 3.226.0 + "@aws-sdk/middleware-expect-continue": 3.226.0 + "@aws-sdk/middleware-flexible-checksums": 3.226.0 + "@aws-sdk/middleware-host-header": 3.226.0 + "@aws-sdk/middleware-location-constraint": 3.226.0 + "@aws-sdk/middleware-logger": 3.226.0 + "@aws-sdk/middleware-recursion-detection": 3.226.0 + "@aws-sdk/middleware-retry": 3.235.0 + "@aws-sdk/middleware-sdk-s3": 3.231.0 + "@aws-sdk/middleware-serde": 3.226.0 + "@aws-sdk/middleware-signing": 3.226.0 + "@aws-sdk/middleware-ssec": 3.226.0 + "@aws-sdk/middleware-stack": 3.226.0 + "@aws-sdk/middleware-user-agent": 3.226.0 + "@aws-sdk/node-config-provider": 3.226.0 + "@aws-sdk/node-http-handler": 3.226.0 + "@aws-sdk/protocol-http": 3.226.0 + "@aws-sdk/signature-v4-multi-region": 3.226.0 + "@aws-sdk/smithy-client": 3.234.0 + "@aws-sdk/types": 3.226.0 + "@aws-sdk/url-parser": 3.226.0 + "@aws-sdk/util-base64": 3.208.0 + "@aws-sdk/util-body-length-browser": 3.188.0 + "@aws-sdk/util-body-length-node": 3.208.0 + "@aws-sdk/util-defaults-mode-browser": 3.234.0 + "@aws-sdk/util-defaults-mode-node": 3.234.0 + "@aws-sdk/util-endpoints": 3.226.0 + "@aws-sdk/util-retry": 3.229.0 + "@aws-sdk/util-stream-browser": 3.226.0 + "@aws-sdk/util-stream-node": 3.226.0 + "@aws-sdk/util-user-agent-browser": 3.226.0 + "@aws-sdk/util-user-agent-node": 3.226.0 + "@aws-sdk/util-utf8-browser": 3.188.0 + "@aws-sdk/util-utf8-node": 3.208.0 + "@aws-sdk/util-waiter": 3.226.0 + "@aws-sdk/xml-builder": 3.201.0 + fast-xml-parser: 4.0.11 + tslib: ^2.3.1 + checksum: f066ad581bdbcd9595ff9226c81b59876b833d6e07dc755b6f70ec0c2c5eab909c9d009ec8faa45a60d650d553ca965f271d244d870f4a938751e65e6d521d6e + languageName: node + linkType: hard + +"@aws-sdk/client-sso-oidc@npm:3.238.0": + version: 3.238.0 + resolution: "@aws-sdk/client-sso-oidc@npm:3.238.0" + dependencies: + "@aws-crypto/sha256-browser": 2.0.0 + "@aws-crypto/sha256-js": 2.0.0 + "@aws-sdk/config-resolver": 3.234.0 + "@aws-sdk/fetch-http-handler": 3.226.0 + "@aws-sdk/hash-node": 3.226.0 + "@aws-sdk/invalid-dependency": 3.226.0 + "@aws-sdk/middleware-content-length": 3.226.0 + "@aws-sdk/middleware-endpoint": 3.226.0 + "@aws-sdk/middleware-host-header": 3.226.0 + "@aws-sdk/middleware-logger": 3.226.0 + "@aws-sdk/middleware-recursion-detection": 3.226.0 + "@aws-sdk/middleware-retry": 3.235.0 + "@aws-sdk/middleware-serde": 3.226.0 + "@aws-sdk/middleware-stack": 3.226.0 + "@aws-sdk/middleware-user-agent": 3.226.0 + "@aws-sdk/node-config-provider": 3.226.0 + "@aws-sdk/node-http-handler": 3.226.0 + "@aws-sdk/protocol-http": 3.226.0 + "@aws-sdk/smithy-client": 3.234.0 + "@aws-sdk/types": 3.226.0 + "@aws-sdk/url-parser": 3.226.0 + "@aws-sdk/util-base64": 3.208.0 + "@aws-sdk/util-body-length-browser": 3.188.0 + "@aws-sdk/util-body-length-node": 3.208.0 + "@aws-sdk/util-defaults-mode-browser": 3.234.0 + "@aws-sdk/util-defaults-mode-node": 3.234.0 + "@aws-sdk/util-endpoints": 3.226.0 + "@aws-sdk/util-retry": 3.229.0 + "@aws-sdk/util-user-agent-browser": 3.226.0 + "@aws-sdk/util-user-agent-node": 3.226.0 + "@aws-sdk/util-utf8-browser": 3.188.0 + "@aws-sdk/util-utf8-node": 3.208.0 + tslib: ^2.3.1 + checksum: b2f0df1168d2e20ccf1d598b76be4141b6a27068ad9dea74570aa3ab8c94c103537463c58d8296e76d2457f5afb5253cbf2b1f665411981f5939c85667dd1aff + languageName: node + linkType: hard + +"@aws-sdk/client-sso@npm:3.238.0": + version: 3.238.0 + resolution: "@aws-sdk/client-sso@npm:3.238.0" + dependencies: + "@aws-crypto/sha256-browser": 2.0.0 + "@aws-crypto/sha256-js": 2.0.0 + "@aws-sdk/config-resolver": 3.234.0 + "@aws-sdk/fetch-http-handler": 3.226.0 + "@aws-sdk/hash-node": 3.226.0 + "@aws-sdk/invalid-dependency": 3.226.0 + "@aws-sdk/middleware-content-length": 3.226.0 + "@aws-sdk/middleware-endpoint": 3.226.0 + "@aws-sdk/middleware-host-header": 3.226.0 + "@aws-sdk/middleware-logger": 3.226.0 + "@aws-sdk/middleware-recursion-detection": 3.226.0 + "@aws-sdk/middleware-retry": 3.235.0 + "@aws-sdk/middleware-serde": 3.226.0 + "@aws-sdk/middleware-stack": 3.226.0 + "@aws-sdk/middleware-user-agent": 3.226.0 + "@aws-sdk/node-config-provider": 3.226.0 + "@aws-sdk/node-http-handler": 3.226.0 + "@aws-sdk/protocol-http": 3.226.0 + "@aws-sdk/smithy-client": 3.234.0 + "@aws-sdk/types": 3.226.0 + "@aws-sdk/url-parser": 3.226.0 + "@aws-sdk/util-base64": 3.208.0 + "@aws-sdk/util-body-length-browser": 3.188.0 + "@aws-sdk/util-body-length-node": 3.208.0 + "@aws-sdk/util-defaults-mode-browser": 3.234.0 + "@aws-sdk/util-defaults-mode-node": 3.234.0 + "@aws-sdk/util-endpoints": 3.226.0 + "@aws-sdk/util-retry": 3.229.0 + "@aws-sdk/util-user-agent-browser": 3.226.0 + "@aws-sdk/util-user-agent-node": 3.226.0 + "@aws-sdk/util-utf8-browser": 3.188.0 + "@aws-sdk/util-utf8-node": 3.208.0 + tslib: ^2.3.1 + checksum: dbd993e569a3858fd80222cd61e5df5813b3ef6579cfd393925679f71af57f3d9277f470d868f93dbda2f797a8e0be7da9f0678ee80a97103ea2612e2e1ef793 + languageName: node + linkType: hard + +"@aws-sdk/client-sts@npm:3.238.0": + version: 3.238.0 + resolution: "@aws-sdk/client-sts@npm:3.238.0" + dependencies: + "@aws-crypto/sha256-browser": 2.0.0 + "@aws-crypto/sha256-js": 2.0.0 + "@aws-sdk/config-resolver": 3.234.0 + "@aws-sdk/credential-provider-node": 3.238.0 + "@aws-sdk/fetch-http-handler": 3.226.0 + "@aws-sdk/hash-node": 3.226.0 + "@aws-sdk/invalid-dependency": 3.226.0 + "@aws-sdk/middleware-content-length": 3.226.0 + "@aws-sdk/middleware-endpoint": 3.226.0 + "@aws-sdk/middleware-host-header": 3.226.0 + "@aws-sdk/middleware-logger": 3.226.0 + "@aws-sdk/middleware-recursion-detection": 3.226.0 + "@aws-sdk/middleware-retry": 3.235.0 + "@aws-sdk/middleware-sdk-sts": 3.226.0 + "@aws-sdk/middleware-serde": 3.226.0 + "@aws-sdk/middleware-signing": 3.226.0 + "@aws-sdk/middleware-stack": 3.226.0 + "@aws-sdk/middleware-user-agent": 3.226.0 + "@aws-sdk/node-config-provider": 3.226.0 + "@aws-sdk/node-http-handler": 3.226.0 + "@aws-sdk/protocol-http": 3.226.0 + "@aws-sdk/smithy-client": 3.234.0 + "@aws-sdk/types": 3.226.0 + "@aws-sdk/url-parser": 3.226.0 + "@aws-sdk/util-base64": 3.208.0 + "@aws-sdk/util-body-length-browser": 3.188.0 + "@aws-sdk/util-body-length-node": 3.208.0 + "@aws-sdk/util-defaults-mode-browser": 3.234.0 + "@aws-sdk/util-defaults-mode-node": 3.234.0 + "@aws-sdk/util-endpoints": 3.226.0 + "@aws-sdk/util-retry": 3.229.0 + "@aws-sdk/util-user-agent-browser": 3.226.0 + "@aws-sdk/util-user-agent-node": 3.226.0 + "@aws-sdk/util-utf8-browser": 3.188.0 + "@aws-sdk/util-utf8-node": 3.208.0 + fast-xml-parser: 4.0.11 + tslib: ^2.3.1 + checksum: 323677f17a1cfec54022a7af941db636ed9201d0a188b10e367663c422d931508728705633d01943d8bd0439edc20b39b619a8dd87d2ee55f3ca2df923e4c0dc + languageName: node + linkType: hard + +"@aws-sdk/config-resolver@npm:3.234.0": + version: 3.234.0 + resolution: "@aws-sdk/config-resolver@npm:3.234.0" + dependencies: + "@aws-sdk/signature-v4": 3.226.0 + "@aws-sdk/types": 3.226.0 + "@aws-sdk/util-config-provider": 3.208.0 + "@aws-sdk/util-middleware": 3.226.0 + tslib: ^2.3.1 + checksum: a72bdb1748d7f04c95436ab1e8650b51c1bfd2745114e52f7d05339c61bb6a859306be0c6cc0034ecf4f3b29a2d68b48fe362762a58c90ec55a3444b93b5700d + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-env@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/credential-provider-env@npm:3.226.0" + dependencies: + "@aws-sdk/property-provider": 3.226.0 + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: 4f764d8d07ba1f65503ed2440ebfbccf98c141b11a087a582ea606d06bc764c91641b4ec505ab0d4750025a01128b041d9514a3ec868c385f038b5373b513293 + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-imds@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/credential-provider-imds@npm:3.226.0" + dependencies: + "@aws-sdk/node-config-provider": 3.226.0 + "@aws-sdk/property-provider": 3.226.0 + "@aws-sdk/types": 3.226.0 + "@aws-sdk/url-parser": 3.226.0 + tslib: ^2.3.1 + checksum: c0480ca127e6715ebf98ff41a8ea47d139166b8632582782df46fc9e568ff579cfc0768af80082ae6eea3eb6750edb41c4a4c39281b777c578fdb7f8ef8b641c + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-ini@npm:3.238.0": + version: 3.238.0 + resolution: "@aws-sdk/credential-provider-ini@npm:3.238.0" + dependencies: + "@aws-sdk/credential-provider-env": 3.226.0 + "@aws-sdk/credential-provider-imds": 3.226.0 + "@aws-sdk/credential-provider-process": 3.226.0 + "@aws-sdk/credential-provider-sso": 3.238.0 + "@aws-sdk/credential-provider-web-identity": 3.226.0 + "@aws-sdk/property-provider": 3.226.0 + "@aws-sdk/shared-ini-file-loader": 3.226.0 + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: bf792096935a915ff1bf26c53408d7265d2dd5cb2093d5b51862cf21a1418801454362842cd7c59a8738af1bb12713afb354e55d3057e92f30f2caa327ff3eb9 + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-node@npm:3.238.0": + version: 3.238.0 + resolution: "@aws-sdk/credential-provider-node@npm:3.238.0" + dependencies: + "@aws-sdk/credential-provider-env": 3.226.0 + "@aws-sdk/credential-provider-imds": 3.226.0 + "@aws-sdk/credential-provider-ini": 3.238.0 + "@aws-sdk/credential-provider-process": 3.226.0 + "@aws-sdk/credential-provider-sso": 3.238.0 + "@aws-sdk/credential-provider-web-identity": 3.226.0 + "@aws-sdk/property-provider": 3.226.0 + "@aws-sdk/shared-ini-file-loader": 3.226.0 + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: 7d9e56dd53db5ef1d5600502a407a81500b0dde6c2c6164c88f88dffb20a24b9e256ebd329b2afb3992fa16514173bb8509ab410d651b0e6fb6f4cb713e22d11 + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-process@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/credential-provider-process@npm:3.226.0" + dependencies: + "@aws-sdk/property-provider": 3.226.0 + "@aws-sdk/shared-ini-file-loader": 3.226.0 + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: 3ad24e2784ae7929f8932a187e0a5a06fc62d31ccb393fd2d9fa86d75c1109809c96b69edb17c3d7bd7d087b97662818d5320742a4cd70add06999a3b2ec3a53 + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-sso@npm:3.238.0": + version: 3.238.0 + resolution: "@aws-sdk/credential-provider-sso@npm:3.238.0" + dependencies: + "@aws-sdk/client-sso": 3.238.0 + "@aws-sdk/property-provider": 3.226.0 + "@aws-sdk/shared-ini-file-loader": 3.226.0 + "@aws-sdk/token-providers": 3.238.0 + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: 4ac0451f85eb34eba78f4462daace270f0ff3d0d536a5093621923fc4391e9196cb500ffa382b5e4730f9562f005fb01d3cc2364dcfc9e04ce5e9715a151ce96 + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-web-identity@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/credential-provider-web-identity@npm:3.226.0" + dependencies: + "@aws-sdk/property-provider": 3.226.0 + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: f536d9af3d900eee31b6e7966ff827713fd5f661ae477f0911eebdac3e544eb5a732df0be0c9162058943e0aeb89333c97a1758236e8f9760c5e87280fd926fa + languageName: node + linkType: hard + +"@aws-sdk/eventstream-codec@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/eventstream-codec@npm:3.226.0" + dependencies: + "@aws-crypto/crc32": 2.0.0 + "@aws-sdk/types": 3.226.0 + "@aws-sdk/util-hex-encoding": 3.201.0 + tslib: ^2.3.1 + checksum: 3b3a584c02bcf6cfe35e2ed562e8d82844a51c1efd2f9d79a72ecf60ba9a63a51c568c8b5a49cdfb6c49fe655be0454c082098285378c66494109dbf7b5bb28f + languageName: node + linkType: hard + +"@aws-sdk/eventstream-serde-browser@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/eventstream-serde-browser@npm:3.226.0" + dependencies: + "@aws-sdk/eventstream-serde-universal": 3.226.0 + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: 12530898d3debe33fbc73c6b68c7a889e4c3e29c183180d9d012e9b3761af1fd58feaa9a6e8069ccf380442c7d71ad6f36d5f0af078ae6d29af944ca6f4a9610 + languageName: node + linkType: hard + +"@aws-sdk/eventstream-serde-config-resolver@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/eventstream-serde-config-resolver@npm:3.226.0" + dependencies: + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: 2438bfd3bf00e401caa79c2b874be6ecfac24db74f3ec9e1064a3d5c09a7cfe0fa9c0086e30ee3bc8853f550efc6c6ecb2936caafd238478870a803863fbea23 + languageName: node + linkType: hard + +"@aws-sdk/eventstream-serde-node@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/eventstream-serde-node@npm:3.226.0" + dependencies: + "@aws-sdk/eventstream-serde-universal": 3.226.0 + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: 89c2154fb4bb544f87e5fdda37cc99f724125892417d78763a98a0a4390b2ba89e8a57521a57b213827688ce8d8bc14971ae87f1137cc26d9f3ebbae142d5a96 + languageName: node + linkType: hard + +"@aws-sdk/eventstream-serde-universal@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/eventstream-serde-universal@npm:3.226.0" + dependencies: + "@aws-sdk/eventstream-codec": 3.226.0 + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: da1eea2d8b0f6972a5016ca66b2a8da0e2e72b8449a661c8cf4678894e22bcef20d5c1534c5c5a22b4c7d1d242bf894b7220c8d712123e092efa8c5fa8aca02f + languageName: node + linkType: hard + +"@aws-sdk/fetch-http-handler@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/fetch-http-handler@npm:3.226.0" + dependencies: + "@aws-sdk/protocol-http": 3.226.0 + "@aws-sdk/querystring-builder": 3.226.0 + "@aws-sdk/types": 3.226.0 + "@aws-sdk/util-base64": 3.208.0 + tslib: ^2.3.1 + checksum: f12ed12088aee05e4c6a742356017f55f26fec740c12c4d89c4eb283203171d032d99c9fa45fb28cc7798b35410cc55736df1c78d8eea014667e489f1b276f3a + languageName: node + linkType: hard + +"@aws-sdk/hash-blob-browser@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/hash-blob-browser@npm:3.226.0" + dependencies: + "@aws-sdk/chunked-blob-reader": 3.188.0 + "@aws-sdk/chunked-blob-reader-native": 3.208.0 + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: 98fecc0646a37bfb541a2e8bd1da27f0b208f9d51e6efc0e2e9e833cb1872a4205c5b47568582805a3e98240f3fe2f16a5aaee6693d1e1589fd6918afce554b0 + languageName: node + linkType: hard + +"@aws-sdk/hash-node@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/hash-node@npm:3.226.0" + dependencies: + "@aws-sdk/types": 3.226.0 + "@aws-sdk/util-buffer-from": 3.208.0 + tslib: ^2.3.1 + checksum: cbe466e2e3efdbb3aefe7772da734f6d00e0d1572c60e497b09460e055093b155c5e94bd3718135238bc05e58cb49abcdcd0fe5e34458bd3563b89d3d4a42251 + languageName: node + linkType: hard + +"@aws-sdk/hash-stream-node@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/hash-stream-node@npm:3.226.0" + dependencies: + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: a6acb592e815fa48b39e7917599405ebf77c8c03e42ef039eea8886e0bda98c4d8a963506b137514787dca65cf4594cf756d49adcc67b0777b71f2ce7c4cd0da + languageName: node + linkType: hard + +"@aws-sdk/invalid-dependency@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/invalid-dependency@npm:3.226.0" + dependencies: + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: 4a6168b50675881442c9bc87e8f27e8317ece9251fbfd3d812d32edcd83f687328e6de518fa9f11b1bc984ad3a3454cd43b59c0362f04c03687ce5250ac5d720 + languageName: node + linkType: hard + +"@aws-sdk/is-array-buffer@npm:3.201.0": + version: 3.201.0 + resolution: "@aws-sdk/is-array-buffer@npm:3.201.0" + dependencies: + tslib: ^2.3.1 + checksum: 295450b417a9ab0b734050afff6c53aaed8a33dccd3ede60bf67fdec21f675d14ab8edc24f4e1d12aa4e99f9ccaf794aaaaff270c296c1ee38f73ea7ba7f59ce + languageName: node + linkType: hard + +"@aws-sdk/md5-js@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/md5-js@npm:3.226.0" + dependencies: + "@aws-sdk/types": 3.226.0 + "@aws-sdk/util-utf8-browser": 3.188.0 + "@aws-sdk/util-utf8-node": 3.208.0 + tslib: ^2.3.1 + checksum: 7d2dc4fefaf3136bf30e22f4645588624c8e2696b638357676f18df3ea1c11a7fd8dddc5b50cae739383590b2d3e10be02fd033c764c57c882b5a2230edb2d6f + languageName: node + linkType: hard + +"@aws-sdk/middleware-bucket-endpoint@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/middleware-bucket-endpoint@npm:3.226.0" + dependencies: + "@aws-sdk/protocol-http": 3.226.0 + "@aws-sdk/types": 3.226.0 + "@aws-sdk/util-arn-parser": 3.208.0 + "@aws-sdk/util-config-provider": 3.208.0 + tslib: ^2.3.1 + checksum: bb5e4a8bd79d578c103d216274a8175c42cea06c138338fa0854a30b8eab0c6a14d5996814f2ac9dcc82e1f137a240e657bb1e8841b52d8ade5c275771c43ca5 + languageName: node + linkType: hard + +"@aws-sdk/middleware-content-length@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/middleware-content-length@npm:3.226.0" + dependencies: + "@aws-sdk/protocol-http": 3.226.0 + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: 538b0222e2c8be61dc3090dfefe4b9ec1f0cbee155125edf5b654dbe36ab0b2d6befe3da6008194dc26bbf94d53b7e01edca683720061c4b43c6beb9dc278002 + languageName: node + linkType: hard + +"@aws-sdk/middleware-endpoint@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/middleware-endpoint@npm:3.226.0" + dependencies: + "@aws-sdk/middleware-serde": 3.226.0 + "@aws-sdk/protocol-http": 3.226.0 + "@aws-sdk/signature-v4": 3.226.0 + "@aws-sdk/types": 3.226.0 + "@aws-sdk/url-parser": 3.226.0 + "@aws-sdk/util-config-provider": 3.208.0 + "@aws-sdk/util-middleware": 3.226.0 + tslib: ^2.3.1 + checksum: 22df6fd90e3b7d3edd58f427ebfbb229181ef190b2d795e0b400f70f95a573dc59666a08b26613db6bb1b764b13ba7ddec15fced2641e9678fad5500fca289be + languageName: node + linkType: hard + +"@aws-sdk/middleware-expect-continue@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/middleware-expect-continue@npm:3.226.0" + dependencies: + "@aws-sdk/protocol-http": 3.226.0 + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: 22924f008a7594cedde2c1f09b9b8ce005cf73bfcbf40330a2b783e42dffcd1fc88fd3a7b2b13da1ec4895c649f7605acea7b62dbbd3a45b00630b1cb9579bc4 + languageName: node + linkType: hard + +"@aws-sdk/middleware-flexible-checksums@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/middleware-flexible-checksums@npm:3.226.0" + dependencies: + "@aws-crypto/crc32": 2.0.0 + "@aws-crypto/crc32c": 2.0.0 + "@aws-sdk/is-array-buffer": 3.201.0 + "@aws-sdk/protocol-http": 3.226.0 + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: c4f0531b3c917a0bfaf3b877f7f15de30f5e7e0a8366206c680efe4d0f60a0e54d7861ee14d213f713e157f164283d51724288b16fba67fef39d628324fef588 + languageName: node + linkType: hard + +"@aws-sdk/middleware-host-header@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/middleware-host-header@npm:3.226.0" + dependencies: + "@aws-sdk/protocol-http": 3.226.0 + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: 35eb7d9f5eb2e45c58bb5887a12dc80f22e8fc630d53d356064c62ce3354c9054717697168ab3818f14c7baae3246480aa7251e6fcaf5c7104498df5dca9bbd6 + languageName: node + linkType: hard + +"@aws-sdk/middleware-location-constraint@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/middleware-location-constraint@npm:3.226.0" + dependencies: + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: 31db89d8935771aa73552fd99bc3a8fb3cca25c4e5bf978e96d05fd3aa8ab8403774ddeee08f83a4c9e5b4630082001e5d13aec1924353257fa87184dffba3e1 + languageName: node + linkType: hard + +"@aws-sdk/middleware-logger@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/middleware-logger@npm:3.226.0" + dependencies: + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: 7b7c2eb336f376f6e8c50ebd0fd9b6e9a749e21d6f5c433683a4e98edb311bb76fafc0bb0abfd75f61001466879be7d68aefb3958a332e540160a93ee9371b44 + languageName: node + linkType: hard + +"@aws-sdk/middleware-recursion-detection@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/middleware-recursion-detection@npm:3.226.0" + dependencies: + "@aws-sdk/protocol-http": 3.226.0 + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: 194161d76a815df623c6699f7a7016268b4a01276baa3527682504001a4e2e948e2dd389d2065f62fe57509f20b9680ea907bfa52b861122335d276c9ab4ed61 + languageName: node + linkType: hard + +"@aws-sdk/middleware-retry@npm:3.235.0": + version: 3.235.0 + resolution: "@aws-sdk/middleware-retry@npm:3.235.0" + dependencies: + "@aws-sdk/protocol-http": 3.226.0 + "@aws-sdk/service-error-classification": 3.229.0 + "@aws-sdk/types": 3.226.0 + "@aws-sdk/util-middleware": 3.226.0 + "@aws-sdk/util-retry": 3.229.0 + tslib: ^2.3.1 + uuid: ^8.3.2 + checksum: 397226fd10d8b0587a35ccab92160223f10740beb01ccac75dda0e30336b83c091c9aa51b9132a56ff6cccd6353b9e3c6ecf21ae18f20f8127e7e9e209e59a2a + languageName: node + linkType: hard + +"@aws-sdk/middleware-sdk-s3@npm:3.231.0": + version: 3.231.0 + resolution: "@aws-sdk/middleware-sdk-s3@npm:3.231.0" + dependencies: + "@aws-sdk/protocol-http": 3.226.0 + "@aws-sdk/types": 3.226.0 + "@aws-sdk/util-arn-parser": 3.208.0 + tslib: ^2.3.1 + checksum: d60f189d7fb4bcbbd002999f537c49f22c1e2a3e5969702a8840f17d0314f6e9eb586681995bb2b6634ae5162bebf44a3ccfecf23fdfc3c9fa6797f9adc83423 + languageName: node + linkType: hard + +"@aws-sdk/middleware-sdk-sts@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/middleware-sdk-sts@npm:3.226.0" + dependencies: + "@aws-sdk/middleware-signing": 3.226.0 + "@aws-sdk/property-provider": 3.226.0 + "@aws-sdk/protocol-http": 3.226.0 + "@aws-sdk/signature-v4": 3.226.0 + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: 0b6e11889c9f1b5264eb38288dea5bd2987fa28338651939d005eaa0524f9cd41c570c545b34b08d25d858397b3f14a2b6a21238a8c88fc08719ed50b835cb15 + languageName: node + linkType: hard + +"@aws-sdk/middleware-serde@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/middleware-serde@npm:3.226.0" + dependencies: + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: e8315079cc3ed4527d1434eb28becfaf951338d2ced21116753b52d3330eabbfd13f24382b3378bcc2c09ee0653a65e0d8353e9e32f512b69929908272b83fa2 + languageName: node + linkType: hard + +"@aws-sdk/middleware-signing@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/middleware-signing@npm:3.226.0" + dependencies: + "@aws-sdk/property-provider": 3.226.0 + "@aws-sdk/protocol-http": 3.226.0 + "@aws-sdk/signature-v4": 3.226.0 + "@aws-sdk/types": 3.226.0 + "@aws-sdk/util-middleware": 3.226.0 + tslib: ^2.3.1 + checksum: 4f66483d359e21d1f7e56a1900f7271a561801e1ee4380deaa006ce750ce73245a5fe554d4c1ab60cf9ca127c41f35c53c0817c375df6f8f068c9ed7f9572444 + languageName: node + linkType: hard + +"@aws-sdk/middleware-ssec@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/middleware-ssec@npm:3.226.0" + dependencies: + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: b85bf0e8be723a28a03dd7375284a5afc00edb04bf333a44286042768391243670b61b78361883d7c7890b118e0dc995219d7870227f845ac868a756e8a76a70 + languageName: node + linkType: hard + +"@aws-sdk/middleware-stack@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/middleware-stack@npm:3.226.0" + dependencies: + tslib: ^2.3.1 + checksum: fd284bc28ee6ee576e3fe9dd3c2c9d64b8c95fa1bb213b5e41e23a57bbc2693652ee51028414eb278918235e591ef729db572b160bff963c6f74e7d6c15d33d0 + languageName: node + linkType: hard + +"@aws-sdk/middleware-user-agent@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/middleware-user-agent@npm:3.226.0" + dependencies: + "@aws-sdk/protocol-http": 3.226.0 + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: 8d3724aecd7b7f9f1a5b081263cb85864c969144105819f371a9675ee4f680c11e3b5ecbe181f57d2bfdde9c98b90267bd4afe0fc0822863041e0df52671f043 + languageName: node + linkType: hard + +"@aws-sdk/node-config-provider@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/node-config-provider@npm:3.226.0" + dependencies: + "@aws-sdk/property-provider": 3.226.0 + "@aws-sdk/shared-ini-file-loader": 3.226.0 + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: 0e7c4c7ea20c5361c71f1ab0b99c19964f76c187659714cd6e87e1cc264d0ab29965d33618d9d47d373e3b108558cd6628fb36a00cdac614849e5044c6776213 + languageName: node + linkType: hard + +"@aws-sdk/node-http-handler@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/node-http-handler@npm:3.226.0" + dependencies: + "@aws-sdk/abort-controller": 3.226.0 + "@aws-sdk/protocol-http": 3.226.0 + "@aws-sdk/querystring-builder": 3.226.0 + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: e4080ec9f859be4b191416084fef8d2687f24d973169b8fef592a867c23c14fad74f4bea20f451b98fedfee6a265f2c89b0bee4fe7aabdb1fd05a7475bf12b91 + languageName: node + linkType: hard + +"@aws-sdk/property-provider@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/property-provider@npm:3.226.0" + dependencies: + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: d63c53313bb2797ab2ecfa2cff827b63417c0cc31abe8c666cd018a1d70da877b61ef1fb21e504d6408e72b20544756089938b44869b003ba3c313b39bca6d45 + languageName: node + linkType: hard + +"@aws-sdk/protocol-http@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/protocol-http@npm:3.226.0" + dependencies: + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: 92cf35e1026a812c6c7ce8309fd685162ab7796237fc063e71dd9b292abf25902d6c0e02e93219101e1f506ef68a98f02eed6a61b18b8acd450ecb4bf8c1b467 + languageName: node + linkType: hard + +"@aws-sdk/querystring-builder@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/querystring-builder@npm:3.226.0" + dependencies: + "@aws-sdk/types": 3.226.0 + "@aws-sdk/util-uri-escape": 3.201.0 + tslib: ^2.3.1 + checksum: 0014b8876d402787c56f606f66e79eb48ff100b01d7a657bb0766a7723ca184da0dd2aed405837e7e6c5781fd868d7a903eef25884b2d1881d30e2454f5c2bfc + languageName: node + linkType: hard + +"@aws-sdk/querystring-parser@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/querystring-parser@npm:3.226.0" + dependencies: + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: 13b23b4dff859d778a05f6874e318d95d6fbd79c62a06bb6f6dff8496ac2eaf86f60b17460c3595af854c2e316482c9fcc098655d475926039f7dff4a6f1ecf1 + languageName: node + linkType: hard + +"@aws-sdk/service-error-classification@npm:3.229.0": + version: 3.229.0 + resolution: "@aws-sdk/service-error-classification@npm:3.229.0" + checksum: 7877963d62f4d43ce5116f0ddfd1b27cffab2b0e74a4ceb4006b1f85b17dd50eb9ae2f227cabf935261e42b7615d0a9de190dd684380c30e03dee6e9f7e12587 + languageName: node + linkType: hard + +"@aws-sdk/shared-ini-file-loader@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/shared-ini-file-loader@npm:3.226.0" + dependencies: + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: 7b43e4d70f33b1098c9582a20dd5cf11c0e2efe5e7f4f854ee1fdfe2f804a7171deeb76f167c46ef7365bb584e29c816d58b6d8f6c9ac9debb124cccf59ebf59 + languageName: node + linkType: hard + +"@aws-sdk/signature-v4-multi-region@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/signature-v4-multi-region@npm:3.226.0" + dependencies: + "@aws-sdk/protocol-http": 3.226.0 + "@aws-sdk/signature-v4": 3.226.0 + "@aws-sdk/types": 3.226.0 + "@aws-sdk/util-arn-parser": 3.208.0 + tslib: ^2.3.1 + peerDependencies: + "@aws-sdk/signature-v4-crt": ^3.118.0 + peerDependenciesMeta: + "@aws-sdk/signature-v4-crt": + optional: true + checksum: 173645989956907bbd83c4098e2e52f977272073713ac894ec7bf74f84ddb071c2142b2f5edfb7f7f939a60b8d8b5140bd114e6b028bb5216c341da7eb910ea2 + languageName: node + linkType: hard + +"@aws-sdk/signature-v4@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/signature-v4@npm:3.226.0" + dependencies: + "@aws-sdk/is-array-buffer": 3.201.0 + "@aws-sdk/types": 3.226.0 + "@aws-sdk/util-hex-encoding": 3.201.0 + "@aws-sdk/util-middleware": 3.226.0 + "@aws-sdk/util-uri-escape": 3.201.0 + tslib: ^2.3.1 + checksum: 8bc6ea1ad467d59f1ff6c5b814277e16d0d5b2d1455f21969b4575f572fdc013284e356e0f24436c89c8b99a51d0e384b01daa2bace1c3d69e28f35a23ef9802 + languageName: node + linkType: hard + +"@aws-sdk/smithy-client@npm:3.234.0": + version: 3.234.0 + resolution: "@aws-sdk/smithy-client@npm:3.234.0" + dependencies: + "@aws-sdk/middleware-stack": 3.226.0 + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: 7b8299f81fde410b8f597662d4174a29740cb2791a2377e5009a73c0e7531fb440712ab25c837a0351dbceac4763cc8fadc6d4362727cf3ae749b25515da4ea1 + languageName: node + linkType: hard + +"@aws-sdk/token-providers@npm:3.238.0": + version: 3.238.0 + resolution: "@aws-sdk/token-providers@npm:3.238.0" + dependencies: + "@aws-sdk/client-sso-oidc": 3.238.0 + "@aws-sdk/property-provider": 3.226.0 + "@aws-sdk/shared-ini-file-loader": 3.226.0 + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: 5627cda5accc45efb50636d839ed3e6d820a139495fdc03f95cb49267d2c67182fa88d6e46a70fe9ccf34cc8a30df390ded8e94af9daeb3581c22ab0d4940ec5 + languageName: node + linkType: hard + +"@aws-sdk/types@npm:3.226.0, @aws-sdk/types@npm:^3.1.0, @aws-sdk/types@npm:^3.110.0": + version: 3.226.0 + resolution: "@aws-sdk/types@npm:3.226.0" + dependencies: + tslib: ^2.3.1 + checksum: 0041a8c0924ec7ba4ff787ae329a80b3edb9ace43e38fe3656a1862ae5324427fb09836275c0962cbc80e3c34a6ee512a108a5c4e7997f29664e3e8930cffd80 + languageName: node + linkType: hard + +"@aws-sdk/url-parser@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/url-parser@npm:3.226.0" + dependencies: + "@aws-sdk/querystring-parser": 3.226.0 + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: cb8d4b13c0de7336728a7a60a246108c0ecd46e5e493cb1006f5ab58c5dbae0ac36a791536786b1facc90f58a8d6decca9f4fda2cba19667ba5a9f5f4fcadb63 + languageName: node + linkType: hard + +"@aws-sdk/util-arn-parser@npm:3.208.0": + version: 3.208.0 + resolution: "@aws-sdk/util-arn-parser@npm:3.208.0" + dependencies: + tslib: ^2.3.1 + checksum: 1e1793adc0c53801b9fd7ccb7e94169dcd984047533c28897aea2af4c4fa02cbc2cd1b5d9b6f34eaf6b9aaa0aba27f927c8e2a58a6b4bb06888cfa68d66b6b2d + languageName: node + linkType: hard + +"@aws-sdk/util-base64@npm:3.208.0": + version: 3.208.0 + resolution: "@aws-sdk/util-base64@npm:3.208.0" + dependencies: + "@aws-sdk/util-buffer-from": 3.208.0 + tslib: ^2.3.1 + checksum: 2ccab3453a3a3636f3f1397441574b3adb984e1ba3865030393108327ed7304cf80c9b31d69691e6aba85cfe6a611a881bbb724e544324240763bb4e96630ed9 + languageName: node + linkType: hard + +"@aws-sdk/util-body-length-browser@npm:3.188.0": + version: 3.188.0 + resolution: "@aws-sdk/util-body-length-browser@npm:3.188.0" + dependencies: + tslib: ^2.3.1 + checksum: 1b08bd1e63ec843ee336f51d894c49bf3c4c2f96e50d1711a12f7d0c5b6f7a15b490e366fec55b63e77036002994bac12927b29de2eb9ac91e4f152b1af78e58 + languageName: node + linkType: hard + +"@aws-sdk/util-body-length-node@npm:3.208.0": + version: 3.208.0 + resolution: "@aws-sdk/util-body-length-node@npm:3.208.0" + dependencies: + tslib: ^2.3.1 + checksum: 986b42b358656dec4e75c231213331c4f01785f9ab17c8b87b6e268b6880818a96117f1785cef9786e6c0f7e2c1332c80e8388a43bfd83e8c7224ad059a72733 + languageName: node + linkType: hard + +"@aws-sdk/util-buffer-from@npm:3.208.0": + version: 3.208.0 + resolution: "@aws-sdk/util-buffer-from@npm:3.208.0" + dependencies: + "@aws-sdk/is-array-buffer": 3.201.0 + tslib: ^2.3.1 + checksum: 00bfa4d4494d3a1eb128e19104994d1aca8b3802e9aa218cecafb1ed3ff2ecf5c946485e06aa97ae312458842b0f31a6484dc945232f7cb0e357ba341cb2e53e + languageName: node + linkType: hard + +"@aws-sdk/util-config-provider@npm:3.208.0": + version: 3.208.0 + resolution: "@aws-sdk/util-config-provider@npm:3.208.0" + dependencies: + tslib: ^2.3.1 + checksum: 97b0414b120b4eb53001f3ab2135ee94937e47bd7bd0d0de7c6a7e00a282eaa78cd84be2bfd3e389340f0c0b2f7ba60da9a403f084721970ee55b779ecf7a451 + languageName: node + linkType: hard + +"@aws-sdk/util-defaults-mode-browser@npm:3.234.0": + version: 3.234.0 + resolution: "@aws-sdk/util-defaults-mode-browser@npm:3.234.0" + dependencies: + "@aws-sdk/property-provider": 3.226.0 + "@aws-sdk/types": 3.226.0 + bowser: ^2.11.0 + tslib: ^2.3.1 + checksum: 79a381a632f867477dc7f948243c8ba82932d3f10325c76a5f2cf96412560648d149ba43ee31794bc45d81158a8c361d890b291880fc0c05f9bafc99cded5ef4 + languageName: node + linkType: hard + +"@aws-sdk/util-defaults-mode-node@npm:3.234.0": + version: 3.234.0 + resolution: "@aws-sdk/util-defaults-mode-node@npm:3.234.0" + dependencies: + "@aws-sdk/config-resolver": 3.234.0 + "@aws-sdk/credential-provider-imds": 3.226.0 + "@aws-sdk/node-config-provider": 3.226.0 + "@aws-sdk/property-provider": 3.226.0 + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: b70becd9e561c1622c75a452ed8c7a8b14b84eba35988159f29476db8c2b47ec72f0b7c19d1a252c725756af1fff1df4201e5e92b6136d1df9170e806dca5219 + languageName: node + linkType: hard + +"@aws-sdk/util-endpoints@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/util-endpoints@npm:3.226.0" + dependencies: + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: a05d38c4901801ff8c33d3469b8248ae07a2bb761e8b87f9eb62d7b977bd447fc8a1601c18692a035662818b223be97957d63d389b5393fdd65227cc25aa7903 + languageName: node + linkType: hard + +"@aws-sdk/util-hex-encoding@npm:3.201.0": + version: 3.201.0 + resolution: "@aws-sdk/util-hex-encoding@npm:3.201.0" + dependencies: + tslib: ^2.3.1 + checksum: a27f3365dfb1e6ece79ea34fd6e2c4540eb0084536d7300ff0ff42a7334ddf07f21958c6cfd0bbeb71361ee408e16deae2c82b7c7378b048b8e81a52c75f190a + languageName: node + linkType: hard + +"@aws-sdk/util-locate-window@npm:^3.0.0": + version: 3.208.0 + resolution: "@aws-sdk/util-locate-window@npm:3.208.0" + dependencies: + tslib: ^2.3.1 + checksum: 7518c110c4fa27c5e1d2d173647f1c58fc6ea244d25733c08ac441d3a2650b050ce06cecbe56b80a9997d514c9f7515b3c529c84c1e04b29aa0265d53af23c52 + languageName: node + linkType: hard + +"@aws-sdk/util-middleware@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/util-middleware@npm:3.226.0" + dependencies: + tslib: ^2.3.1 + checksum: 51a4ba9a784943b723a2c57bbb889a4bc743f0f1219000ef73512e259069d63c3baa805aa375277c9d904da23301d0389bc0bd525b0b55274d7658fb62173e55 + languageName: node + linkType: hard + +"@aws-sdk/util-retry@npm:3.229.0": + version: 3.229.0 + resolution: "@aws-sdk/util-retry@npm:3.229.0" + dependencies: + "@aws-sdk/service-error-classification": 3.229.0 + tslib: ^2.3.1 + checksum: e4ab435000abfa1dc21153682ce684302bd6e69d48b7d2c876ff8dfa66793a43223961a3755d05abb1f94f82765eac2b9d48e55c688a957a7f6b5d032bbc46ee + languageName: node + linkType: hard + +"@aws-sdk/util-stream-browser@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/util-stream-browser@npm:3.226.0" + dependencies: + "@aws-sdk/fetch-http-handler": 3.226.0 + "@aws-sdk/types": 3.226.0 + "@aws-sdk/util-base64": 3.208.0 + "@aws-sdk/util-hex-encoding": 3.201.0 + "@aws-sdk/util-utf8-browser": 3.188.0 + tslib: ^2.3.1 + checksum: 7e232bf20733618b25f1dfee93d53a397cf22bdc7191e920b649837773fc6e551c1671f71581d6294d9e77c4b00dabb7baa182e85cedad470642e743a5b05a5c + languageName: node + linkType: hard + +"@aws-sdk/util-stream-node@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/util-stream-node@npm:3.226.0" + dependencies: + "@aws-sdk/node-http-handler": 3.226.0 + "@aws-sdk/types": 3.226.0 + "@aws-sdk/util-buffer-from": 3.208.0 + tslib: ^2.3.1 + checksum: 91ed91380582bb1989d7420d4939af240fcaf0805845a308ebb9917a1b5da3cae23ebcc9963fcd20c362467130951fc13666e181eb8d40da42f213eaebcada00 + languageName: node + linkType: hard + +"@aws-sdk/util-uri-escape@npm:3.201.0": + version: 3.201.0 + resolution: "@aws-sdk/util-uri-escape@npm:3.201.0" + dependencies: + tslib: ^2.3.1 + checksum: 8bd751459eaab75a9b61801f3484cfa5c4e0133381ace6ec901cb9b92b1fee99beb4ef9c0f87ade59425a882ed3a280255d9b2fd8da6a6286e49efb9af8f0d55 + languageName: node + linkType: hard + +"@aws-sdk/util-user-agent-browser@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/util-user-agent-browser@npm:3.226.0" + dependencies: + "@aws-sdk/types": 3.226.0 + bowser: ^2.11.0 + tslib: ^2.3.1 + checksum: b89b63e03636b98ccb811e713776c8ee5ce92a280edfd429e418dc69bb55b770b47d6118419be76207afe137f293fdb2e87605922714189df8ddbd4573185717 + languageName: node + linkType: hard + +"@aws-sdk/util-user-agent-node@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/util-user-agent-node@npm:3.226.0" + dependencies: + "@aws-sdk/node-config-provider": 3.226.0 + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + peerDependencies: + aws-crt: ">=1.0.0" + peerDependenciesMeta: + aws-crt: + optional: true + checksum: a3b620fa13e5e61bc874d777d451ec522f659f933b7d7f7642c10fbb12ce13dd068c2b5370fd6132cca5ddcd22243fb04b4e926a4dd8aedeb08270a9bb49ee74 + languageName: node + linkType: hard + +"@aws-sdk/util-utf8-browser@npm:3.188.0, @aws-sdk/util-utf8-browser@npm:^3.0.0": + version: 3.188.0 + resolution: "@aws-sdk/util-utf8-browser@npm:3.188.0" + dependencies: + tslib: ^2.3.1 + checksum: dacd27164aa0835888434e080b67f04510e2281560540ff73496f2d0aa73b0b7f830ec08491b35c3a51bf6214615579182aff8727e151e54a74a97a197a2ac31 + languageName: node + linkType: hard + +"@aws-sdk/util-utf8-node@npm:3.208.0": + version: 3.208.0 + resolution: "@aws-sdk/util-utf8-node@npm:3.208.0" + dependencies: + "@aws-sdk/util-buffer-from": 3.208.0 + tslib: ^2.3.1 + checksum: 0f4c1d0d3f6eb40d92bc7163c6dcf97f90b3a8be05df46ba4f9bb7723a3e6acabf2cb0f2486411b03d22e8fcccae9e757ed02afad384ff5f44a3a659a78c5752 + languageName: node + linkType: hard + +"@aws-sdk/util-waiter@npm:3.226.0": + version: 3.226.0 + resolution: "@aws-sdk/util-waiter@npm:3.226.0" + dependencies: + "@aws-sdk/abort-controller": 3.226.0 + "@aws-sdk/types": 3.226.0 + tslib: ^2.3.1 + checksum: d182033937bd5ab024598a48ad28030267c1b9aa54175f24d0e57ea87975a0a07b5da7d0e5f43efb663e908a5df591dfa307bf9707a02d84eb49b089e9c5a5db + languageName: node + linkType: hard + +"@aws-sdk/xml-builder@npm:3.201.0": + version: 3.201.0 + resolution: "@aws-sdk/xml-builder@npm:3.201.0" + dependencies: + tslib: ^2.3.1 + checksum: fd250c2edcf062e79af576fa39d555f624c155540f7bb27da05a400540f3c2ceb89f33841157eda5f4558a0b6c58d2686a105d26f79eeab5790e6b6bfbe18d4a + languageName: node + linkType: hard + "@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.18.6": version: 7.18.6 resolution: "@babel/code-frame@npm:7.18.6" @@ -5307,6 +6461,13 @@ __metadata: languageName: node linkType: hard +"bowser@npm:^2.11.0": + version: 2.11.0 + resolution: "bowser@npm:2.11.0" + checksum: 29c3f01f22e703fa6644fc3b684307442df4240b6e10f6cfe1b61c6ca5721073189ca97cdeedb376081148c8518e33b1d818a57f781d70b0b70e1f31fb48814f + languageName: node + linkType: hard + "brace-expansion@npm:^1.1.7": version: 1.1.11 resolution: "brace-expansion@npm:1.1.11" @@ -7197,6 +8358,24 @@ __metadata: languageName: node linkType: hard +"fast-xml-parser@npm:4.0.11": + version: 4.0.11 + resolution: "fast-xml-parser@npm:4.0.11" + dependencies: + strnum: ^1.0.5 + bin: + fxparser: src/cli/cli.js + checksum: d8a08e4d5597e0fc00a86735195872eeb03008913e298830941516f3766e16ee555e2d431acc92e1dda887938edc445252ec5b59494aab60a8389888bd13719c + languageName: node + linkType: hard + +"fastify-plugin@npm:^3.0.0": + version: 3.0.1 + resolution: "fastify-plugin@npm:3.0.1" + checksum: 131ba0a388f777829c3fb0fd5b75cf057688ce6d0ca354fb1ebf829767a8c853b0825762b9185b5200097454df0ede2f3095da2efe1aa1b3736d07f194e6d374 + languageName: node + linkType: hard + "fastify-plugin@npm:^4.0.0, fastify-plugin@npm:^4.2.1": version: 4.5.0 resolution: "fastify-plugin@npm:4.5.0" @@ -10360,6 +11539,7 @@ __metadata: version: 0.0.0-use.local resolution: "picsur-backend@workspace:backend" dependencies: + "@aws-sdk/client-s3": ^3.238.0 "@fastify/helmet": ^10.1.0 "@fastify/multipart": ^7.5.0 "@fastify/reply-from": ^9.0.1 @@ -12061,6 +13241,13 @@ __metadata: languageName: node linkType: hard +"strnum@npm:^1.0.5": + version: 1.0.5 + resolution: "strnum@npm:1.0.5" + checksum: 651b2031db5da1bf4a77fdd2f116a8ac8055157c5420f5569f64879133825915ad461513e7202a16d7fec63c54fd822410d0962f8ca12385c4334891b9ae6dd2 + languageName: node + linkType: hard + "strtok3@npm:^7.0.0": version: 7.0.0 resolution: "strtok3@npm:7.0.0" @@ -12457,14 +13644,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:2.5.0, tslib@npm:^2.0.0, tslib@npm:^2.1.0, tslib@npm:^2.2.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.5.0": - version: 2.5.0 - resolution: "tslib@npm:2.5.0" - checksum: ae3ed5f9ce29932d049908ebfdf21b3a003a85653a9a140d614da6b767a93ef94f460e52c3d787f0e4f383546981713f165037dc2274df212ea9f8a4541004e1 - languageName: node - linkType: hard - -"tslib@npm:^1.8.1, tslib@npm:^1.9.0": +"tslib@npm:^1.11.1, tslib@npm:^1.8.1, tslib@npm:^1.9.0": version: 1.14.1 resolution: "tslib@npm:1.14.1" checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd