diff --git a/config/dev.yaml b/config/dev.yaml
index 1b7e3409..80e0292e 100644
--- a/config/dev.yaml
+++ b/config/dev.yaml
@@ -48,6 +48,7 @@ db:
host: '127.0.0.1'
port: '6379'
password: 'root'
+ db: 0
# oss 文件存储服务
oss:
@@ -55,22 +56,19 @@ oss:
enable: true
# 线上更改为服务端地址(如:https://api.codingit.cn)
server: 'http://localhost:5002'
- # 以下为各厂商 sdk 配置,不要修改字段,填入值即可
- tencent:
- enable: false
+ s3:
+ enable: true
config:
- SecretId: ''
- SecretKey: ''
- Bucket: ''
- Region: ''
- aliyun:
- enable: false
- config:
- accessKeyId: ''
- accessKeySecret: ''
- bucket: ''
- https: true
- region: ''
+ # isp 提供商,可选 minio,s3,aliyun,tencent
+ cloudisp: 'minio'
+ accessKeyId: ''
+ secretAccessKey: ''
+ bucket: ''
+ region: ''
+ # 仅cloudisp 的值为 minio/s3 时配置,其它提供商为空
+ forcePathStyle: false
+ # 仅cloudisp 的值为 minio 时配置,其它提供商为空
+ endpoint: ''
# jwt 配置
jwt:
diff --git a/packages/client/public/diagram/styles/default.xml b/packages/client/public/diagram/styles/default.xml
new file mode 100644
index 00000000..82fb1b23
--- /dev/null
+++ b/packages/client/public/diagram/styles/default.xml
@@ -0,0 +1,203 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/client/public/diagram/styles/sprites.png b/packages/client/public/diagram/styles/sprites.png
new file mode 100644
index 00000000..23e1b491
Binary files /dev/null and b/packages/client/public/diagram/styles/sprites.png differ
diff --git a/packages/domains/lib/api/file.js b/packages/domains/lib/api/file.js
index e01b5f04..0ae6eba3 100644
--- a/packages/domains/lib/api/file.js
+++ b/packages/domains/lib/api/file.js
@@ -35,4 +35,6 @@ exports.FileApiDefinition = {
client: function () { return '/file/merge/chunk'; }
}
};
-exports.FILE_CHUNK_SIZE = 2 * 1024 * 1024;
+// 设置文件分片的大小 改成 8 M
+// MINIO 等oss 有最小分片的限制
+exports.FILE_CHUNK_SIZE = 8 * 1024 * 1024;
diff --git a/packages/server/package.json b/packages/server/package.json
index 9fa88c00..610434ee 100644
--- a/packages/server/package.json
+++ b/packages/server/package.json
@@ -18,6 +18,8 @@
"test:e2e": "jest --config ./test/jest-e2e.json"
},
"dependencies": {
+ "@aws-sdk/client-s3": "^3.645.0",
+ "@aws-sdk/s3-request-presigner": "^3.645.0",
"@hocuspocus/server": "^1.0.0-alpha.91",
"@hocuspocus/transformer": "^1.0.0-alpha.18",
"@nestjs/common": "^8.0.0",
@@ -61,6 +63,7 @@
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"rxjs": "^7.2.0",
+ "spark-md5": "^3.0.2",
"typeorm": "^0.2.41",
"ua-parser-js": "^1.0.2",
"validator": "^13.7.0",
diff --git a/packages/server/src/helpers/file.helper/index.ts b/packages/server/src/helpers/file.helper/index.ts
index 34c92620..2f19a5f4 100644
--- a/packages/server/src/helpers/file.helper/index.ts
+++ b/packages/server/src/helpers/file.helper/index.ts
@@ -1,19 +1,14 @@
import { ConfigService } from '@nestjs/config';
-import { AliyunOssClient } from './aliyun.client';
import { LocalOssClient } from './local.client';
import { OssClient } from './oss.client';
-import { TencentOssClient } from './tencent.client';
+import { S3OssClient } from './s3.client';
export { OssClient };
export const getOssClient = (configService: ConfigService): OssClient => {
- if (configService.get('oss.tencent.enable')) {
- return new TencentOssClient(configService);
- }
-
- if (configService.get('oss.aliyun.enable')) {
- return new AliyunOssClient(configService);
+ if (configService.get('oss.s3.enable')) {
+ return new S3OssClient(configService);
}
return new LocalOssClient(configService);
diff --git a/packages/server/src/helpers/file.helper/local.client.ts b/packages/server/src/helpers/file.helper/local.client.ts
index ee0085f5..2b355b38 100644
--- a/packages/server/src/helpers/file.helper/local.client.ts
+++ b/packages/server/src/helpers/file.helper/local.client.ts
@@ -1,6 +1,7 @@
import { FILE_CHUNK_SIZE } from '@think/domains';
import * as fs from 'fs-extra';
+import Redis from 'ioredis';
import * as path from 'path';
import { BaseOssClient, FileQuery } from './oss.client';
@@ -20,6 +21,8 @@ export const pipeWriteStream = (filepath, writeStream): Promise => {
};
export class LocalOssClient extends BaseOssClient {
+ private redis: Redis | null;
+
/**
* 文件存储路径
* @param md5
@@ -34,6 +37,10 @@ export class LocalOssClient extends BaseOssClient {
return { relative: filepath.replace(FILE_ROOT_PATH, FILE_DEST), absolute: filepath };
}
+ async setRedis(redis: Redis) {
+ this.redis = redis;
+ }
+
/**
* 将文件存储的相对路径拼接为可访问 URL
* @param serverRoot
diff --git a/packages/server/src/helpers/file.helper/oss.client.ts b/packages/server/src/helpers/file.helper/oss.client.ts
index 61d0c6f3..5dba108c 100644
--- a/packages/server/src/helpers/file.helper/oss.client.ts
+++ b/packages/server/src/helpers/file.helper/oss.client.ts
@@ -1,5 +1,7 @@
import { ConfigService } from '@nestjs/config';
+import Redis from 'ioredis';
+
export type FileQuery = {
filename: string;
md5: string;
@@ -7,6 +9,7 @@ export type FileQuery = {
};
export abstract class OssClient {
+ [x: string]: any;
abstract uploadFile(file: Express.Multer.File, query: FileQuery): Promise;
abstract initChunk(query: FileQuery): Promise;
abstract uploadChunk(file: Express.Multer.File, query: FileQuery): Promise;
@@ -39,4 +42,9 @@ export class BaseOssClient implements OssClient {
mergeChunk(query: FileQuery): Promise {
throw new Error('Method not implemented.');
}
+
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ setRedis(redis: Redis): Promise {
+ throw new Error('Method not implemented.');
+ }
}
diff --git a/packages/server/src/helpers/file.helper/s3.client.ts b/packages/server/src/helpers/file.helper/s3.client.ts
new file mode 100644
index 00000000..1d34577b
--- /dev/null
+++ b/packages/server/src/helpers/file.helper/s3.client.ts
@@ -0,0 +1,237 @@
+import {
+ CompleteMultipartUploadCommand,
+ CreateMultipartUploadCommand,
+ GetObjectCommand,
+ HeadObjectCommand,
+ PutObjectCommand,
+ S3Client,
+ UploadPartCommand,
+} from '@aws-sdk/client-s3';
+import { getSignedUrl } from '@aws-sdk/s3-request-presigner';
+import Redis from 'ioredis';
+
+import { BaseOssClient, FileQuery } from './oss.client';
+
+export class S3OssClient extends BaseOssClient {
+ private client: S3Client | null;
+ private bucket: string | null;
+ private redis: Redis | null;
+
+ async setRedis(redis: Redis) {
+ this.redis = redis;
+ }
+
+ /**
+ * 构建 s3 客户端
+ * @returns
+ */
+ private ensureS3OssClient(): S3Client {
+ if (this.client) {
+ return this.client;
+ }
+
+ const config = this.configService.get('oss.s3.config');
+ try {
+ this.bucket = config.bucket;
+
+ if (config.cloudisp == 'minio') {
+ this.client = new S3Client({
+ endpoint: config.endpoint,
+ region: config.region,
+ forcePathStyle: config.forcePathStyle,
+ credentials: {
+ accessKeyId: config.accessKeyId,
+ secretAccessKey: config.secretAccessKey,
+ },
+ });
+ }
+
+ if (config.cloudisp == 's3') {
+ this.client = new S3Client({
+ region: config.region,
+ forcePathStyle: config.forcePathStyle,
+ credentials: {
+ accessKeyId: config.accessKeyId,
+ secretAccessKey: config.secretAccessKey,
+ },
+ });
+ }
+
+ if (config.cloudisp == 'aliyun') {
+ this.client = new S3Client({
+ region: config.region,
+ endpoint: 'https://' + config.region + '.aliyuncs.com',
+ // 阿里云不支持 虚拟路径,这里必须为false
+ forcePathStyle: false,
+ credentials: {
+ accessKeyId: config.accessKeyId,
+ secretAccessKey: config.secretAccessKey,
+ },
+ });
+ }
+
+ if (config.cloudisp == 'tencent') {
+ this.client = new S3Client({
+ region: config.region,
+ endpoint: 'https://cos.' + config.region + '.myqcloud.com',
+ // 不支持 虚拟路径,这里必须为false
+ forcePathStyle: false,
+ credentials: {
+ accessKeyId: config.accessKeyId,
+ secretAccessKey: config.secretAccessKey,
+ },
+ });
+ }
+
+ return this.client;
+ } catch (err) {
+ console.log('无法启动S3存储服务,请检查S3配置是否正确', err.message);
+ }
+ }
+
+ /**
+ * 获取上传文件名
+ * @param md5
+ * @param filename
+ * @returns
+ */
+ private getInOssFileName(md5, filename) {
+ return `think/${md5}/${filename}`;
+ }
+
+ private async getObjectUrl(bucket, key) {
+ this.ensureS3OssClient();
+ const command = new GetObjectCommand({ Bucket: bucket, Key: key });
+ const signUrl = await getSignedUrl(this.client, command);
+ console.log('signUrl:' + signUrl);
+ return signUrl.split('?')[0];
+ }
+
+ /**
+ * 检查文件是否已存储到 oss
+ * @param md5
+ * @param filename
+ * @returns
+ */
+ private async checkIfAlreadyInOss(md5, filename) {
+ this.ensureS3OssClient();
+ const inOssFileName = this.getInOssFileName(md5, filename);
+ const command = new HeadObjectCommand({ Bucket: this.bucket, Key: inOssFileName });
+ try {
+ await this.client.send(command);
+ return await this.getObjectUrl(this.bucket, inOssFileName);
+ } catch (err) {
+ return false;
+ }
+ }
+
+ /**
+ * 上传小文件
+ * @param file
+ * @param query
+ * @returns
+ */
+ async uploadFile(file: Express.Multer.File, query: FileQuery): Promise {
+ this.ensureS3OssClient();
+ const { filename, md5 } = query;
+ const maybeOssURL = await this.checkIfAlreadyInOss(md5, filename);
+ if (maybeOssURL) {
+ return maybeOssURL;
+ }
+
+ const inOssFileName = this.getInOssFileName(md5, filename);
+ const command = new PutObjectCommand({
+ Bucket: this.bucket,
+ Key: inOssFileName,
+ Body: file.buffer,
+ });
+ await this.client.send(command);
+ return await this.getObjectUrl(this.bucket, inOssFileName);
+ }
+
+ /**
+ * 初始分片
+ * @param file
+ * @param query
+ * @returns
+ */
+ async initChunk(query: FileQuery): Promise {
+ const { md5, filename } = query;
+ this.ensureS3OssClient();
+
+ const inOssFileName = this.getInOssFileName(md5, filename);
+ const maybeOssURL = await this.checkIfAlreadyInOss(md5, filename);
+
+ if (maybeOssURL) {
+ return maybeOssURL as string;
+ }
+ const command = new CreateMultipartUploadCommand({ Bucket: this.bucket, Key: inOssFileName });
+ const response = await this.client.send(command);
+ const upload_id = response['UploadId'];
+ // 这里使用redis 来存储 upload_id
+ await this.redis.del('think:oss:chunk:' + md5);
+ await this.redis.del('think:oss:chunk:' + md5 + '*');
+ this.redis.set('think:oss:chunk:' + md5, upload_id);
+ return '';
+ }
+
+ /**
+ * 上传分片
+ * @param file
+ * @param query
+ * @returns
+ */
+ async uploadChunk(file: Express.Multer.File, query: FileQuery): Promise {
+ const { md5, filename, chunkIndex } = query;
+
+ if (!('chunkIndex' in query)) {
+ throw new Error('请指定 chunkIndex');
+ }
+
+ this.ensureS3OssClient();
+ const inOssFileName = this.getInOssFileName(md5, filename);
+ const upload_id = await this.redis.get('think:oss:chunk:' + md5);
+
+ const command = new UploadPartCommand({
+ Body: file.buffer,
+ Bucket: this.bucket,
+ Key: inOssFileName,
+ PartNumber: chunkIndex,
+ UploadId: upload_id,
+ });
+ const response = await this.client.send(command);
+ this.redis.set(
+ 'think:oss:chunk:' + md5 + ':' + chunkIndex,
+ JSON.stringify({ PartNumber: chunkIndex, ETag: response['ETag'] })
+ );
+ }
+
+ /**
+ * 合并分片
+ * @param query
+ * @returns
+ */
+ async mergeChunk(query: FileQuery): Promise {
+ const { filename, md5 } = query;
+ const inOssFileName = this.getInOssFileName(md5, filename);
+ const upload_id = await this.redis.get('think:oss:chunk:' + md5);
+ const etags = await this.redis.keys('think:oss:chunk:' + md5 + ':*');
+ const MultipartUpload = { Parts: [] };
+ for (let i = 1; i <= etags.length; i++) {
+ const obj = JSON.parse(await this.redis.get('think:oss:chunk:' + md5 + ':' + i));
+ MultipartUpload.Parts.push(obj);
+ }
+ console.log(MultipartUpload, upload_id);
+ const command = new CompleteMultipartUploadCommand({
+ Bucket: this.bucket,
+ Key: inOssFileName,
+ UploadId: upload_id,
+ MultipartUpload: MultipartUpload,
+ });
+
+ await this.client.send(command);
+ await this.redis.del('think:oss:chunk:' + md5);
+ await this.redis.del('think:oss:chunk:' + md5 + '*');
+ return await this.getObjectUrl(this.bucket, inOssFileName);
+ }
+}
diff --git a/packages/server/src/helpers/redis.helper.ts b/packages/server/src/helpers/redis.helper.ts
index 6e661fb8..d9e88010 100644
--- a/packages/server/src/helpers/redis.helper.ts
+++ b/packages/server/src/helpers/redis.helper.ts
@@ -18,7 +18,7 @@ export const buildRedis = (db: RedisDBEnum): Promise => {
...redisConfig,
showFriendlyErrorStack: true,
lazyConnect: true,
- db,
+ db: redisConfig.db,
});
redis.on('ready', () => {
resolve(redis);
diff --git a/packages/server/src/services/file.service.ts b/packages/server/src/services/file.service.ts
index 612ecd4e..4bf1fe98 100644
--- a/packages/server/src/services/file.service.ts
+++ b/packages/server/src/services/file.service.ts
@@ -1,14 +1,39 @@
+/*
+ * @Author: SudemQaQ
+ * @Date: 2024-09-09 10:28:02
+ * @email: mail@szhcloud.cn
+ * @Blog: https://blog.szhcloud.cn
+ * @github: https://github.com/sang8052
+ * @LastEditors: SudemQaQ
+ * @LastEditTime: 2024-09-09 12:54:49
+ * @Description:
+ */
import { Injectable } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
+import { RedisDBEnum } from '@constants/*';
import { getOssClient, OssClient } from '@helpers/file.helper';
+import { buildRedis } from '@helpers/redis.helper';
+import Redis from 'ioredis';
@Injectable()
export class FileService {
private ossClient: OssClient;
+ private redis: Redis;
constructor(private readonly configService: ConfigService) {
this.ossClient = getOssClient(this.configService);
+ this.buildRedis();
+ }
+
+ private async buildRedis() {
+ try {
+ this.redis = await buildRedis(RedisDBEnum.view);
+ console.log('[think] 文件服务启动成功');
+ this.ossClient.setRedis(this.redis);
+ } catch (e) {
+ console.error(`[think] 文件服务启动错误: "${e.message}"`);
+ }
}
async uploadFile(file, query) {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ffd3de97..03117fde 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -439,6 +439,12 @@ importers:
packages/server:
dependencies:
+ '@aws-sdk/client-s3':
+ specifier: ^3.645.0
+ version: 3.645.0
+ '@aws-sdk/s3-request-presigner':
+ specifier: ^3.645.0
+ version: 3.645.0
'@hocuspocus/server':
specifier: ^1.0.0-alpha.91
version: 1.1.3(y-protocols@1.0.6(yjs@13.6.18))(yjs@13.6.18)
@@ -568,6 +574,9 @@ importers:
rxjs:
specifier: ^7.2.0
version: 7.8.1
+ spark-md5:
+ specifier: ^3.0.2
+ version: 3.0.2
typeorm:
specifier: ^0.2.41
version: 0.2.45(ioredis@5.4.1)(mysql2@2.3.3)
@@ -703,6 +712,177 @@ packages:
peerDependencies:
ajv: '>=8'
+ '@aws-crypto/crc32@5.2.0':
+ resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-crypto/crc32c@5.2.0':
+ resolution: {integrity: sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==}
+
+ '@aws-crypto/sha1-browser@5.2.0':
+ resolution: {integrity: sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==}
+
+ '@aws-crypto/sha256-browser@5.2.0':
+ resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==}
+
+ '@aws-crypto/sha256-js@5.2.0':
+ resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-crypto/supports-web-crypto@5.2.0':
+ resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==}
+
+ '@aws-crypto/util@5.2.0':
+ resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==}
+
+ '@aws-sdk/client-s3@3.645.0':
+ resolution: {integrity: sha512-RjT/mfNv4yr1uv/+aEXgSIxC5EB+yHPSU7hH0KZOZrvZEFASLl0i4FeoHzbMEOH5KdKGAi0uu3zRP3D1y45sKg==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/client-sso-oidc@3.645.0':
+ resolution: {integrity: sha512-X9ULtdk3cO+1ysurEkJ1MSnu6U00qodXx+IVual+1jXX4RYY1WmQmfo7uDKf6FFkz7wW1DAqU+GJIBNQr0YH8A==}
+ engines: {node: '>=16.0.0'}
+ peerDependencies:
+ '@aws-sdk/client-sts': ^3.645.0
+
+ '@aws-sdk/client-sso@3.645.0':
+ resolution: {integrity: sha512-2rc8TjnsNddOeKQ/pfNN7deNvGLXAeKeYtHtGDAiM2qfTKxd2sNcAsZ+JCDLyshuD4xLM5fpUyR0X8As9EAouQ==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/client-sts@3.645.0':
+ resolution: {integrity: sha512-6azXYtvtnAsPf2ShN9vKynIYVcJOpo6IoVmoMAVgNaBJyllP+s/RORzranYZzckqfmrudSxtct4rVapjLWuAMg==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/core@3.635.0':
+ resolution: {integrity: sha512-i1x/E/sgA+liUE1XJ7rj1dhyXpAKO1UKFUcTTHXok2ARjWTvszHnSXMOsB77aPbmn0fUp1JTx2kHUAZ1LVt5Bg==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/credential-provider-env@3.620.1':
+ resolution: {integrity: sha512-ExuILJ2qLW5ZO+rgkNRj0xiAipKT16Rk77buvPP8csR7kkCflT/gXTyzRe/uzIiETTxM7tr8xuO9MP/DQXqkfg==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/credential-provider-http@3.635.0':
+ resolution: {integrity: sha512-iJyRgEjOCQlBMXqtwPLIKYc7Bsc6nqjrZybdMDenPDa+kmLg7xh8LxHsu9088e+2/wtLicE34FsJJIfzu3L82g==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/credential-provider-ini@3.645.0':
+ resolution: {integrity: sha512-LlZW0qwUwNlTaAIDCNpLbPsyXvS42pRIwF92fgtCQedmdnpN3XRUC6hcwSYI7Xru3GGKp3RnceOvsdOaRJORsw==}
+ engines: {node: '>=16.0.0'}
+ peerDependencies:
+ '@aws-sdk/client-sts': ^3.645.0
+
+ '@aws-sdk/credential-provider-node@3.645.0':
+ resolution: {integrity: sha512-eGFFuNvLeXjCJf5OCIuSEflxUowmK+bCS+lK4M8ofsYOEGAivdx7C0UPxNjHpvM8wKd8vpMl5phTeS9BWX5jMQ==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/credential-provider-process@3.620.1':
+ resolution: {integrity: sha512-hWqFMidqLAkaV9G460+1at6qa9vySbjQKKc04p59OT7lZ5cO5VH5S4aI05e+m4j364MBROjjk2ugNvfNf/8ILg==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/credential-provider-sso@3.645.0':
+ resolution: {integrity: sha512-d6XuChAl5NCsCrUexc6AFb4efPmb9+66iwPylKG+iMTMYgO1ackfy1Q2/f35jdn0jolkPkzKsVyfzsEVoID6ew==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/credential-provider-web-identity@3.621.0':
+ resolution: {integrity: sha512-w7ASSyfNvcx7+bYGep3VBgC3K6vEdLmlpjT7nSIHxxQf+WSdvy+HynwJosrpZax0sK5q0D1Jpn/5q+r5lwwW6w==}
+ engines: {node: '>=16.0.0'}
+ peerDependencies:
+ '@aws-sdk/client-sts': ^3.621.0
+
+ '@aws-sdk/middleware-bucket-endpoint@3.620.0':
+ resolution: {integrity: sha512-eGLL0W6L3HDb3OACyetZYOWpHJ+gLo0TehQKeQyy2G8vTYXqNTeqYhuI6up9HVjBzU9eQiULVQETmgQs7TFaRg==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/middleware-expect-continue@3.620.0':
+ resolution: {integrity: sha512-QXeRFMLfyQ31nAHLbiTLtk0oHzG9QLMaof5jIfqcUwnOkO8YnQdeqzakrg1Alpy/VQ7aqzIi8qypkBe2KXZz0A==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/middleware-flexible-checksums@3.620.0':
+ resolution: {integrity: sha512-ftz+NW7qka2sVuwnnO1IzBku5ccP+s5qZGeRTPgrKB7OzRW85gthvIo1vQR2w+OwHFk7WJbbhhWwbCbktnP4UA==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/middleware-host-header@3.620.0':
+ resolution: {integrity: sha512-VMtPEZwqYrII/oUkffYsNWY9PZ9xpNJpMgmyU0rlDQ25O1c0Hk3fJmZRe6pEkAJ0omD7kLrqGl1DUjQVxpd/Rg==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/middleware-location-constraint@3.609.0':
+ resolution: {integrity: sha512-xzsdoTkszGVqGVPjUmgoP7TORiByLueMHieI1fhQL888WPdqctwAx3ES6d/bA9Q/i8jnc6hs+Fjhy8UvBTkE9A==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/middleware-logger@3.609.0':
+ resolution: {integrity: sha512-S62U2dy4jMDhDFDK5gZ4VxFdWzCtLzwbYyFZx2uvPYTECkepLUfzLic2BHg2Qvtu4QjX+oGE3P/7fwaGIsGNuQ==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/middleware-recursion-detection@3.620.0':
+ resolution: {integrity: sha512-nh91S7aGK3e/o1ck64sA/CyoFw+gAYj2BDOnoNa6ouyCrVJED96ZXWbhye/fz9SgmNUZR2g7GdVpiLpMKZoI5w==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/middleware-sdk-s3@3.635.0':
+ resolution: {integrity: sha512-RLdYJPEV4JL/7NBoFUs7VlP90X++5FlJdxHz0DzCjmiD3qCviKy+Cym3qg1gBgHwucs5XisuClxDrGokhAdTQw==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/middleware-ssec@3.609.0':
+ resolution: {integrity: sha512-GZSD1s7+JswWOTamVap79QiDaIV7byJFssBW68GYjyRS5EBjNfwA/8s+6uE6g39R3ojyTbYOmvcANoZEhSULXg==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/middleware-user-agent@3.645.0':
+ resolution: {integrity: sha512-NpTAtqWK+49lRuxfz7st9for80r4NriCMK0RfdJSoPFVntjsSQiQ7+2nW2XL05uVY633e9DvCAw8YatX3zd1mw==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/region-config-resolver@3.614.0':
+ resolution: {integrity: sha512-vDCeMXvic/LU0KFIUjpC3RiSTIkkvESsEfbVHiHH0YINfl8HnEqR5rj+L8+phsCeVg2+LmYwYxd5NRz4PHxt5g==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/s3-request-presigner@3.645.0':
+ resolution: {integrity: sha512-YyEwg2ryp8ECDl/W9oJC4FqqtZdkIbaVXveqwv93Aq2hgui0XrTFbhZNXJUvfU/mBVjx3Kud/FQTB3Bx0qwqPQ==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/signature-v4-multi-region@3.635.0':
+ resolution: {integrity: sha512-J6QY4/invOkpogCHjSaDON1hF03viPpOnsrzVuCvJMmclS/iG62R4EY0wq1alYll0YmSdmKlpJwHMWwGtqK63Q==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/token-providers@3.614.0':
+ resolution: {integrity: sha512-okItqyY6L9IHdxqs+Z116y5/nda7rHxLvROxtAJdLavWTYDydxrZstImNgGWTeVdmc0xX2gJCI77UYUTQWnhRw==}
+ engines: {node: '>=16.0.0'}
+ peerDependencies:
+ '@aws-sdk/client-sso-oidc': ^3.614.0
+
+ '@aws-sdk/types@3.609.0':
+ resolution: {integrity: sha512-+Tqnh9w0h2LcrUsdXyT1F8mNhXz+tVYBtP19LpeEGntmvHwa2XzvLUCWpoIAIVsHp5+HdB2X9Sn0KAtmbFXc2Q==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/util-arn-parser@3.568.0':
+ resolution: {integrity: sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/util-endpoints@3.645.0':
+ resolution: {integrity: sha512-Oe+xaU4ic4PB1k3pb5VTC1/MWES13IlgpaQw01bVHGfwP6Yv6zZOxizRzca2Y3E+AyR+nKD7vXtHRY+w3bi4bg==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/util-format-url@3.609.0':
+ resolution: {integrity: sha512-fuk29BI/oLQlJ7pfm6iJ4gkEpHdavffAALZwXh9eaY1vQ0ip0aKfRTiNudPoJjyyahnz5yJ1HkmlcDitlzsOrQ==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/util-locate-window@3.568.0':
+ resolution: {integrity: sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig==}
+ engines: {node: '>=16.0.0'}
+
+ '@aws-sdk/util-user-agent-browser@3.609.0':
+ resolution: {integrity: sha512-fojPU+mNahzQ0YHYBsx0ZIhmMA96H+ZIZ665ObU9tl+SGdbLneVZVikGve+NmHTQwHzwkFsZYYnVKAkreJLAtA==}
+
+ '@aws-sdk/util-user-agent-node@3.614.0':
+ resolution: {integrity: sha512-15ElZT88peoHnq5TEoEtZwoXTXRxNrk60TZNdpl/TUBJ5oNJ9Dqb5Z4ryb8ofN6nm9aFf59GVAerFDz8iUoHBA==}
+ engines: {node: '>=16.0.0'}
+ peerDependencies:
+ aws-crt: '>=1.0.0'
+ peerDependenciesMeta:
+ aws-crt:
+ optional: true
+
+ '@aws-sdk/xml-builder@3.609.0':
+ resolution: {integrity: sha512-l9XxNcA4HX98rwCC2/KoiWcmEiRfZe4G+mYwDbCFT87JIMj6GBhLDkAzr/W8KAaA2IDr8Vc6J8fZPgVulxxfMA==}
+ engines: {node: '>=16.0.0'}
+
'@babel/code-frame@7.24.7':
resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==}
engines: {node: '>=6.9.0'}
@@ -1900,6 +2080,209 @@ packages:
'@sinonjs/fake-timers@8.1.0':
resolution: {integrity: sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==}
+ '@smithy/abort-controller@3.1.1':
+ resolution: {integrity: sha512-MBJBiidoe+0cTFhyxT8g+9g7CeVccLM0IOKKUMCNQ1CNMJ/eIfoo0RTfVrXOONEI1UCN1W+zkiHSbzUNE9dZtQ==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/chunked-blob-reader-native@3.0.0':
+ resolution: {integrity: sha512-VDkpCYW+peSuM4zJip5WDfqvg2Mo/e8yxOv3VF1m11y7B8KKMKVFtmZWDe36Fvk8rGuWrPZHHXZ7rR7uM5yWyg==}
+
+ '@smithy/chunked-blob-reader@3.0.0':
+ resolution: {integrity: sha512-sbnURCwjF0gSToGlsBiAmd1lRCmSn72nu9axfJu5lIx6RUEgHu6GwTMbqCdhQSi0Pumcm5vFxsi9XWXb2mTaoA==}
+
+ '@smithy/config-resolver@3.0.5':
+ resolution: {integrity: sha512-SkW5LxfkSI1bUC74OtfBbdz+grQXYiPYolyu8VfpLIjEoN/sHVBlLeGXMQ1vX4ejkgfv6sxVbQJ32yF2cl1veA==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/core@2.4.0':
+ resolution: {integrity: sha512-cHXq+FneIF/KJbt4q4pjN186+Jf4ZB0ZOqEaZMBhT79srEyGDDBV31NqBRBjazz8ppQ1bJbDJMY9ba5wKFV36w==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/credential-provider-imds@3.2.0':
+ resolution: {integrity: sha512-0SCIzgd8LYZ9EJxUjLXBmEKSZR/P/w6l7Rz/pab9culE/RWuqelAKGJvn5qUOl8BgX8Yj5HWM50A5hiB/RzsgA==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/eventstream-codec@3.1.2':
+ resolution: {integrity: sha512-0mBcu49JWt4MXhrhRAlxASNy0IjDRFU+aWNDRal9OtUJvJNiwDuyKMUONSOjLjSCeGwZaE0wOErdqULer8r7yw==}
+
+ '@smithy/eventstream-serde-browser@3.0.6':
+ resolution: {integrity: sha512-2hM54UWQUOrki4BtsUI1WzmD13/SeaqT/AB3EUJKbcver/WgKNaiJ5y5F5XXuVe6UekffVzuUDrBZVAA3AWRpQ==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/eventstream-serde-config-resolver@3.0.3':
+ resolution: {integrity: sha512-NVTYjOuYpGfrN/VbRQgn31x73KDLfCXCsFdad8DiIc3IcdxL+dYA9zEQPyOP7Fy2QL8CPy2WE4WCUD+ZsLNfaQ==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/eventstream-serde-node@3.0.5':
+ resolution: {integrity: sha512-+upXvnHNyZP095s11jF5dhGw/Ihzqwl5G+/KtMnoQOpdfC3B5HYCcDVG9EmgkhJMXJlM64PyN5gjJl0uXFQehQ==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/eventstream-serde-universal@3.0.5':
+ resolution: {integrity: sha512-5u/nXbyoh1s4QxrvNre9V6vfyoLWuiVvvd5TlZjGThIikc3G+uNiG9uOTCWweSRjv1asdDIWK7nOmN7le4RYHQ==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/fetch-http-handler@3.2.4':
+ resolution: {integrity: sha512-kBprh5Gs5h7ug4nBWZi1FZthdqSM+T7zMmsZxx0IBvWUn7dK3diz2SHn7Bs4dQGFDk8plDv375gzenDoNwrXjg==}
+
+ '@smithy/hash-blob-browser@3.1.2':
+ resolution: {integrity: sha512-hAbfqN2UbISltakCC2TP0kx4LqXBttEv2MqSPE98gVuDFMf05lU+TpC41QtqGP3Ff5A3GwZMPfKnEy0VmEUpmg==}
+
+ '@smithy/hash-node@3.0.3':
+ resolution: {integrity: sha512-2ctBXpPMG+B3BtWSGNnKELJ7SH9e4TNefJS0cd2eSkOOROeBnnVBnAy9LtJ8tY4vUEoe55N4CNPxzbWvR39iBw==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/hash-stream-node@3.1.2':
+ resolution: {integrity: sha512-PBgDMeEdDzi6JxKwbfBtwQG9eT9cVwsf0dZzLXoJF4sHKHs5HEo/3lJWpn6jibfJwT34I1EBXpBnZE8AxAft6g==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/invalid-dependency@3.0.3':
+ resolution: {integrity: sha512-ID1eL/zpDULmHJbflb864k72/SNOZCADRc9i7Exq3RUNJw6raWUSlFEQ+3PX3EYs++bTxZB2dE9mEHTQLv61tw==}
+
+ '@smithy/is-array-buffer@2.2.0':
+ resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==}
+ engines: {node: '>=14.0.0'}
+
+ '@smithy/is-array-buffer@3.0.0':
+ resolution: {integrity: sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/md5-js@3.0.3':
+ resolution: {integrity: sha512-O/SAkGVwpWmelpj/8yDtsaVe6sINHLB1q8YE/+ZQbDxIw3SRLbTZuRaI10K12sVoENdnHqzPp5i3/H+BcZ3m3Q==}
+
+ '@smithy/middleware-content-length@3.0.5':
+ resolution: {integrity: sha512-ILEzC2eyxx6ncej3zZSwMpB5RJ0zuqH7eMptxC4KN3f+v9bqT8ohssKbhNR78k/2tWW+KS5Spw+tbPF4Ejyqvw==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/middleware-endpoint@3.1.0':
+ resolution: {integrity: sha512-5y5aiKCEwg9TDPB4yFE7H6tYvGFf1OJHNczeY10/EFF8Ir8jZbNntQJxMWNfeQjC1mxPsaQ6mR9cvQbf+0YeMw==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/middleware-retry@3.0.15':
+ resolution: {integrity: sha512-iTMedvNt1ApdvkaoE8aSDuwaoc+BhvHqttbA/FO4Ty+y/S5hW6Ci/CTScG7vam4RYJWZxdTElc3MEfHRVH6cgQ==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/middleware-serde@3.0.3':
+ resolution: {integrity: sha512-puUbyJQBcg9eSErFXjKNiGILJGtiqmuuNKEYNYfUD57fUl4i9+mfmThtQhvFXU0hCVG0iEJhvQUipUf+/SsFdA==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/middleware-stack@3.0.3':
+ resolution: {integrity: sha512-r4klY9nFudB0r9UdSMaGSyjyQK5adUyPnQN/ZM6M75phTxOdnc/AhpvGD1fQUvgmqjQEBGCwpnPbDm8pH5PapA==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/node-config-provider@3.1.4':
+ resolution: {integrity: sha512-YvnElQy8HR4vDcAjoy7Xkx9YT8xZP4cBXcbJSgm/kxmiQu08DwUwj8rkGnyoJTpfl/3xYHH+d8zE+eHqoDCSdQ==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/node-http-handler@3.1.4':
+ resolution: {integrity: sha512-+UmxgixgOr/yLsUxcEKGH0fMNVteJFGkmRltYFHnBMlogyFdpzn2CwqWmxOrfJELhV34v0WSlaqG1UtE1uXlJg==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/property-provider@3.1.3':
+ resolution: {integrity: sha512-zahyOVR9Q4PEoguJ/NrFP4O7SMAfYO1HLhB18M+q+Z4KFd4V2obiMnlVoUFzFLSPeVt1POyNWneHHrZaTMoc/g==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/protocol-http@4.1.0':
+ resolution: {integrity: sha512-dPVoHYQ2wcHooGXg3LQisa1hH0e4y0pAddPMeeUPipI1tEOqL6A4N0/G7abeq+K8wrwSgjk4C0wnD1XZpJm5aA==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/querystring-builder@3.0.3':
+ resolution: {integrity: sha512-vyWckeUeesFKzCDaRwWLUA1Xym9McaA6XpFfAK5qI9DKJ4M33ooQGqvM4J+LalH4u/Dq9nFiC8U6Qn1qi0+9zw==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/querystring-parser@3.0.3':
+ resolution: {integrity: sha512-zahM1lQv2YjmznnfQsWbYojFe55l0SLG/988brlLv1i8z3dubloLF+75ATRsqPBboUXsW6I9CPGE5rQgLfY0vQ==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/service-error-classification@3.0.3':
+ resolution: {integrity: sha512-Jn39sSl8cim/VlkLsUhRFq/dKDnRUFlfRkvhOJaUbLBXUsLRLNf9WaxDv/z9BjuQ3A6k/qE8af1lsqcwm7+DaQ==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/shared-ini-file-loader@3.1.4':
+ resolution: {integrity: sha512-qMxS4hBGB8FY2GQqshcRUy1K6k8aBWP5vwm8qKkCT3A9K2dawUwOIJfqh9Yste/Bl0J2lzosVyrXDj68kLcHXQ==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/signature-v4@4.1.0':
+ resolution: {integrity: sha512-aRryp2XNZeRcOtuJoxjydO6QTaVhxx/vjaR+gx7ZjaFgrgPRyZ3HCTbfwqYj6ZWEBHkCSUfcaymKPURaByukag==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/smithy-client@3.2.0':
+ resolution: {integrity: sha512-pDbtxs8WOhJLJSeaF/eAbPgXg4VVYFlRcL/zoNYA5WbG3wBL06CHtBSg53ppkttDpAJ/hdiede+xApip1CwSLw==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/types@3.3.0':
+ resolution: {integrity: sha512-IxvBBCTFDHbVoK7zIxqA1ZOdc4QfM5HM7rGleCuHi7L1wnKv5Pn69xXJQ9hgxH60ZVygH9/JG0jRgtUncE3QUA==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/url-parser@3.0.3':
+ resolution: {integrity: sha512-pw3VtZtX2rg+s6HMs6/+u9+hu6oY6U7IohGhVNnjbgKy86wcIsSZwgHrFR+t67Uyxvp4Xz3p3kGXXIpTNisq8A==}
+
+ '@smithy/util-base64@3.0.0':
+ resolution: {integrity: sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/util-body-length-browser@3.0.0':
+ resolution: {integrity: sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==}
+
+ '@smithy/util-body-length-node@3.0.0':
+ resolution: {integrity: sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/util-buffer-from@2.2.0':
+ resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==}
+ engines: {node: '>=14.0.0'}
+
+ '@smithy/util-buffer-from@3.0.0':
+ resolution: {integrity: sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/util-config-provider@3.0.0':
+ resolution: {integrity: sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/util-defaults-mode-browser@3.0.15':
+ resolution: {integrity: sha512-FZ4Psa3vjp8kOXcd3HJOiDPBCWtiilLl57r0cnNtq/Ga9RSDrM5ERL6xt+tO43+2af6Pn5Yp92x2n5vPuduNfg==}
+ engines: {node: '>= 10.0.0'}
+
+ '@smithy/util-defaults-mode-node@3.0.15':
+ resolution: {integrity: sha512-KSyAAx2q6d0t6f/S4XB2+3+6aQacm3aLMhs9aLMqn18uYGUepbdssfogW5JQZpc6lXNBnp0tEnR5e9CEKmEd7A==}
+ engines: {node: '>= 10.0.0'}
+
+ '@smithy/util-endpoints@2.0.5':
+ resolution: {integrity: sha512-ReQP0BWihIE68OAblC/WQmDD40Gx+QY1Ez8mTdFMXpmjfxSyz2fVQu3A4zXRfQU9sZXtewk3GmhfOHswvX+eNg==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/util-hex-encoding@3.0.0':
+ resolution: {integrity: sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/util-middleware@3.0.3':
+ resolution: {integrity: sha512-l+StyYYK/eO3DlVPbU+4Bi06Jjal+PFLSMmlWM1BEwyLxZ3aKkf1ROnoIakfaA7mC6uw3ny7JBkau4Yc+5zfWw==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/util-retry@3.0.3':
+ resolution: {integrity: sha512-AFw+hjpbtVApzpNDhbjNG5NA3kyoMs7vx0gsgmlJF4s+yz1Zlepde7J58zpIRIsdjc+emhpAITxA88qLkPF26w==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/util-stream@3.1.3':
+ resolution: {integrity: sha512-FIv/bRhIlAxC0U7xM1BCnF2aDRPq0UaelqBHkM2lsCp26mcBbgI0tCVTv+jGdsQLUmAMybua/bjDsSu8RQHbmw==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/util-uri-escape@3.0.0':
+ resolution: {integrity: sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/util-utf8@2.3.0':
+ resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==}
+ engines: {node: '>=14.0.0'}
+
+ '@smithy/util-utf8@3.0.0':
+ resolution: {integrity: sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==}
+ engines: {node: '>=16.0.0'}
+
+ '@smithy/util-waiter@3.1.2':
+ resolution: {integrity: sha512-4pP0EV3iTsexDx+8PPGAKCQpd/6hsQBaQhqWzU4hqKPHN5epPsxKbvUTIiYIHTxaKt6/kEaqPBpu/ufvfbrRzw==}
+ engines: {node: '>=16.0.0'}
+
'@sqltools/formatter@1.2.5':
resolution: {integrity: sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==}
@@ -2822,6 +3205,9 @@ packages:
bowser@1.9.4:
resolution: {integrity: sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ==}
+ bowser@2.11.0:
+ resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==}
+
brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
@@ -3810,6 +4196,10 @@ packages:
resolution: {integrity: sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==}
hasBin: true
+ fast-xml-parser@4.4.1:
+ resolution: {integrity: sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==}
+ hasBin: true
+
fastest-levenshtein@1.0.16:
resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
engines: {node: '>= 4.9.1'}
@@ -7436,6 +7826,516 @@ snapshots:
jsonpointer: 5.0.1
leven: 3.1.0
+ '@aws-crypto/crc32@5.2.0':
+ dependencies:
+ '@aws-crypto/util': 5.2.0
+ '@aws-sdk/types': 3.609.0
+ tslib: 2.6.3
+
+ '@aws-crypto/crc32c@5.2.0':
+ dependencies:
+ '@aws-crypto/util': 5.2.0
+ '@aws-sdk/types': 3.609.0
+ tslib: 2.6.3
+
+ '@aws-crypto/sha1-browser@5.2.0':
+ dependencies:
+ '@aws-crypto/supports-web-crypto': 5.2.0
+ '@aws-crypto/util': 5.2.0
+ '@aws-sdk/types': 3.609.0
+ '@aws-sdk/util-locate-window': 3.568.0
+ '@smithy/util-utf8': 2.3.0
+ tslib: 2.6.3
+
+ '@aws-crypto/sha256-browser@5.2.0':
+ dependencies:
+ '@aws-crypto/sha256-js': 5.2.0
+ '@aws-crypto/supports-web-crypto': 5.2.0
+ '@aws-crypto/util': 5.2.0
+ '@aws-sdk/types': 3.609.0
+ '@aws-sdk/util-locate-window': 3.568.0
+ '@smithy/util-utf8': 2.3.0
+ tslib: 2.6.3
+
+ '@aws-crypto/sha256-js@5.2.0':
+ dependencies:
+ '@aws-crypto/util': 5.2.0
+ '@aws-sdk/types': 3.609.0
+ tslib: 2.6.3
+
+ '@aws-crypto/supports-web-crypto@5.2.0':
+ dependencies:
+ tslib: 2.6.3
+
+ '@aws-crypto/util@5.2.0':
+ dependencies:
+ '@aws-sdk/types': 3.609.0
+ '@smithy/util-utf8': 2.3.0
+ tslib: 2.6.3
+
+ '@aws-sdk/client-s3@3.645.0':
+ dependencies:
+ '@aws-crypto/sha1-browser': 5.2.0
+ '@aws-crypto/sha256-browser': 5.2.0
+ '@aws-crypto/sha256-js': 5.2.0
+ '@aws-sdk/client-sso-oidc': 3.645.0(@aws-sdk/client-sts@3.645.0)
+ '@aws-sdk/client-sts': 3.645.0
+ '@aws-sdk/core': 3.635.0
+ '@aws-sdk/credential-provider-node': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.645.0)
+ '@aws-sdk/middleware-bucket-endpoint': 3.620.0
+ '@aws-sdk/middleware-expect-continue': 3.620.0
+ '@aws-sdk/middleware-flexible-checksums': 3.620.0
+ '@aws-sdk/middleware-host-header': 3.620.0
+ '@aws-sdk/middleware-location-constraint': 3.609.0
+ '@aws-sdk/middleware-logger': 3.609.0
+ '@aws-sdk/middleware-recursion-detection': 3.620.0
+ '@aws-sdk/middleware-sdk-s3': 3.635.0
+ '@aws-sdk/middleware-ssec': 3.609.0
+ '@aws-sdk/middleware-user-agent': 3.645.0
+ '@aws-sdk/region-config-resolver': 3.614.0
+ '@aws-sdk/signature-v4-multi-region': 3.635.0
+ '@aws-sdk/types': 3.609.0
+ '@aws-sdk/util-endpoints': 3.645.0
+ '@aws-sdk/util-user-agent-browser': 3.609.0
+ '@aws-sdk/util-user-agent-node': 3.614.0
+ '@aws-sdk/xml-builder': 3.609.0
+ '@smithy/config-resolver': 3.0.5
+ '@smithy/core': 2.4.0
+ '@smithy/eventstream-serde-browser': 3.0.6
+ '@smithy/eventstream-serde-config-resolver': 3.0.3
+ '@smithy/eventstream-serde-node': 3.0.5
+ '@smithy/fetch-http-handler': 3.2.4
+ '@smithy/hash-blob-browser': 3.1.2
+ '@smithy/hash-node': 3.0.3
+ '@smithy/hash-stream-node': 3.1.2
+ '@smithy/invalid-dependency': 3.0.3
+ '@smithy/md5-js': 3.0.3
+ '@smithy/middleware-content-length': 3.0.5
+ '@smithy/middleware-endpoint': 3.1.0
+ '@smithy/middleware-retry': 3.0.15
+ '@smithy/middleware-serde': 3.0.3
+ '@smithy/middleware-stack': 3.0.3
+ '@smithy/node-config-provider': 3.1.4
+ '@smithy/node-http-handler': 3.1.4
+ '@smithy/protocol-http': 4.1.0
+ '@smithy/smithy-client': 3.2.0
+ '@smithy/types': 3.3.0
+ '@smithy/url-parser': 3.0.3
+ '@smithy/util-base64': 3.0.0
+ '@smithy/util-body-length-browser': 3.0.0
+ '@smithy/util-body-length-node': 3.0.0
+ '@smithy/util-defaults-mode-browser': 3.0.15
+ '@smithy/util-defaults-mode-node': 3.0.15
+ '@smithy/util-endpoints': 2.0.5
+ '@smithy/util-middleware': 3.0.3
+ '@smithy/util-retry': 3.0.3
+ '@smithy/util-stream': 3.1.3
+ '@smithy/util-utf8': 3.0.0
+ '@smithy/util-waiter': 3.1.2
+ tslib: 2.6.3
+ transitivePeerDependencies:
+ - aws-crt
+
+ '@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0)':
+ dependencies:
+ '@aws-crypto/sha256-browser': 5.2.0
+ '@aws-crypto/sha256-js': 5.2.0
+ '@aws-sdk/client-sts': 3.645.0
+ '@aws-sdk/core': 3.635.0
+ '@aws-sdk/credential-provider-node': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.645.0)
+ '@aws-sdk/middleware-host-header': 3.620.0
+ '@aws-sdk/middleware-logger': 3.609.0
+ '@aws-sdk/middleware-recursion-detection': 3.620.0
+ '@aws-sdk/middleware-user-agent': 3.645.0
+ '@aws-sdk/region-config-resolver': 3.614.0
+ '@aws-sdk/types': 3.609.0
+ '@aws-sdk/util-endpoints': 3.645.0
+ '@aws-sdk/util-user-agent-browser': 3.609.0
+ '@aws-sdk/util-user-agent-node': 3.614.0
+ '@smithy/config-resolver': 3.0.5
+ '@smithy/core': 2.4.0
+ '@smithy/fetch-http-handler': 3.2.4
+ '@smithy/hash-node': 3.0.3
+ '@smithy/invalid-dependency': 3.0.3
+ '@smithy/middleware-content-length': 3.0.5
+ '@smithy/middleware-endpoint': 3.1.0
+ '@smithy/middleware-retry': 3.0.15
+ '@smithy/middleware-serde': 3.0.3
+ '@smithy/middleware-stack': 3.0.3
+ '@smithy/node-config-provider': 3.1.4
+ '@smithy/node-http-handler': 3.1.4
+ '@smithy/protocol-http': 4.1.0
+ '@smithy/smithy-client': 3.2.0
+ '@smithy/types': 3.3.0
+ '@smithy/url-parser': 3.0.3
+ '@smithy/util-base64': 3.0.0
+ '@smithy/util-body-length-browser': 3.0.0
+ '@smithy/util-body-length-node': 3.0.0
+ '@smithy/util-defaults-mode-browser': 3.0.15
+ '@smithy/util-defaults-mode-node': 3.0.15
+ '@smithy/util-endpoints': 2.0.5
+ '@smithy/util-middleware': 3.0.3
+ '@smithy/util-retry': 3.0.3
+ '@smithy/util-utf8': 3.0.0
+ tslib: 2.6.3
+ transitivePeerDependencies:
+ - aws-crt
+
+ '@aws-sdk/client-sso@3.645.0':
+ dependencies:
+ '@aws-crypto/sha256-browser': 5.2.0
+ '@aws-crypto/sha256-js': 5.2.0
+ '@aws-sdk/core': 3.635.0
+ '@aws-sdk/middleware-host-header': 3.620.0
+ '@aws-sdk/middleware-logger': 3.609.0
+ '@aws-sdk/middleware-recursion-detection': 3.620.0
+ '@aws-sdk/middleware-user-agent': 3.645.0
+ '@aws-sdk/region-config-resolver': 3.614.0
+ '@aws-sdk/types': 3.609.0
+ '@aws-sdk/util-endpoints': 3.645.0
+ '@aws-sdk/util-user-agent-browser': 3.609.0
+ '@aws-sdk/util-user-agent-node': 3.614.0
+ '@smithy/config-resolver': 3.0.5
+ '@smithy/core': 2.4.0
+ '@smithy/fetch-http-handler': 3.2.4
+ '@smithy/hash-node': 3.0.3
+ '@smithy/invalid-dependency': 3.0.3
+ '@smithy/middleware-content-length': 3.0.5
+ '@smithy/middleware-endpoint': 3.1.0
+ '@smithy/middleware-retry': 3.0.15
+ '@smithy/middleware-serde': 3.0.3
+ '@smithy/middleware-stack': 3.0.3
+ '@smithy/node-config-provider': 3.1.4
+ '@smithy/node-http-handler': 3.1.4
+ '@smithy/protocol-http': 4.1.0
+ '@smithy/smithy-client': 3.2.0
+ '@smithy/types': 3.3.0
+ '@smithy/url-parser': 3.0.3
+ '@smithy/util-base64': 3.0.0
+ '@smithy/util-body-length-browser': 3.0.0
+ '@smithy/util-body-length-node': 3.0.0
+ '@smithy/util-defaults-mode-browser': 3.0.15
+ '@smithy/util-defaults-mode-node': 3.0.15
+ '@smithy/util-endpoints': 2.0.5
+ '@smithy/util-middleware': 3.0.3
+ '@smithy/util-retry': 3.0.3
+ '@smithy/util-utf8': 3.0.0
+ tslib: 2.6.3
+ transitivePeerDependencies:
+ - aws-crt
+
+ '@aws-sdk/client-sts@3.645.0':
+ dependencies:
+ '@aws-crypto/sha256-browser': 5.2.0
+ '@aws-crypto/sha256-js': 5.2.0
+ '@aws-sdk/client-sso-oidc': 3.645.0(@aws-sdk/client-sts@3.645.0)
+ '@aws-sdk/core': 3.635.0
+ '@aws-sdk/credential-provider-node': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.645.0)
+ '@aws-sdk/middleware-host-header': 3.620.0
+ '@aws-sdk/middleware-logger': 3.609.0
+ '@aws-sdk/middleware-recursion-detection': 3.620.0
+ '@aws-sdk/middleware-user-agent': 3.645.0
+ '@aws-sdk/region-config-resolver': 3.614.0
+ '@aws-sdk/types': 3.609.0
+ '@aws-sdk/util-endpoints': 3.645.0
+ '@aws-sdk/util-user-agent-browser': 3.609.0
+ '@aws-sdk/util-user-agent-node': 3.614.0
+ '@smithy/config-resolver': 3.0.5
+ '@smithy/core': 2.4.0
+ '@smithy/fetch-http-handler': 3.2.4
+ '@smithy/hash-node': 3.0.3
+ '@smithy/invalid-dependency': 3.0.3
+ '@smithy/middleware-content-length': 3.0.5
+ '@smithy/middleware-endpoint': 3.1.0
+ '@smithy/middleware-retry': 3.0.15
+ '@smithy/middleware-serde': 3.0.3
+ '@smithy/middleware-stack': 3.0.3
+ '@smithy/node-config-provider': 3.1.4
+ '@smithy/node-http-handler': 3.1.4
+ '@smithy/protocol-http': 4.1.0
+ '@smithy/smithy-client': 3.2.0
+ '@smithy/types': 3.3.0
+ '@smithy/url-parser': 3.0.3
+ '@smithy/util-base64': 3.0.0
+ '@smithy/util-body-length-browser': 3.0.0
+ '@smithy/util-body-length-node': 3.0.0
+ '@smithy/util-defaults-mode-browser': 3.0.15
+ '@smithy/util-defaults-mode-node': 3.0.15
+ '@smithy/util-endpoints': 2.0.5
+ '@smithy/util-middleware': 3.0.3
+ '@smithy/util-retry': 3.0.3
+ '@smithy/util-utf8': 3.0.0
+ tslib: 2.6.3
+ transitivePeerDependencies:
+ - aws-crt
+
+ '@aws-sdk/core@3.635.0':
+ dependencies:
+ '@smithy/core': 2.4.0
+ '@smithy/node-config-provider': 3.1.4
+ '@smithy/property-provider': 3.1.3
+ '@smithy/protocol-http': 4.1.0
+ '@smithy/signature-v4': 4.1.0
+ '@smithy/smithy-client': 3.2.0
+ '@smithy/types': 3.3.0
+ '@smithy/util-middleware': 3.0.3
+ fast-xml-parser: 4.4.1
+ tslib: 2.6.3
+
+ '@aws-sdk/credential-provider-env@3.620.1':
+ dependencies:
+ '@aws-sdk/types': 3.609.0
+ '@smithy/property-provider': 3.1.3
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@aws-sdk/credential-provider-http@3.635.0':
+ dependencies:
+ '@aws-sdk/types': 3.609.0
+ '@smithy/fetch-http-handler': 3.2.4
+ '@smithy/node-http-handler': 3.1.4
+ '@smithy/property-provider': 3.1.3
+ '@smithy/protocol-http': 4.1.0
+ '@smithy/smithy-client': 3.2.0
+ '@smithy/types': 3.3.0
+ '@smithy/util-stream': 3.1.3
+ tslib: 2.6.3
+
+ '@aws-sdk/credential-provider-ini@3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.645.0)':
+ dependencies:
+ '@aws-sdk/client-sts': 3.645.0
+ '@aws-sdk/credential-provider-env': 3.620.1
+ '@aws-sdk/credential-provider-http': 3.635.0
+ '@aws-sdk/credential-provider-process': 3.620.1
+ '@aws-sdk/credential-provider-sso': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))
+ '@aws-sdk/credential-provider-web-identity': 3.621.0(@aws-sdk/client-sts@3.645.0)
+ '@aws-sdk/types': 3.609.0
+ '@smithy/credential-provider-imds': 3.2.0
+ '@smithy/property-provider': 3.1.3
+ '@smithy/shared-ini-file-loader': 3.1.4
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+ transitivePeerDependencies:
+ - '@aws-sdk/client-sso-oidc'
+ - aws-crt
+
+ '@aws-sdk/credential-provider-node@3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.645.0)':
+ dependencies:
+ '@aws-sdk/credential-provider-env': 3.620.1
+ '@aws-sdk/credential-provider-http': 3.635.0
+ '@aws-sdk/credential-provider-ini': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.645.0)
+ '@aws-sdk/credential-provider-process': 3.620.1
+ '@aws-sdk/credential-provider-sso': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))
+ '@aws-sdk/credential-provider-web-identity': 3.621.0(@aws-sdk/client-sts@3.645.0)
+ '@aws-sdk/types': 3.609.0
+ '@smithy/credential-provider-imds': 3.2.0
+ '@smithy/property-provider': 3.1.3
+ '@smithy/shared-ini-file-loader': 3.1.4
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+ transitivePeerDependencies:
+ - '@aws-sdk/client-sso-oidc'
+ - '@aws-sdk/client-sts'
+ - aws-crt
+
+ '@aws-sdk/credential-provider-process@3.620.1':
+ dependencies:
+ '@aws-sdk/types': 3.609.0
+ '@smithy/property-provider': 3.1.3
+ '@smithy/shared-ini-file-loader': 3.1.4
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@aws-sdk/credential-provider-sso@3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))':
+ dependencies:
+ '@aws-sdk/client-sso': 3.645.0
+ '@aws-sdk/token-providers': 3.614.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))
+ '@aws-sdk/types': 3.609.0
+ '@smithy/property-provider': 3.1.3
+ '@smithy/shared-ini-file-loader': 3.1.4
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+ transitivePeerDependencies:
+ - '@aws-sdk/client-sso-oidc'
+ - aws-crt
+
+ '@aws-sdk/credential-provider-web-identity@3.621.0(@aws-sdk/client-sts@3.645.0)':
+ dependencies:
+ '@aws-sdk/client-sts': 3.645.0
+ '@aws-sdk/types': 3.609.0
+ '@smithy/property-provider': 3.1.3
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@aws-sdk/middleware-bucket-endpoint@3.620.0':
+ dependencies:
+ '@aws-sdk/types': 3.609.0
+ '@aws-sdk/util-arn-parser': 3.568.0
+ '@smithy/node-config-provider': 3.1.4
+ '@smithy/protocol-http': 4.1.0
+ '@smithy/types': 3.3.0
+ '@smithy/util-config-provider': 3.0.0
+ tslib: 2.6.3
+
+ '@aws-sdk/middleware-expect-continue@3.620.0':
+ dependencies:
+ '@aws-sdk/types': 3.609.0
+ '@smithy/protocol-http': 4.1.0
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@aws-sdk/middleware-flexible-checksums@3.620.0':
+ dependencies:
+ '@aws-crypto/crc32': 5.2.0
+ '@aws-crypto/crc32c': 5.2.0
+ '@aws-sdk/types': 3.609.0
+ '@smithy/is-array-buffer': 3.0.0
+ '@smithy/protocol-http': 4.1.0
+ '@smithy/types': 3.3.0
+ '@smithy/util-utf8': 3.0.0
+ tslib: 2.6.3
+
+ '@aws-sdk/middleware-host-header@3.620.0':
+ dependencies:
+ '@aws-sdk/types': 3.609.0
+ '@smithy/protocol-http': 4.1.0
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@aws-sdk/middleware-location-constraint@3.609.0':
+ dependencies:
+ '@aws-sdk/types': 3.609.0
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@aws-sdk/middleware-logger@3.609.0':
+ dependencies:
+ '@aws-sdk/types': 3.609.0
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@aws-sdk/middleware-recursion-detection@3.620.0':
+ dependencies:
+ '@aws-sdk/types': 3.609.0
+ '@smithy/protocol-http': 4.1.0
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@aws-sdk/middleware-sdk-s3@3.635.0':
+ dependencies:
+ '@aws-sdk/core': 3.635.0
+ '@aws-sdk/types': 3.609.0
+ '@aws-sdk/util-arn-parser': 3.568.0
+ '@smithy/core': 2.4.0
+ '@smithy/node-config-provider': 3.1.4
+ '@smithy/protocol-http': 4.1.0
+ '@smithy/signature-v4': 4.1.0
+ '@smithy/smithy-client': 3.2.0
+ '@smithy/types': 3.3.0
+ '@smithy/util-config-provider': 3.0.0
+ '@smithy/util-middleware': 3.0.3
+ '@smithy/util-stream': 3.1.3
+ '@smithy/util-utf8': 3.0.0
+ tslib: 2.6.3
+
+ '@aws-sdk/middleware-ssec@3.609.0':
+ dependencies:
+ '@aws-sdk/types': 3.609.0
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@aws-sdk/middleware-user-agent@3.645.0':
+ dependencies:
+ '@aws-sdk/types': 3.609.0
+ '@aws-sdk/util-endpoints': 3.645.0
+ '@smithy/protocol-http': 4.1.0
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@aws-sdk/region-config-resolver@3.614.0':
+ dependencies:
+ '@aws-sdk/types': 3.609.0
+ '@smithy/node-config-provider': 3.1.4
+ '@smithy/types': 3.3.0
+ '@smithy/util-config-provider': 3.0.0
+ '@smithy/util-middleware': 3.0.3
+ tslib: 2.6.3
+
+ '@aws-sdk/s3-request-presigner@3.645.0':
+ dependencies:
+ '@aws-sdk/signature-v4-multi-region': 3.635.0
+ '@aws-sdk/types': 3.609.0
+ '@aws-sdk/util-format-url': 3.609.0
+ '@smithy/middleware-endpoint': 3.1.0
+ '@smithy/protocol-http': 4.1.0
+ '@smithy/smithy-client': 3.2.0
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@aws-sdk/signature-v4-multi-region@3.635.0':
+ dependencies:
+ '@aws-sdk/middleware-sdk-s3': 3.635.0
+ '@aws-sdk/types': 3.609.0
+ '@smithy/protocol-http': 4.1.0
+ '@smithy/signature-v4': 4.1.0
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@aws-sdk/token-providers@3.614.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))':
+ dependencies:
+ '@aws-sdk/client-sso-oidc': 3.645.0(@aws-sdk/client-sts@3.645.0)
+ '@aws-sdk/types': 3.609.0
+ '@smithy/property-provider': 3.1.3
+ '@smithy/shared-ini-file-loader': 3.1.4
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@aws-sdk/types@3.609.0':
+ dependencies:
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@aws-sdk/util-arn-parser@3.568.0':
+ dependencies:
+ tslib: 2.6.3
+
+ '@aws-sdk/util-endpoints@3.645.0':
+ dependencies:
+ '@aws-sdk/types': 3.609.0
+ '@smithy/types': 3.3.0
+ '@smithy/util-endpoints': 2.0.5
+ tslib: 2.6.3
+
+ '@aws-sdk/util-format-url@3.609.0':
+ dependencies:
+ '@aws-sdk/types': 3.609.0
+ '@smithy/querystring-builder': 3.0.3
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@aws-sdk/util-locate-window@3.568.0':
+ dependencies:
+ tslib: 2.6.3
+
+ '@aws-sdk/util-user-agent-browser@3.609.0':
+ dependencies:
+ '@aws-sdk/types': 3.609.0
+ '@smithy/types': 3.3.0
+ bowser: 2.11.0
+ tslib: 2.6.3
+
+ '@aws-sdk/util-user-agent-node@3.614.0':
+ dependencies:
+ '@aws-sdk/types': 3.609.0
+ '@smithy/node-config-provider': 3.1.4
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@aws-sdk/xml-builder@3.609.0':
+ dependencies:
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
'@babel/code-frame@7.24.7':
dependencies:
'@babel/highlight': 7.24.7
@@ -9064,6 +9964,337 @@ snapshots:
dependencies:
'@sinonjs/commons': 1.8.6
+ '@smithy/abort-controller@3.1.1':
+ dependencies:
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@smithy/chunked-blob-reader-native@3.0.0':
+ dependencies:
+ '@smithy/util-base64': 3.0.0
+ tslib: 2.6.3
+
+ '@smithy/chunked-blob-reader@3.0.0':
+ dependencies:
+ tslib: 2.6.3
+
+ '@smithy/config-resolver@3.0.5':
+ dependencies:
+ '@smithy/node-config-provider': 3.1.4
+ '@smithy/types': 3.3.0
+ '@smithy/util-config-provider': 3.0.0
+ '@smithy/util-middleware': 3.0.3
+ tslib: 2.6.3
+
+ '@smithy/core@2.4.0':
+ dependencies:
+ '@smithy/middleware-endpoint': 3.1.0
+ '@smithy/middleware-retry': 3.0.15
+ '@smithy/middleware-serde': 3.0.3
+ '@smithy/protocol-http': 4.1.0
+ '@smithy/smithy-client': 3.2.0
+ '@smithy/types': 3.3.0
+ '@smithy/util-body-length-browser': 3.0.0
+ '@smithy/util-middleware': 3.0.3
+ '@smithy/util-utf8': 3.0.0
+ tslib: 2.6.3
+
+ '@smithy/credential-provider-imds@3.2.0':
+ dependencies:
+ '@smithy/node-config-provider': 3.1.4
+ '@smithy/property-provider': 3.1.3
+ '@smithy/types': 3.3.0
+ '@smithy/url-parser': 3.0.3
+ tslib: 2.6.3
+
+ '@smithy/eventstream-codec@3.1.2':
+ dependencies:
+ '@aws-crypto/crc32': 5.2.0
+ '@smithy/types': 3.3.0
+ '@smithy/util-hex-encoding': 3.0.0
+ tslib: 2.6.3
+
+ '@smithy/eventstream-serde-browser@3.0.6':
+ dependencies:
+ '@smithy/eventstream-serde-universal': 3.0.5
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@smithy/eventstream-serde-config-resolver@3.0.3':
+ dependencies:
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@smithy/eventstream-serde-node@3.0.5':
+ dependencies:
+ '@smithy/eventstream-serde-universal': 3.0.5
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@smithy/eventstream-serde-universal@3.0.5':
+ dependencies:
+ '@smithy/eventstream-codec': 3.1.2
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@smithy/fetch-http-handler@3.2.4':
+ dependencies:
+ '@smithy/protocol-http': 4.1.0
+ '@smithy/querystring-builder': 3.0.3
+ '@smithy/types': 3.3.0
+ '@smithy/util-base64': 3.0.0
+ tslib: 2.6.3
+
+ '@smithy/hash-blob-browser@3.1.2':
+ dependencies:
+ '@smithy/chunked-blob-reader': 3.0.0
+ '@smithy/chunked-blob-reader-native': 3.0.0
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@smithy/hash-node@3.0.3':
+ dependencies:
+ '@smithy/types': 3.3.0
+ '@smithy/util-buffer-from': 3.0.0
+ '@smithy/util-utf8': 3.0.0
+ tslib: 2.6.3
+
+ '@smithy/hash-stream-node@3.1.2':
+ dependencies:
+ '@smithy/types': 3.3.0
+ '@smithy/util-utf8': 3.0.0
+ tslib: 2.6.3
+
+ '@smithy/invalid-dependency@3.0.3':
+ dependencies:
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@smithy/is-array-buffer@2.2.0':
+ dependencies:
+ tslib: 2.6.3
+
+ '@smithy/is-array-buffer@3.0.0':
+ dependencies:
+ tslib: 2.6.3
+
+ '@smithy/md5-js@3.0.3':
+ dependencies:
+ '@smithy/types': 3.3.0
+ '@smithy/util-utf8': 3.0.0
+ tslib: 2.6.3
+
+ '@smithy/middleware-content-length@3.0.5':
+ dependencies:
+ '@smithy/protocol-http': 4.1.0
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@smithy/middleware-endpoint@3.1.0':
+ dependencies:
+ '@smithy/middleware-serde': 3.0.3
+ '@smithy/node-config-provider': 3.1.4
+ '@smithy/shared-ini-file-loader': 3.1.4
+ '@smithy/types': 3.3.0
+ '@smithy/url-parser': 3.0.3
+ '@smithy/util-middleware': 3.0.3
+ tslib: 2.6.3
+
+ '@smithy/middleware-retry@3.0.15':
+ dependencies:
+ '@smithy/node-config-provider': 3.1.4
+ '@smithy/protocol-http': 4.1.0
+ '@smithy/service-error-classification': 3.0.3
+ '@smithy/smithy-client': 3.2.0
+ '@smithy/types': 3.3.0
+ '@smithy/util-middleware': 3.0.3
+ '@smithy/util-retry': 3.0.3
+ tslib: 2.6.3
+ uuid: 9.0.1
+
+ '@smithy/middleware-serde@3.0.3':
+ dependencies:
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@smithy/middleware-stack@3.0.3':
+ dependencies:
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@smithy/node-config-provider@3.1.4':
+ dependencies:
+ '@smithy/property-provider': 3.1.3
+ '@smithy/shared-ini-file-loader': 3.1.4
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@smithy/node-http-handler@3.1.4':
+ dependencies:
+ '@smithy/abort-controller': 3.1.1
+ '@smithy/protocol-http': 4.1.0
+ '@smithy/querystring-builder': 3.0.3
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@smithy/property-provider@3.1.3':
+ dependencies:
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@smithy/protocol-http@4.1.0':
+ dependencies:
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@smithy/querystring-builder@3.0.3':
+ dependencies:
+ '@smithy/types': 3.3.0
+ '@smithy/util-uri-escape': 3.0.0
+ tslib: 2.6.3
+
+ '@smithy/querystring-parser@3.0.3':
+ dependencies:
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@smithy/service-error-classification@3.0.3':
+ dependencies:
+ '@smithy/types': 3.3.0
+
+ '@smithy/shared-ini-file-loader@3.1.4':
+ dependencies:
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@smithy/signature-v4@4.1.0':
+ dependencies:
+ '@smithy/is-array-buffer': 3.0.0
+ '@smithy/protocol-http': 4.1.0
+ '@smithy/types': 3.3.0
+ '@smithy/util-hex-encoding': 3.0.0
+ '@smithy/util-middleware': 3.0.3
+ '@smithy/util-uri-escape': 3.0.0
+ '@smithy/util-utf8': 3.0.0
+ tslib: 2.6.3
+
+ '@smithy/smithy-client@3.2.0':
+ dependencies:
+ '@smithy/middleware-endpoint': 3.1.0
+ '@smithy/middleware-stack': 3.0.3
+ '@smithy/protocol-http': 4.1.0
+ '@smithy/types': 3.3.0
+ '@smithy/util-stream': 3.1.3
+ tslib: 2.6.3
+
+ '@smithy/types@3.3.0':
+ dependencies:
+ tslib: 2.6.3
+
+ '@smithy/url-parser@3.0.3':
+ dependencies:
+ '@smithy/querystring-parser': 3.0.3
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@smithy/util-base64@3.0.0':
+ dependencies:
+ '@smithy/util-buffer-from': 3.0.0
+ '@smithy/util-utf8': 3.0.0
+ tslib: 2.6.3
+
+ '@smithy/util-body-length-browser@3.0.0':
+ dependencies:
+ tslib: 2.6.3
+
+ '@smithy/util-body-length-node@3.0.0':
+ dependencies:
+ tslib: 2.6.3
+
+ '@smithy/util-buffer-from@2.2.0':
+ dependencies:
+ '@smithy/is-array-buffer': 2.2.0
+ tslib: 2.6.3
+
+ '@smithy/util-buffer-from@3.0.0':
+ dependencies:
+ '@smithy/is-array-buffer': 3.0.0
+ tslib: 2.6.3
+
+ '@smithy/util-config-provider@3.0.0':
+ dependencies:
+ tslib: 2.6.3
+
+ '@smithy/util-defaults-mode-browser@3.0.15':
+ dependencies:
+ '@smithy/property-provider': 3.1.3
+ '@smithy/smithy-client': 3.2.0
+ '@smithy/types': 3.3.0
+ bowser: 2.11.0
+ tslib: 2.6.3
+
+ '@smithy/util-defaults-mode-node@3.0.15':
+ dependencies:
+ '@smithy/config-resolver': 3.0.5
+ '@smithy/credential-provider-imds': 3.2.0
+ '@smithy/node-config-provider': 3.1.4
+ '@smithy/property-provider': 3.1.3
+ '@smithy/smithy-client': 3.2.0
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@smithy/util-endpoints@2.0.5':
+ dependencies:
+ '@smithy/node-config-provider': 3.1.4
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@smithy/util-hex-encoding@3.0.0':
+ dependencies:
+ tslib: 2.6.3
+
+ '@smithy/util-middleware@3.0.3':
+ dependencies:
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@smithy/util-retry@3.0.3':
+ dependencies:
+ '@smithy/service-error-classification': 3.0.3
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
+ '@smithy/util-stream@3.1.3':
+ dependencies:
+ '@smithy/fetch-http-handler': 3.2.4
+ '@smithy/node-http-handler': 3.1.4
+ '@smithy/types': 3.3.0
+ '@smithy/util-base64': 3.0.0
+ '@smithy/util-buffer-from': 3.0.0
+ '@smithy/util-hex-encoding': 3.0.0
+ '@smithy/util-utf8': 3.0.0
+ tslib: 2.6.3
+
+ '@smithy/util-uri-escape@3.0.0':
+ dependencies:
+ tslib: 2.6.3
+
+ '@smithy/util-utf8@2.3.0':
+ dependencies:
+ '@smithy/util-buffer-from': 2.2.0
+ tslib: 2.6.3
+
+ '@smithy/util-utf8@3.0.0':
+ dependencies:
+ '@smithy/util-buffer-from': 3.0.0
+ tslib: 2.6.3
+
+ '@smithy/util-waiter@3.1.2':
+ dependencies:
+ '@smithy/abort-controller': 3.1.1
+ '@smithy/types': 3.3.0
+ tslib: 2.6.3
+
'@sqltools/formatter@1.2.5': {}
'@surma/rollup-plugin-off-main-thread@2.2.3':
@@ -10162,6 +11393,8 @@ snapshots:
bowser@1.9.4: {}
+ bowser@2.11.0: {}
+
brace-expansion@1.1.11:
dependencies:
balanced-match: 1.0.2
@@ -11341,6 +12574,10 @@ snapshots:
dependencies:
strnum: 1.0.5
+ fast-xml-parser@4.4.1:
+ dependencies:
+ strnum: 1.0.5
+
fastest-levenshtein@1.0.16: {}
fastq@1.17.1: