diff --git a/bun.config.ts b/bun.config.ts index 8885ce3..a635fd3 100644 --- a/bun.config.ts +++ b/bun.config.ts @@ -1,18 +1,23 @@ -import glob from 'fast-glob'; -import dts from 'bun-plugin-dts'; +import { resolvePath } from '@kevisual/use-config'; +import { execSync } from 'node:child_process'; -const services = await glob('src/services/*.ts'); +const buildFn = async (opts: { entry?: string, naming?: string }) => { + const entry = opts.entry || 'src/index.ts'; + const naming = opts.naming || 'app'; + const external: string[] = ["bun"]; + await Bun.build({ + target: 'node', + format: 'esm', + entrypoints: [resolvePath(entry, { meta: import.meta })], + outdir: resolvePath('./dist', { meta: import.meta }), + naming: { + entry: `${naming}.js`, + }, + external, + }); + const cmd = `dts -i ${entry} -o ${naming}.d.ts`; + execSync(cmd); +}; -await Bun.build({ - entrypoints: ['src/index.ts', ...services], - outdir: './dist', - target: 'node', - format: 'esm', - splitting: false, - sourcemap: 'none', - minify: false, - external: ['minio'], - plugins: [dts()], -}); - -console.log('Build completed!'); +await buildFn({ naming: 'index', entry: 'src/index.ts' }); +await buildFn({ naming: 'services', entry: 'src/services/index.ts' }); \ No newline at end of file diff --git a/package.json b/package.json index 143b5b0..05b79f7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@kevisual/oss", - "version": "0.0.16", + "version": "0.0.18", "main": "dist/index.js", "scripts": { "build": "bun run bun.config.ts" @@ -14,13 +14,13 @@ "license": "MIT", "type": "module", "devDependencies": { - "@types/bun": "^1.3.5", - "@types/node": "^25.0.3", + "@aws-sdk/client-s3": "^3.978.0", + "@kevisual/use-config": "^1.0.28", + "@types/bun": "^1.3.8", + "@types/node": "^25.1.0", "bun-plugin-dts": "^0.3.0", "dotenv": "^17.2.3", - "minio": "^8.0.6", - "@aws-sdk/client-s3": "^3.0.0", - "es-toolkit": "^1.43.0", + "es-toolkit": "^1.44.0", "fast-glob": "^3.3.3" }, "exports": { @@ -28,18 +28,13 @@ "import": "./dist/index.js", "types": "./dist/index.d.ts" }, - "./config": { - "import": "./dist/services/config.js", - "types": "./dist/services/config.d.ts" - }, "./services": { - "import": "./dist/services/index.js", - "types": "./dist/services/index.d.ts" + "import": "./dist/services.js", + "types": "./dist/services.d.ts" }, "./s3.ts": "./src/s3/core.ts" }, "publishConfig": { "access": "public" - }, - "dependencies": {} + } } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cdab12d..5258e4d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,32 +7,31 @@ settings: importers: .: - dependencies: - '@aws-sdk/client-s3': - specifier: ^3.0.0 - version: 3.964.0 - es-toolkit: - specifier: ^1.43.0 - version: 1.43.0 - fast-glob: - specifier: ^3.3.3 - version: 3.3.3 devDependencies: + '@aws-sdk/client-s3': + specifier: ^3.978.0 + version: 3.978.0 + '@kevisual/use-config': + specifier: ^1.0.28 + version: 1.0.28(dotenv@17.2.3) '@types/bun': - specifier: ^1.3.5 - version: 1.3.5 + specifier: ^1.3.8 + version: 1.3.8 '@types/node': - specifier: ^25.0.3 - version: 25.0.3 + specifier: ^25.1.0 + version: 25.1.0 bun-plugin-dts: specifier: ^0.3.0 version: 0.3.0 dotenv: specifier: ^17.2.3 version: 17.2.3 - minio: - specifier: ^8.0.6 - version: 8.0.6 + es-toolkit: + specifier: ^1.44.0 + version: 1.44.0 + fast-glob: + specifier: ^3.3.3 + version: 3.3.3 packages: @@ -59,146 +58,174 @@ packages: '@aws-crypto/util@5.2.0': resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - '@aws-sdk/client-s3@3.964.0': - resolution: {integrity: sha512-mDK+3qpfHnEPXeF6D8nQkJOkOvchllQosgfxv0FK9PNBuU9WVkP8yj7y3YwH6JYTgy1ejz1Ju/YfoUbbE6m7zw==} - engines: {node: '>=18.0.0'} + '@aws-sdk/client-s3@3.978.0': + resolution: {integrity: sha512-2chs05VbfgRNb5ZEYIwooeHCaL+DjwvrW3ElkslI71ltEqVNdeWvB7hbkLWPPKazV3kjY3H90pLDY8mMqsET+A==} + engines: {node: '>=20.0.0'} - '@aws-sdk/client-sso@3.964.0': - resolution: {integrity: sha512-IenVyY8Io2CwBgmS22xk/H5LibmSbvLnPA9oFqLORO6Ji1Ks8z/ow+ud/ZurVjFekz3LD/uxVFX3ZKGo6N7Byw==} - engines: {node: '>=18.0.0'} + '@aws-sdk/client-sso@3.975.0': + resolution: {integrity: sha512-HpgJuleH7P6uILxzJKQOmlHdwaCY+xYC6VgRDzlwVEqU/HXjo4m2gOAyjUbpXlBOCWfGgMUzfBlNJ9z3MboqEQ==} + engines: {node: '>=20.0.0'} - '@aws-sdk/core@3.964.0': - resolution: {integrity: sha512-1gIfbt0KRxI8am1UYFcIxQ5QKb22JyN3k52sxyrKXJYC8Knn/rTUAZbYti45CfETe5PLadInGvWqClwGRlZKNg==} - engines: {node: '>=18.0.0'} + '@aws-sdk/core@3.972.0': + resolution: {integrity: sha512-nEeUW2M9F+xdIaD98F5MBcQ4ITtykj3yKbgFZ6J0JtL3bq+Z90szQ6Yy8H/BLPYXTs3V4n9ifnBo8cprRDiE6A==} + engines: {node: '>=20.0.0'} - '@aws-sdk/crc64-nvme@3.957.0': - resolution: {integrity: sha512-qSwSfI+qBU9HDsd6/4fM9faCxYJx2yDuHtj+NVOQ6XYDWQzFab/hUdwuKZ77Pi6goLF1pBZhJ2azaC2w7LbnTA==} - engines: {node: '>=18.0.0'} + '@aws-sdk/core@3.973.4': + resolution: {integrity: sha512-8Rk+kPP74YiR47x54bxYlKZswsaSh0a4XvvRUMLvyS/koNawhsGu/+qSZxREqUeTO+GkKpFvSQIsAZR+deUP+g==} + engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-env@3.964.0': - resolution: {integrity: sha512-jWNSXOOBMYuxzI2rXi8x91YL07dhomyGzzh0CdaLej0LRmknmDrZcZNkVpa7Fredy1PFcmOlokwCS5PmZMN8ZQ==} - engines: {node: '>=18.0.0'} + '@aws-sdk/crc64-nvme@3.972.0': + resolution: {integrity: sha512-ThlLhTqX68jvoIVv+pryOdb5coP1cX1/MaTbB9xkGDCbWbsqQcLqzPxuSoW1DCnAAIacmXCWpzUNOB9pv+xXQw==} + engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-http@3.964.0': - resolution: {integrity: sha512-up7dl6vcaoXuYSwGXDvx8RnF8Lwj3jGChhyUR7krZOXLarIfUUN3ILOZnVNK5s/HnVNkEILlkdPvjhr9LVC1/Q==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-env@3.972.2': + resolution: {integrity: sha512-wzH1EdrZsytG1xN9UHaK12J9+kfrnd2+c8y0LVoS4O4laEjPoie1qVK3k8/rZe7KOtvULzyMnO3FT4Krr9Z0Dg==} + engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-ini@3.964.0': - resolution: {integrity: sha512-t4FN9qTWU4nXDU6EQ6jopvyhXw0dbQ3n+3g6x5hmc1ECFAqA+xmFd1i5LljdZCi79cUXHduQWwvW8RJHMf0qJw==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-http@3.972.4': + resolution: {integrity: sha512-OC7F3ipXV12QfDEWybQGHLzoeHBlAdx/nLzPfHP0Wsabu3JBffu5nlzSaJNf7to9HGtOW8Bpu8NX0ugmDrCbtw==} + engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-login@3.964.0': - resolution: {integrity: sha512-c64dmTizMkJXDRzN3NYPTmUpKxegr5lmLOYPeQ60Zcbft6HFwPme8Gwy8pNxO4gG1fw6Ja2Vu6fZuSTn8aDFOQ==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-ini@3.972.2': + resolution: {integrity: sha512-Jrb8sLm6k8+L7520irBrvCtdLxNtrG7arIxe9TCeMJt/HxqMGJdbIjw8wILzkEHLMIi4MecF2FbXCln7OT1Tag==} + engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-node@3.964.0': - resolution: {integrity: sha512-FHxDXPOj888/qc/X8s0x4aUBdp4Y3k9VePRehUJBWRhhTsAyuIJis5V0iQeY1qvtqHXYa2qd1EZHGJ3bTjHxSw==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-login@3.972.2': + resolution: {integrity: sha512-mlaw2aiI3DrimW85ZMn3g7qrtHueidS58IGytZ+mbFpsYLK5wMjCAKZQtt7VatLMtSBG/dn/EY4njbnYXIDKeQ==} + engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-process@3.964.0': - resolution: {integrity: sha512-HaTLKqj3jeZY88E/iBjsNJsXgmRTTT7TghqeRiF8FKb/7UY1xEvasBO0c1xqfOye8dsyt35nTfTTyIsd/CBfww==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-node@3.972.3': + resolution: {integrity: sha512-iu+JwWHM7tHowKqE+8wNmI3sM6mPEiI9Egscz2BEV7adyKmV95oR9tBO4VIOl72FGDi7X9mXg19VtqIpSkEEsA==} + engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-sso@3.964.0': - resolution: {integrity: sha512-oR78TjSpjVf1IpPWQnGHEGqlnQs+K4f5nCxLK2P6JDPprXay6oknsoSiU4x2urav6VCyMPMC9KTCGjBoFKUIxQ==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-process@3.972.2': + resolution: {integrity: sha512-NLKLTT7jnUe9GpQAVkPTJO+cs2FjlQDt5fArIYS7h/Iw/CvamzgGYGFRVD2SE05nOHCMwafUSi42If8esGFV+g==} + engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-web-identity@3.964.0': - resolution: {integrity: sha512-07JQDmbjZjOt3nL/j1wTcvQqjmPkynQYftUV/ooZ+qTbmJXFbCBdal1VCElyeiu0AgBq9dfhw0rBBcbND1ZMlA==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-sso@3.972.2': + resolution: {integrity: sha512-YpwDn8g3gCGUl61cCV0sRxP2pFIwg+ZsMfWQ/GalSyjXtRkctCMFA+u0yPb/Q4uTfNEiya1Y4nm0C5rIHyPW5Q==} + engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-bucket-endpoint@3.957.0': - resolution: {integrity: sha512-iczcn/QRIBSpvsdAS/rbzmoBpleX1JBjXvCynMbDceVLBIcVrwT1hXECrhtIC2cjh4HaLo9ClAbiOiWuqt+6MA==} - engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-web-identity@3.972.2': + resolution: {integrity: sha512-x9DAiN9Qz+NjJ99ltDiVQ8d511M/tuF/9MFbe2jUgo7HZhD6+x4S3iT1YcP07ndwDUjmzKGmeOEgE24k4qvfdg==} + engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-expect-continue@3.957.0': - resolution: {integrity: sha512-AlbK3OeVNwZZil0wlClgeI/ISlOt/SPUxBsIns876IFaVu/Pj3DgImnYhpcJuFRek4r4XM51xzIaGQXM6GDHGg==} - engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-bucket-endpoint@3.972.2': + resolution: {integrity: sha512-ofuXBnitp9j8t05O4NQVrpMZDECPtUhRIWdLzR35baR5njOIPY7YqNtJE+yELVpSn2m4jt2sV1ezYMBY4/Lo+w==} + engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-flexible-checksums@3.964.0': - resolution: {integrity: sha512-IA2kSKkwC/HHFF75nTR7s/nWt5CboB6vMgpLpvx40Cc01cMp+06Jr7U2/+DPPc8fkCagTytchY4gX9Hzn5ej8g==} - engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-expect-continue@3.972.2': + resolution: {integrity: sha512-d9bBQlGk1T5j5rWfof20M2tErddOSoSLDauP2/yyuXfeOfQRCSBUZNrApSxjJ9Hw+/RDGR/XL+LEOqmXxSlV3A==} + engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-host-header@3.957.0': - resolution: {integrity: sha512-BBgKawVyfQZglEkNTuBBdC3azlyqNXsvvN4jPkWAiNYcY0x1BasaJFl+7u/HisfULstryweJq/dAvIZIxzlZaA==} - engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-flexible-checksums@3.972.2': + resolution: {integrity: sha512-GgWVZJdzXzqhXxzNAYB3TnZCj7d5rZNdovqSIV91e97nowHVaExRoyaZ3H/Ydqot7veHGPTl8nBp464zZeLDTQ==} + engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-location-constraint@3.957.0': - resolution: {integrity: sha512-y8/W7TOQpmDJg/fPYlqAhwA4+I15LrS7TwgUEoxogtkD8gfur9wFMRLT8LCyc9o4NMEcAnK50hSb4+wB0qv6tQ==} - engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-host-header@3.972.2': + resolution: {integrity: sha512-42hZ8jEXT2uR6YybCzNq9OomqHPw43YIfRfz17biZjMQA4jKSQUaHIl6VvqO2Ddl5904pXg2Yd/ku78S0Ikgog==} + engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-logger@3.957.0': - resolution: {integrity: sha512-w1qfKrSKHf9b5a8O76yQ1t69u6NWuBjr5kBX+jRWFx/5mu6RLpqERXRpVJxfosbep7k3B+DSB5tZMZ82GKcJtQ==} - engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-location-constraint@3.972.2': + resolution: {integrity: sha512-pyayzpq+VQiG1o9pEUyr6BXEJ2g2t4JIPdNxDkIHp2AhR63Gy/10WQkXTBOgRnfQ7/aLPLOnjRIWwOPp0CfUlA==} + engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-recursion-detection@3.957.0': - resolution: {integrity: sha512-D2H/WoxhAZNYX+IjkKTdOhOkWQaK0jjJrDBj56hKjU5c9ltQiaX/1PqJ4dfjHntEshJfu0w+E6XJ+/6A6ILBBA==} - engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-logger@3.972.2': + resolution: {integrity: sha512-iUzdXKOgi4JVDDEG/VvoNw50FryRCEm0qAudw12DcZoiNJWl0rN6SYVLcL1xwugMfQncCXieK5UBlG6mhH7iYA==} + engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-sdk-s3@3.964.0': - resolution: {integrity: sha512-SeFcLo3tUdI3amzoIiArd9O0i7vAB0n5fgbQHBu137s3SbSLO5tPspE25rrUITwlc5HTbHMK6UzBq+3hITmImA==} - engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-recursion-detection@3.972.2': + resolution: {integrity: sha512-/mzlyzJDtngNFd/rAYvqx29a2d0VuiYKN84Y/Mu9mGw7cfMOCyRK+896tb9wV6MoPRHUX7IXuKCIL8nzz2Pz5A==} + engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-ssec@3.957.0': - resolution: {integrity: sha512-qwkmrK0lizdjNt5qxl4tHYfASh8DFpHXM1iDVo+qHe+zuslfMqQEGRkzxS8tJq/I+8F0c6v3IKOveKJAfIvfqQ==} - engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-sdk-s3@3.972.0': + resolution: {integrity: sha512-0bcKFXWx+NZ7tIlOo7KjQ+O2rydiHdIQahrq+fN6k9Osky29v17guy68urUKfhTobR6iY6KvxkroFWaFtTgS5w==} + engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-user-agent@3.964.0': - resolution: {integrity: sha512-/QyBl8WLNtqw3ucyAggumQXVCi8GRxaDGE1ElyYMmacfiwHl37S9y8JVW/QLL1lIEXGcsrhMUKV3pyFJFALA7w==} - engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-sdk-s3@3.972.4': + resolution: {integrity: sha512-lradfn72Td7lswhZKi86VKRNkDtmQR7bq9shX1kaPK1itjThxfcx7ogXSvMm/0cuqoYGic8UUXQOaK4kpU933g==} + engines: {node: '>=20.0.0'} - '@aws-sdk/nested-clients@3.964.0': - resolution: {integrity: sha512-ql+ftRwjyZkZeG3qbrRJFVmNR0id83WEUqhFVjvrQMWspNApBhz0Ar4YVSn7Uv0QaKkaR7ALPtmdMzFr3/E4bQ==} - engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-ssec@3.972.2': + resolution: {integrity: sha512-HJ3OmQnlQ1es6esrDWnx3nVPhBAN89WaFCzsDcb6oT7TMjBPUfZ5+1BpI7B0Hnme8cc6kp7qc4cgo2plrlROJA==} + engines: {node: '>=20.0.0'} - '@aws-sdk/region-config-resolver@3.957.0': - resolution: {integrity: sha512-V8iY3blh8l2iaOqXWW88HbkY5jDoWjH56jonprG/cpyqqCnprvpMUZWPWYJoI8rHRf2bqzZeql1slxG6EnKI7A==} - engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-user-agent@3.972.4': + resolution: {integrity: sha512-6sU8jrSJvY/lqSnU6IYsa8SrCKwOZ4Enl6O4xVJo8RCq9Bdr5Giuw2eUaJAk9GPcpr4OFcmSFv3JOLhpKGeRZA==} + engines: {node: '>=20.0.0'} - '@aws-sdk/signature-v4-multi-region@3.964.0': - resolution: {integrity: sha512-ASQmO9EB2ukSTGpO7B2ZceSbNVivCLqWh89o/JJtcIdGpOu8p9XHpeK3hiUz2OQo2Igw03/n8s+DNvP+N9krpw==} - engines: {node: '>=18.0.0'} + '@aws-sdk/nested-clients@3.975.0': + resolution: {integrity: sha512-OkeFHPlQj2c/Y5bQGkX14pxhDWUGUFt3LRHhjcDKsSCw6lrxKcxN3WFZN0qbJwKNydP+knL5nxvfgKiCLpTLRA==} + engines: {node: '>=20.0.0'} - '@aws-sdk/token-providers@3.964.0': - resolution: {integrity: sha512-UqouLQbYepZnMFJGB/DVpA5GhF9uT98vNWSMz9PVbhgEPUKa73FECRT6YFZvZOh8kA+0JiENrnmS6d93I70ykQ==} - engines: {node: '>=18.0.0'} + '@aws-sdk/region-config-resolver@3.972.2': + resolution: {integrity: sha512-/7vRBsfmiOlg2X67EdKrzzQGw5/SbkXb7ALHQmlQLkZh8qNgvS2G2dDC6NtF3hzFlpP3j2k+KIEtql/6VrI6JA==} + engines: {node: '>=20.0.0'} - '@aws-sdk/types@3.957.0': - resolution: {integrity: sha512-wzWC2Nrt859ABk6UCAVY/WYEbAd7FjkdrQL6m24+tfmWYDNRByTJ9uOgU/kw9zqLCAwb//CPvrJdhqjTznWXAg==} - engines: {node: '>=18.0.0'} + '@aws-sdk/signature-v4-multi-region@3.972.0': + resolution: {integrity: sha512-2udiRijmjpN81Pvajje4TsjbXDZNP6K9bYUanBYH8hXa/tZG5qfGCySD+TyX0sgDxCQmEDMg3LaQdfjNHBDEgQ==} + engines: {node: '>=20.0.0'} - '@aws-sdk/util-arn-parser@3.957.0': - resolution: {integrity: sha512-Aj6m+AyrhWyg8YQ4LDPg2/gIfGHCEcoQdBt5DeSFogN5k9mmJPOJ+IAmNSWmWRjpOxEy6eY813RNDI6qS97M0g==} - engines: {node: '>=18.0.0'} + '@aws-sdk/token-providers@3.975.0': + resolution: {integrity: sha512-AWQt64hkVbDQ+CmM09wnvSk2mVyH4iRROkmYkr3/lmUtFNbE2L/fnw26sckZnUcFCsHPqbkQrcsZAnTcBLbH4w==} + engines: {node: '>=20.0.0'} - '@aws-sdk/util-endpoints@3.957.0': - resolution: {integrity: sha512-xwF9K24mZSxcxKS3UKQFeX/dPYkEps9wF1b+MGON7EvnbcucrJGyQyK1v1xFPn1aqXkBTFi+SZaMRx5E5YCVFw==} - engines: {node: '>=18.0.0'} + '@aws-sdk/types@3.972.0': + resolution: {integrity: sha512-U7xBIbLSetONxb2bNzHyDgND3oKGoIfmknrEVnoEU4GUSs+0augUOIn9DIWGUO2ETcRFdsRUnmx9KhPT9Ojbug==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/types@3.973.1': + resolution: {integrity: sha512-DwHBiMNOB468JiX6+i34c+THsKHErYUdNQ3HexeXZvVn4zouLjgaS4FejiGSi2HyBuzuyHg7SuOPmjSvoU9NRg==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/util-arn-parser@3.972.0': + resolution: {integrity: sha512-RM5Mmo/KJ593iMSrALlHEOcc9YOIyOsDmS5x2NLOMdEmzv1o00fcpAkCQ02IGu1eFneBFT7uX0Mpag0HI+Cz2g==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/util-arn-parser@3.972.2': + resolution: {integrity: sha512-VkykWbqMjlSgBFDyrY3nOSqupMc6ivXuGmvci6Q3NnLq5kC+mKQe2QBZ4nrWRE/jqOxeFP2uYzLtwncYYcvQDg==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/util-endpoints@3.972.0': + resolution: {integrity: sha512-6JHsl1V/a1ZW8D8AFfd4R52fwZPnZ5H4U6DS8m/bWT8qad72NvbOFAC7U2cDtFs2TShqUO3TEiX/EJibtY3ijg==} + engines: {node: '>=20.0.0'} '@aws-sdk/util-locate-window@3.957.0': resolution: {integrity: sha512-nhmgKHnNV9K+i9daumaIz8JTLsIIML9PE/HUks5liyrjUzenjW/aHoc7WJ9/Td/gPZtayxFnXQSJRb/fDlBuJw==} engines: {node: '>=18.0.0'} - '@aws-sdk/util-user-agent-browser@3.957.0': - resolution: {integrity: sha512-exueuwxef0lUJRnGaVkNSC674eAiWU07ORhxBnevFFZEKisln+09Qrtw823iyv5I1N8T+wKfh95xvtWQrNKNQw==} + '@aws-sdk/util-user-agent-browser@3.972.2': + resolution: {integrity: sha512-gz76bUyebPZRxIsBHJUd/v+yiyFzm9adHbr8NykP2nm+z/rFyvQneOHajrUejtmnc5tTBeaDPL4X25TnagRk4A==} - '@aws-sdk/util-user-agent-node@3.964.0': - resolution: {integrity: sha512-jgob8Z/bZIh1dwEgLqE12q+aCf0ieLy7anT8bWpqMijMJqsnrPBToa7smSykfom9YHrdOgrQhXswMpE75dzLRw==} - engines: {node: '>=18.0.0'} + '@aws-sdk/util-user-agent-node@3.972.2': + resolution: {integrity: sha512-vnxOc4C6AR7hVbwyFo1YuH0GB6dgJlWt8nIOOJpnzJAWJPkUMPJ9Zv2lnKsSU7TTZbhP2hEO8OZ4PYH59XFv8Q==} + engines: {node: '>=20.0.0'} peerDependencies: aws-crt: '>=1.0.0' peerDependenciesMeta: aws-crt: optional: true - '@aws-sdk/xml-builder@3.957.0': - resolution: {integrity: sha512-Ai5iiQqS8kJ5PjzMhWcLKN0G2yasAkvpnPlq2EnqlIMdB48HsizElt62qcktdxp4neRMyGkFq4NzgmDbXnhRiA==} - engines: {node: '>=18.0.0'} + '@aws-sdk/xml-builder@3.972.0': + resolution: {integrity: sha512-POaGMcXnozzqBUyJM3HLUZ9GR6OKJWPGJEmhtTnxZXt8B6JcJ/6K3xRJ5H/j8oovVLz8Wg6vFxAHv8lvuASxMg==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/xml-builder@3.972.2': + resolution: {integrity: sha512-jGOOV/bV1DhkkUhHiZ3/1GZ67cZyOXaDb7d1rYD6ZiXf5V9tBNOcgqXwRRPvrCbYaFRa1pPMFb3ZjqjWpR3YfA==} + engines: {node: '>=20.0.0'} '@aws/lambda-invoke-store@0.2.2': resolution: {integrity: sha512-C0NBLsIqzDIae8HFw9YIrIBsbc0xTiOtt7fAukGPnqQ/+zZNaq+4jhuccltK0QuWHBnNm/a6kLIRA6GFiM10eg==} engines: {node: '>=18.0.0'} + '@kevisual/load@0.0.6': + resolution: {integrity: sha512-+3YTFehRcZ1haGel5DKYMUwmi5i6f2psyaPZlfkKU/cOXgkpwoG9/BEqPCnPjicKqqnksEpixVRkyHJ+5bjLVA==} + + '@kevisual/use-config@1.0.28': + resolution: {integrity: sha512-ngF+LDbjxpXWrZNmnShIKF/jPpAa+ezV+DcgoZIIzHlRnIjE+rr9sLkN/B7WJbiH9C/j1tQXOILY8ujBqILrow==} + peerDependencies: + dotenv: ^17 + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -211,8 +238,8 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@smithy/abort-controller@4.2.7': - resolution: {integrity: sha512-rzMY6CaKx2qxrbYbqjXWS0plqEy7LOdKHS0bg4ixJ6aoGDPNUcLWk/FRNuCILh7GKLG9TFUXYYeQQldMBBwuyw==} + '@smithy/abort-controller@4.2.8': + resolution: {integrity: sha512-peuVfkYHAmS5ybKxWcfraK7WBBP0J+rkfUcbHJJKQ4ir3UAUNQI+Y4Vt/PqSzGqgloJ5O1dk7+WzNL8wcCSXbw==} engines: {node: '>=18.0.0'} '@smithy/chunked-blob-reader-native@4.2.1': @@ -223,56 +250,56 @@ packages: resolution: {integrity: sha512-WmU0TnhEAJLWvfSeMxBNe5xtbselEO8+4wG0NtZeL8oR21WgH1xiO37El+/Y+H/Ie4SCwBy3MxYWmOYaGgZueA==} engines: {node: '>=18.0.0'} - '@smithy/config-resolver@4.4.5': - resolution: {integrity: sha512-HAGoUAFYsUkoSckuKbCPayECeMim8pOu+yLy1zOxt1sifzEbrsRpYa+mKcMdiHKMeiqOibyPG0sFJnmaV/OGEg==} + '@smithy/config-resolver@4.4.6': + resolution: {integrity: sha512-qJpzYC64kaj3S0fueiu3kXm8xPrR3PcXDPEgnaNMRn0EjNSZFoFjvbUp0YUDsRhN1CB90EnHJtbxWKevnH99UQ==} engines: {node: '>=18.0.0'} - '@smithy/core@3.20.0': - resolution: {integrity: sha512-WsSHCPq/neD5G/MkK4csLI5Y5Pkd9c1NMfpYEKeghSGaD4Ja1qLIohRQf2D5c1Uy5aXp76DeKHkzWZ9KAlHroQ==} + '@smithy/core@3.22.0': + resolution: {integrity: sha512-6vjCHD6vaY8KubeNw2Fg3EK0KLGQYdldG4fYgQmA0xSW0dJ8G2xFhSOdrlUakWVoP5JuWHtFODg3PNd/DN3FDA==} engines: {node: '>=18.0.0'} - '@smithy/credential-provider-imds@4.2.7': - resolution: {integrity: sha512-CmduWdCiILCRNbQWFR0OcZlUPVtyE49Sr8yYL0rZQ4D/wKxiNzBNS/YHemvnbkIWj623fplgkexUd/c9CAKdoA==} + '@smithy/credential-provider-imds@4.2.8': + resolution: {integrity: sha512-FNT0xHS1c/CPN8upqbMFP83+ul5YgdisfCfkZ86Jh2NSmnqw/AJ6x5pEogVCTVvSm7j9MopRU89bmDelxuDMYw==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-codec@4.2.7': - resolution: {integrity: sha512-DrpkEoM3j9cBBWhufqBwnbbn+3nf1N9FP6xuVJ+e220jbactKuQgaZwjwP5CP1t+O94brm2JgVMD2atMGX3xIQ==} + '@smithy/eventstream-codec@4.2.8': + resolution: {integrity: sha512-jS/O5Q14UsufqoGhov7dHLOPCzkYJl9QDzusI2Psh4wyYx/izhzvX9P4D69aTxcdfVhEPhjK+wYyn/PzLjKbbw==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-browser@4.2.7': - resolution: {integrity: sha512-ujzPk8seYoDBmABDE5YqlhQZAXLOrtxtJLrbhHMKjBoG5b4dK4i6/mEU+6/7yXIAkqOO8sJ6YxZl+h0QQ1IJ7g==} + '@smithy/eventstream-serde-browser@4.2.8': + resolution: {integrity: sha512-MTfQT/CRQz5g24ayXdjg53V0mhucZth4PESoA5IhvaWVDTOQLfo8qI9vzqHcPsdd2v6sqfTYqF5L/l+pea5Uyw==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-config-resolver@4.3.7': - resolution: {integrity: sha512-x7BtAiIPSaNaWuzm24Q/mtSkv+BrISO/fmheiJ39PKRNH3RmH2Hph/bUKSOBOBC9unqfIYDhKTHwpyZycLGPVQ==} + '@smithy/eventstream-serde-config-resolver@4.3.8': + resolution: {integrity: sha512-ah12+luBiDGzBruhu3efNy1IlbwSEdNiw8fOZksoKoWW1ZHvO/04MQsdnws/9Aj+5b0YXSSN2JXKy/ClIsW8MQ==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-node@4.2.7': - resolution: {integrity: sha512-roySCtHC5+pQq5lK4be1fZ/WR6s/AxnPaLfCODIPArtN2du8s5Ot4mKVK3pPtijL/L654ws592JHJ1PbZFF6+A==} + '@smithy/eventstream-serde-node@4.2.8': + resolution: {integrity: sha512-cYpCpp29z6EJHa5T9WL0KAlq3SOKUQkcgSoeRfRVwjGgSFl7Uh32eYGt7IDYCX20skiEdRffyDpvF2efEZPC0A==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-universal@4.2.7': - resolution: {integrity: sha512-QVD+g3+icFkThoy4r8wVFZMsIP08taHVKjE6Jpmz8h5CgX/kk6pTODq5cht0OMtcapUx+xrPzUTQdA+TmO0m1g==} + '@smithy/eventstream-serde-universal@4.2.8': + resolution: {integrity: sha512-iJ6YNJd0bntJYnX6s52NC4WFYcZeKrPUr1Kmmr5AwZcwCSzVpS7oavAmxMR7pMq7V+D1G4s9F5NJK0xwOsKAlQ==} engines: {node: '>=18.0.0'} - '@smithy/fetch-http-handler@5.3.8': - resolution: {integrity: sha512-h/Fi+o7mti4n8wx1SR6UHWLaakwHRx29sizvp8OOm7iqwKGFneT06GCSFhml6Bha5BT6ot5pj3CYZnCHhGC2Rg==} + '@smithy/fetch-http-handler@5.3.9': + resolution: {integrity: sha512-I4UhmcTYXBrct03rwzQX1Y/iqQlzVQaPxWjCjula++5EmWq9YGBrx6bbGqluGc1f0XEfhSkiY4jhLgbsJUMKRA==} engines: {node: '>=18.0.0'} - '@smithy/hash-blob-browser@4.2.8': - resolution: {integrity: sha512-07InZontqsM1ggTCPSRgI7d8DirqRrnpL7nIACT4PW0AWrgDiHhjGZzbAE5UtRSiU0NISGUYe7/rri9ZeWyDpw==} + '@smithy/hash-blob-browser@4.2.9': + resolution: {integrity: sha512-m80d/iicI7DlBDxyQP6Th7BW/ejDGiF0bgI754+tiwK0lgMkcaIBgvwwVc7OFbY4eUzpGtnig52MhPAEJ7iNYg==} engines: {node: '>=18.0.0'} - '@smithy/hash-node@4.2.7': - resolution: {integrity: sha512-PU/JWLTBCV1c8FtB8tEFnY4eV1tSfBc7bDBADHfn1K+uRbPgSJ9jnJp0hyjiFN2PMdPzxsf1Fdu0eo9fJ760Xw==} + '@smithy/hash-node@4.2.8': + resolution: {integrity: sha512-7ZIlPbmaDGxVoxErDZnuFG18WekhbA/g2/i97wGj+wUBeS6pcUeAym8u4BXh/75RXWhgIJhyC11hBzig6MljwA==} engines: {node: '>=18.0.0'} - '@smithy/hash-stream-node@4.2.7': - resolution: {integrity: sha512-ZQVoAwNYnFMIbd4DUc517HuwNelJUY6YOzwqrbcAgCnVn+79/OK7UjwA93SPpdTOpKDVkLIzavWm/Ck7SmnDPQ==} + '@smithy/hash-stream-node@4.2.8': + resolution: {integrity: sha512-v0FLTXgHrTeheYZFGhR+ehX5qUm4IQsjAiL9qehad2cyjMWcN2QG6/4mSwbSgEQzI7jwfoXj7z4fxZUx/Mhj2w==} engines: {node: '>=18.0.0'} - '@smithy/invalid-dependency@4.2.7': - resolution: {integrity: sha512-ncvgCr9a15nPlkhIUx3CU4d7E7WEuVJOV7fS7nnK2hLtPK9tYRBkMHQbhXU1VvvKeBm/O0x26OEoBq+ngFpOEQ==} + '@smithy/invalid-dependency@4.2.8': + resolution: {integrity: sha512-N9iozRybwAQ2dn9Fot9kI6/w9vos2oTXLhtK7ovGqwZjlOcxu6XhPlpLpC+INsxktqHinn5gS2DXDjDF2kG5sQ==} engines: {node: '>=18.0.0'} '@smithy/is-array-buffer@2.2.0': @@ -283,76 +310,76 @@ packages: resolution: {integrity: sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ==} engines: {node: '>=18.0.0'} - '@smithy/md5-js@4.2.7': - resolution: {integrity: sha512-Wv6JcUxtOLTnxvNjDnAiATUsk8gvA6EeS8zzHig07dotpByYsLot+m0AaQEniUBjx97AC41MQR4hW0baraD1Xw==} + '@smithy/md5-js@4.2.8': + resolution: {integrity: sha512-oGMaLj4tVZzLi3itBa9TCswgMBr7k9b+qKYowQ6x1rTyTuO1IU2YHdHUa+891OsOH+wCsH7aTPRsTJO3RMQmjQ==} engines: {node: '>=18.0.0'} - '@smithy/middleware-content-length@4.2.7': - resolution: {integrity: sha512-GszfBfCcvt7kIbJ41LuNa5f0wvQCHhnGx/aDaZJCCT05Ld6x6U2s0xsc/0mBFONBZjQJp2U/0uSJ178OXOwbhg==} + '@smithy/middleware-content-length@4.2.8': + resolution: {integrity: sha512-RO0jeoaYAB1qBRhfVyq0pMgBoUK34YEJxVxyjOWYZiOKOq2yMZ4MnVXMZCUDenpozHue207+9P5ilTV1zeda0A==} engines: {node: '>=18.0.0'} - '@smithy/middleware-endpoint@4.4.1': - resolution: {integrity: sha512-gpLspUAoe6f1M6H0u4cVuFzxZBrsGZmjx2O9SigurTx4PbntYa4AJ+o0G0oGm1L2oSX6oBhcGHwrfJHup2JnJg==} + '@smithy/middleware-endpoint@4.4.12': + resolution: {integrity: sha512-9JMKHVJtW9RysTNjcBZQHDwB0p3iTP6B1IfQV4m+uCevkVd/VuLgwfqk5cnI4RHcp4cPwoIvxQqN4B1sxeHo8Q==} engines: {node: '>=18.0.0'} - '@smithy/middleware-retry@4.4.17': - resolution: {integrity: sha512-MqbXK6Y9uq17h+4r0ogu/sBT6V/rdV+5NvYL7ZV444BKfQygYe8wAhDrVXagVebN6w2RE0Fm245l69mOsPGZzg==} + '@smithy/middleware-retry@4.4.29': + resolution: {integrity: sha512-bmTn75a4tmKRkC5w61yYQLb3DmxNzB8qSVu9SbTYqW6GAL0WXO2bDZuMAn/GJSbOdHEdjZvWxe+9Kk015bw6Cg==} engines: {node: '>=18.0.0'} - '@smithy/middleware-serde@4.2.8': - resolution: {integrity: sha512-8rDGYen5m5+NV9eHv9ry0sqm2gI6W7mc1VSFMtn6Igo25S507/HaOX9LTHAS2/J32VXD0xSzrY0H5FJtOMS4/w==} + '@smithy/middleware-serde@4.2.9': + resolution: {integrity: sha512-eMNiej0u/snzDvlqRGSN3Vl0ESn3838+nKyVfF2FKNXFbi4SERYT6PR392D39iczngbqqGG0Jl1DlCnp7tBbXQ==} engines: {node: '>=18.0.0'} - '@smithy/middleware-stack@4.2.7': - resolution: {integrity: sha512-bsOT0rJ+HHlZd9crHoS37mt8qRRN/h9jRve1SXUhVbkRzu0QaNYZp1i1jha4n098tsvROjcwfLlfvcFuJSXEsw==} + '@smithy/middleware-stack@4.2.8': + resolution: {integrity: sha512-w6LCfOviTYQjBctOKSwy6A8FIkQy7ICvglrZFl6Bw4FmcQ1Z420fUtIhxaUZZshRe0VCq4kvDiPiXrPZAe8oRA==} engines: {node: '>=18.0.0'} - '@smithy/node-config-provider@4.3.7': - resolution: {integrity: sha512-7r58wq8sdOcrwWe+klL9y3bc4GW1gnlfnFOuL7CXa7UzfhzhxKuzNdtqgzmTV+53lEp9NXh5hY/S4UgjLOzPfw==} + '@smithy/node-config-provider@4.3.8': + resolution: {integrity: sha512-aFP1ai4lrbVlWjfpAfRSL8KFcnJQYfTl5QxLJXY32vghJrDuFyPZ6LtUL+JEGYiFRG1PfPLHLoxj107ulncLIg==} engines: {node: '>=18.0.0'} - '@smithy/node-http-handler@4.4.7': - resolution: {integrity: sha512-NELpdmBOO6EpZtWgQiHjoShs1kmweaiNuETUpuup+cmm/xJYjT4eUjfhrXRP4jCOaAsS3c3yPsP3B+K+/fyPCQ==} + '@smithy/node-http-handler@4.4.8': + resolution: {integrity: sha512-q9u+MSbJVIJ1QmJ4+1u+cERXkrhuILCBDsJUBAW1MPE6sFonbCNaegFuwW9ll8kh5UdyY3jOkoOGlc7BesoLpg==} engines: {node: '>=18.0.0'} - '@smithy/property-provider@4.2.7': - resolution: {integrity: sha512-jmNYKe9MGGPoSl/D7JDDs1C8b3dC8f/w78LbaVfoTtWy4xAd5dfjaFG9c9PWPihY4ggMQNQSMtzU77CNgAJwmA==} + '@smithy/property-provider@4.2.8': + resolution: {integrity: sha512-EtCTbyIveCKeOXDSWSdze3k612yCPq1YbXsbqX3UHhkOSW8zKsM9NOJG5gTIya0vbY2DIaieG8pKo1rITHYL0w==} engines: {node: '>=18.0.0'} - '@smithy/protocol-http@5.3.7': - resolution: {integrity: sha512-1r07pb994I20dD/c2seaZhoCuNYm0rWrvBxhCQ70brNh11M5Ml2ew6qJVo0lclB3jMIXirD4s2XRXRe7QEi0xA==} + '@smithy/protocol-http@5.3.8': + resolution: {integrity: sha512-QNINVDhxpZ5QnP3aviNHQFlRogQZDfYlCkQT+7tJnErPQbDhysondEjhikuANxgMsZrkGeiAxXy4jguEGsDrWQ==} engines: {node: '>=18.0.0'} - '@smithy/querystring-builder@4.2.7': - resolution: {integrity: sha512-eKONSywHZxK4tBxe2lXEysh8wbBdvDWiA+RIuaxZSgCMmA0zMgoDpGLJhnyj+c0leOQprVnXOmcB4m+W9Rw7sg==} + '@smithy/querystring-builder@4.2.8': + resolution: {integrity: sha512-Xr83r31+DrE8CP3MqPgMJl+pQlLLmOfiEUnoyAlGzzJIrEsbKsPy1hqH0qySaQm4oWrCBlUqRt+idEgunKB+iw==} engines: {node: '>=18.0.0'} - '@smithy/querystring-parser@4.2.7': - resolution: {integrity: sha512-3X5ZvzUHmlSTHAXFlswrS6EGt8fMSIxX/c3Rm1Pni3+wYWB6cjGocmRIoqcQF9nU5OgGmL0u7l9m44tSUpfj9w==} + '@smithy/querystring-parser@4.2.8': + resolution: {integrity: sha512-vUurovluVy50CUlazOiXkPq40KGvGWSdmusa3130MwrR1UNnNgKAlj58wlOe61XSHRpUfIIh6cE0zZ8mzKaDPA==} engines: {node: '>=18.0.0'} - '@smithy/service-error-classification@4.2.7': - resolution: {integrity: sha512-YB7oCbukqEb2Dlh3340/8g8vNGbs/QsNNRms+gv3N2AtZz9/1vSBx6/6tpwQpZMEJFs7Uq8h4mmOn48ZZ72MkA==} + '@smithy/service-error-classification@4.2.8': + resolution: {integrity: sha512-mZ5xddodpJhEt3RkCjbmUQuXUOaPNTkbMGR0bcS8FE0bJDLMZlhmpgrvPNCYglVw5rsYTpSnv19womw9WWXKQQ==} engines: {node: '>=18.0.0'} - '@smithy/shared-ini-file-loader@4.4.2': - resolution: {integrity: sha512-M7iUUff/KwfNunmrgtqBfvZSzh3bmFgv/j/t1Y1dQ+8dNo34br1cqVEqy6v0mYEgi0DkGO7Xig0AnuOaEGVlcg==} + '@smithy/shared-ini-file-loader@4.4.3': + resolution: {integrity: sha512-DfQjxXQnzC5UbCUPeC3Ie8u+rIWZTvuDPAGU/BxzrOGhRvgUanaP68kDZA+jaT3ZI+djOf+4dERGlm9mWfFDrg==} engines: {node: '>=18.0.0'} - '@smithy/signature-v4@5.3.7': - resolution: {integrity: sha512-9oNUlqBlFZFOSdxgImA6X5GFuzE7V2H7VG/7E70cdLhidFbdtvxxt81EHgykGK5vq5D3FafH//X+Oy31j3CKOg==} + '@smithy/signature-v4@5.3.8': + resolution: {integrity: sha512-6A4vdGj7qKNRF16UIcO8HhHjKW27thsxYci+5r/uVRkdcBEkOEiY8OMPuydLX4QHSrJqGHPJzPRwwVTqbLZJhg==} engines: {node: '>=18.0.0'} - '@smithy/smithy-client@4.10.2': - resolution: {integrity: sha512-D5z79xQWpgrGpAHb054Fn2CCTQZpog7JELbVQ6XAvXs5MNKWf28U9gzSBlJkOyMl9LA1TZEjRtwvGXfP0Sl90g==} + '@smithy/smithy-client@4.11.1': + resolution: {integrity: sha512-SERgNg5Z1U+jfR6/2xPYjSEHY1t3pyTHC/Ma3YQl6qWtmiL42bvNId3W/oMUWIwu7ekL2FMPdqAmwbQegM7HeQ==} engines: {node: '>=18.0.0'} - '@smithy/types@4.11.0': - resolution: {integrity: sha512-mlrmL0DRDVe3mNrjTcVcZEgkFmufITfUAPBEA+AHYiIeYyJebso/He1qLbP3PssRe22KUzLRpQSdBPbXdgZ2VA==} + '@smithy/types@4.12.0': + resolution: {integrity: sha512-9YcuJVTOBDjg9LWo23Qp0lTQ3D7fQsQtwle0jVfpbUHy9qBwCEgKuVH4FqFB3VYu0nwdHKiEMA+oXz7oV8X1kw==} engines: {node: '>=18.0.0'} - '@smithy/url-parser@4.2.7': - resolution: {integrity: sha512-/RLtVsRV4uY3qPWhBDsjwahAtt3x2IsMGnP5W1b2VZIe+qgCqkLxI1UOHDZp1Q1QSOrdOR32MF3Ph2JfWT1VHg==} + '@smithy/url-parser@4.2.8': + resolution: {integrity: sha512-NQho9U68TGMEU639YkXnVMV3GEFFULmmaWdlu1E9qzyIePOHsoSnagTGSDv1Zi8DCNN6btxOSdgmy5E/hsZwhA==} engines: {node: '>=18.0.0'} '@smithy/util-base64@4.3.0': @@ -379,32 +406,32 @@ packages: resolution: {integrity: sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q==} engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-browser@4.3.16': - resolution: {integrity: sha512-/eiSP3mzY3TsvUOYMeL4EqUX6fgUOj2eUOU4rMMgVbq67TiRLyxT7Xsjxq0bW3OwuzK009qOwF0L2OgJqperAQ==} + '@smithy/util-defaults-mode-browser@4.3.28': + resolution: {integrity: sha512-/9zcatsCao9h6g18p/9vH9NIi5PSqhCkxQ/tb7pMgRFnqYp9XUOyOlGPDMHzr8n5ih6yYgwJEY2MLEobUgi47w==} engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-node@4.2.19': - resolution: {integrity: sha512-3a4+4mhf6VycEJyHIQLypRbiwG6aJvbQAeRAVXydMmfweEPnLLabRbdyo/Pjw8Rew9vjsh5WCdhmDaHkQnhhhA==} + '@smithy/util-defaults-mode-node@4.2.31': + resolution: {integrity: sha512-JTvoApUXA5kbpceI2vuqQzRjeTbLpx1eoa5R/YEZbTgtxvIB7AQZxFJ0SEyfCpgPCyVV9IT7we+ytSeIB3CyWA==} engines: {node: '>=18.0.0'} - '@smithy/util-endpoints@3.2.7': - resolution: {integrity: sha512-s4ILhyAvVqhMDYREeTS68R43B1V5aenV5q/V1QpRQJkCXib5BPRo4s7uNdzGtIKxaPHCfU/8YkvPAEvTpxgspg==} + '@smithy/util-endpoints@3.2.8': + resolution: {integrity: sha512-8JaVTn3pBDkhZgHQ8R0epwWt+BqPSLCjdjXXusK1onwJlRuN69fbvSK66aIKKO7SwVFM6x2J2ox5X8pOaWcUEw==} engines: {node: '>=18.0.0'} '@smithy/util-hex-encoding@4.2.0': resolution: {integrity: sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw==} engines: {node: '>=18.0.0'} - '@smithy/util-middleware@4.2.7': - resolution: {integrity: sha512-i1IkpbOae6NvIKsEeLLM9/2q4X+M90KV3oCFgWQI4q0Qz+yUZvsr+gZPdAEAtFhWQhAHpTsJO8DRJPuwVyln+w==} + '@smithy/util-middleware@4.2.8': + resolution: {integrity: sha512-PMqfeJxLcNPMDgvPbbLl/2Vpin+luxqTGPpW3NAQVLbRrFRzTa4rNAASYeIGjRV9Ytuhzny39SpyU04EQreF+A==} engines: {node: '>=18.0.0'} - '@smithy/util-retry@4.2.7': - resolution: {integrity: sha512-SvDdsQyF5CIASa4EYVT02LukPHVzAgUA4kMAuZ97QJc2BpAqZfA4PINB8/KOoCXEw9tsuv/jQjMeaHFvxdLNGg==} + '@smithy/util-retry@4.2.8': + resolution: {integrity: sha512-CfJqwvoRY0kTGe5AkQokpURNCT1u/MkRzMTASWMPPo2hNSnKtF1D45dQl3DE2LKLr4m+PW9mCeBMJr5mCAVThg==} engines: {node: '>=18.0.0'} - '@smithy/util-stream@4.5.8': - resolution: {integrity: sha512-ZnnBhTapjM0YPGUSmOs0Mcg/Gg87k503qG4zU2v/+Js2Gu+daKOJMeqcQns8ajepY8tgzzfYxl6kQyZKml6O2w==} + '@smithy/util-stream@4.5.10': + resolution: {integrity: sha512-jbqemy51UFSZSp2y0ZmRfckmrzuKww95zT9BYMmuJ8v3altGcqjwoV1tzpOwuHaKrwQrCjIzOib499ymr2f98g==} engines: {node: '>=18.0.0'} '@smithy/util-uri-escape@4.2.0': @@ -419,22 +446,19 @@ packages: resolution: {integrity: sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==} engines: {node: '>=18.0.0'} - '@smithy/util-waiter@4.2.7': - resolution: {integrity: sha512-vHJFXi9b7kUEpHWUCY3Twl+9NPOZvQ0SAi+Ewtn48mbiJk4JY9MZmKQjGB4SCvVb9WPiSphZJYY6RIbs+grrzw==} + '@smithy/util-waiter@4.2.8': + resolution: {integrity: sha512-n+lahlMWk+aejGuax7DPWtqav8HYnWxQwR+LCG2BgCUmaGcTe9qZCFsmw8TMg9iG75HOwhrJCX9TCJRLH+Yzqg==} engines: {node: '>=18.0.0'} '@smithy/uuid@1.1.0': resolution: {integrity: sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw==} engines: {node: '>=18.0.0'} - '@types/bun@1.3.5': - resolution: {integrity: sha512-RnygCqNrd3srIPEWBd5LFeUYG7plCoH2Yw9WaZGyNmdTEei+gWaHqydbaIRkIkcbXwhBT94q78QljxN0Sk838w==} + '@types/bun@1.3.8': + resolution: {integrity: sha512-3LvWJ2q5GerAXYxO2mffLTqOzEu5qnhEAlh48Vnu8WQfnmSwbgagjGZV6BoHKJztENYEDn6QmVd949W4uESRJA==} - '@types/node@25.0.3': - resolution: {integrity: sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==} - - '@zxing/text-encoding@0.9.0': - resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==} + '@types/node@25.1.0': + resolution: {integrity: sha512-t7frlewr6+cbx+9Ohpl0NOTKXZNV9xHRmNOvql47BFJKcEG1CxtxlPEEe+gR9uhVWM4DwhnvTF110mIL4yP9RA==} ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} @@ -444,16 +468,6 @@ packages: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - async@3.2.6: - resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} - - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} - - block-stream2@2.1.0: - resolution: {integrity: sha512-suhjmLI57Ewpmq00qaygS8UgEq2ly2PCItenIyhMqVjo4t4pGzqMvfgJuX8iWTeSDdfSSqS6j38fL4ToNL7Pfg==} - bowser@2.13.1: resolution: {integrity: sha512-OHawaAbjwx6rqICCKgSG0SAnT05bzd7ppyKLVUITZpANBaaMFBAsaNkto3LoQ31tyFP5kNujE8Cdx85G9VzOkw==} @@ -461,30 +475,11 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browser-or-node@2.1.1: - resolution: {integrity: sha512-8CVjaLJGuSKMVTxJ2DpBl5XnlNDiT4cQFeuCJJrvJmts9YrTZDizTX7PjC2s6W4x+MBGZeEY6dGMrF04/6Hgqg==} - - buffer-crc32@1.0.0: - resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} - engines: {node: '>=8.0.0'} - bun-plugin-dts@0.3.0: resolution: {integrity: sha512-QpiAOKfPcdOToxySOqRY8FwL+brTvyXEHWzrSCRKt4Pv7Z4pnUrhK9tFtM7Ndm7ED09B/0cGXnHJKqmekr/ERw==} - bun-types@1.3.5: - resolution: {integrity: sha512-inmAYe2PFLs0SUbFOWSVD24sg1jFlMPxOjOSSCYqUgn4Hsc3rDc7dFvfVYjFPNHtov6kgUeulV4SxbuIV/stPw==} - - call-bind-apply-helpers@1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} - engines: {node: '>= 0.4'} - - call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} - engines: {node: '>= 0.4'} - - call-bound@1.0.4: - resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} - engines: {node: '>= 0.4'} + bun-types@1.3.8: + resolution: {integrity: sha512-fL99nxdOWvV4LqjmC+8Q9kW3M4QTtTR1eePs94v5ctGqU8OeceWrSUaRw3JYb7tU3FkMIAjkueehrHPPPGKi5Q==} cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} @@ -500,14 +495,6 @@ packages: common-path-prefix@3.0.0: resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} - decode-uri-component@0.2.2: - resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} - engines: {node: '>=0.10'} - - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - dotenv@17.2.3: resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==} engines: {node: '>=12'} @@ -517,27 +504,11 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} - emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - - es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} - engines: {node: '>= 0.4'} - - es-toolkit@1.43.0: - resolution: {integrity: sha512-SKCT8AsWvYzBBuUqMk4NPwFlSdqLpJwmy6AP322ERn8W2YLIB6JBXnwMI2Qsh2gfphT3q7EKAxKb23cvFHFwKA==} + es-toolkit@1.44.0: + resolution: {integrity: sha512-6penXeZalaV88MM3cGkFZZfOoLGWshWWfdy0tWw/RlVVyhvMaWSBTOvXNeiW3e5FwdS5ePW0LGEu17zT139ktg==} escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} @@ -550,10 +521,6 @@ packages: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} - fast-xml-parser@4.5.3: - resolution: {integrity: sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig==} - hasBin: true - fast-xml-parser@5.2.5: resolution: {integrity: sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==} hasBin: true @@ -565,33 +532,10 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - filter-obj@1.1.0: - resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} - engines: {node: '>=0.10.0'} - - for-each@0.3.5: - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} - engines: {node: '>= 0.4'} - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - generator-function@2.0.1: - resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} - engines: {node: '>= 0.4'} - get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-intrinsic@1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} - engines: {node: '>= 0.4'} - - get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} - get-tsconfig@4.13.0: resolution: {integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==} @@ -599,40 +543,6 @@ packages: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} - gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} - - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - - has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} - - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - ipaddr.js@2.3.0: - resolution: {integrity: sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg==} - engines: {node: '>= 10'} - - is-arguments@1.2.0: - resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} - engines: {node: '>= 0.4'} - - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -641,10 +551,6 @@ packages: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - is-generator-function@1.1.2: - resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} - engines: {node: '>= 0.4'} - is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -653,21 +559,6 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - is-regex@1.2.1: - resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} - engines: {node: '>= 0.4'} - - is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} - engines: {node: '>= 0.4'} - - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} - merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -676,37 +567,13 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - - minio@8.0.6: - resolution: {integrity: sha512-sOeh2/b/XprRmEtYsnNRFtOqNRTPDvYtMWh+spWlfsuCV/+IdxNeKVUMKLqI7b5Dr07ZqCPuaRGU/rB9pZYVdQ==} - engines: {node: ^16 || ^18 || >=20} - picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - possible-typed-array-names@1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} - engines: {node: '>= 0.4'} - - query-string@7.1.3: - resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} - engines: {node: '>=6'} - queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -721,54 +588,17 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - safe-regex-test@1.1.0: - resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} - engines: {node: '>= 0.4'} - - sax@1.4.3: - resolution: {integrity: sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==} - - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - - split-on-first@1.1.0: - resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} - engines: {node: '>=6'} - - stream-chain@2.2.5: - resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==} - - stream-json@1.9.1: - resolution: {integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==} - - strict-uri-encode@2.0.0: - resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} - engines: {node: '>=4'} - string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} - strnum@1.1.2: - resolution: {integrity: sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==} - strnum@2.1.2: resolution: {integrity: sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ==} - through2@4.0.2: - resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} - to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -784,31 +614,10 @@ packages: undici-types@7.16.0: resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - util@0.12.5: - resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} - - web-encoding@1.1.5: - resolution: {integrity: sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==} - - which-typed-array@1.1.19: - resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} - engines: {node: '>= 0.4'} - wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} - xml2js@0.6.2: - resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==} - engines: {node: '>=4.0.0'} - - xmlbuilder@11.0.1: - resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} - engines: {node: '>=4.0'} - y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -826,20 +635,20 @@ snapshots: '@aws-crypto/crc32@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.957.0 + '@aws-sdk/types': 3.973.1 tslib: 2.8.1 '@aws-crypto/crc32c@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.957.0 + '@aws-sdk/types': 3.973.1 tslib: 2.8.1 '@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.957.0 + '@aws-sdk/types': 3.973.1 '@aws-sdk/util-locate-window': 3.957.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 @@ -849,7 +658,7 @@ snapshots: '@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.957.0 + '@aws-sdk/types': 3.973.1 '@aws-sdk/util-locate-window': 3.957.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 @@ -857,7 +666,7 @@ snapshots: '@aws-crypto/sha256-js@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.957.0 + '@aws-sdk/types': 3.973.1 tslib: 2.8.1 '@aws-crypto/supports-web-crypto@5.2.0': @@ -866,448 +675,505 @@ snapshots: '@aws-crypto/util@5.2.0': dependencies: - '@aws-sdk/types': 3.957.0 + '@aws-sdk/types': 3.973.1 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 - '@aws-sdk/client-s3@3.964.0': + '@aws-sdk/client-s3@3.978.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/core': 3.964.0 - '@aws-sdk/credential-provider-node': 3.964.0 - '@aws-sdk/middleware-bucket-endpoint': 3.957.0 - '@aws-sdk/middleware-expect-continue': 3.957.0 - '@aws-sdk/middleware-flexible-checksums': 3.964.0 - '@aws-sdk/middleware-host-header': 3.957.0 - '@aws-sdk/middleware-location-constraint': 3.957.0 - '@aws-sdk/middleware-logger': 3.957.0 - '@aws-sdk/middleware-recursion-detection': 3.957.0 - '@aws-sdk/middleware-sdk-s3': 3.964.0 - '@aws-sdk/middleware-ssec': 3.957.0 - '@aws-sdk/middleware-user-agent': 3.964.0 - '@aws-sdk/region-config-resolver': 3.957.0 - '@aws-sdk/signature-v4-multi-region': 3.964.0 - '@aws-sdk/types': 3.957.0 - '@aws-sdk/util-endpoints': 3.957.0 - '@aws-sdk/util-user-agent-browser': 3.957.0 - '@aws-sdk/util-user-agent-node': 3.964.0 - '@smithy/config-resolver': 4.4.5 - '@smithy/core': 3.20.0 - '@smithy/eventstream-serde-browser': 4.2.7 - '@smithy/eventstream-serde-config-resolver': 4.3.7 - '@smithy/eventstream-serde-node': 4.2.7 - '@smithy/fetch-http-handler': 5.3.8 - '@smithy/hash-blob-browser': 4.2.8 - '@smithy/hash-node': 4.2.7 - '@smithy/hash-stream-node': 4.2.7 - '@smithy/invalid-dependency': 4.2.7 - '@smithy/md5-js': 4.2.7 - '@smithy/middleware-content-length': 4.2.7 - '@smithy/middleware-endpoint': 4.4.1 - '@smithy/middleware-retry': 4.4.17 - '@smithy/middleware-serde': 4.2.8 - '@smithy/middleware-stack': 4.2.7 - '@smithy/node-config-provider': 4.3.7 - '@smithy/node-http-handler': 4.4.7 - '@smithy/protocol-http': 5.3.7 - '@smithy/smithy-client': 4.10.2 - '@smithy/types': 4.11.0 - '@smithy/url-parser': 4.2.7 + '@aws-sdk/core': 3.973.4 + '@aws-sdk/credential-provider-node': 3.972.3 + '@aws-sdk/middleware-bucket-endpoint': 3.972.2 + '@aws-sdk/middleware-expect-continue': 3.972.2 + '@aws-sdk/middleware-flexible-checksums': 3.972.2 + '@aws-sdk/middleware-host-header': 3.972.2 + '@aws-sdk/middleware-location-constraint': 3.972.2 + '@aws-sdk/middleware-logger': 3.972.2 + '@aws-sdk/middleware-recursion-detection': 3.972.2 + '@aws-sdk/middleware-sdk-s3': 3.972.4 + '@aws-sdk/middleware-ssec': 3.972.2 + '@aws-sdk/middleware-user-agent': 3.972.4 + '@aws-sdk/region-config-resolver': 3.972.2 + '@aws-sdk/signature-v4-multi-region': 3.972.0 + '@aws-sdk/types': 3.973.1 + '@aws-sdk/util-endpoints': 3.972.0 + '@aws-sdk/util-user-agent-browser': 3.972.2 + '@aws-sdk/util-user-agent-node': 3.972.2 + '@smithy/config-resolver': 4.4.6 + '@smithy/core': 3.22.0 + '@smithy/eventstream-serde-browser': 4.2.8 + '@smithy/eventstream-serde-config-resolver': 4.3.8 + '@smithy/eventstream-serde-node': 4.2.8 + '@smithy/fetch-http-handler': 5.3.9 + '@smithy/hash-blob-browser': 4.2.9 + '@smithy/hash-node': 4.2.8 + '@smithy/hash-stream-node': 4.2.8 + '@smithy/invalid-dependency': 4.2.8 + '@smithy/md5-js': 4.2.8 + '@smithy/middleware-content-length': 4.2.8 + '@smithy/middleware-endpoint': 4.4.12 + '@smithy/middleware-retry': 4.4.29 + '@smithy/middleware-serde': 4.2.9 + '@smithy/middleware-stack': 4.2.8 + '@smithy/node-config-provider': 4.3.8 + '@smithy/node-http-handler': 4.4.8 + '@smithy/protocol-http': 5.3.8 + '@smithy/smithy-client': 4.11.1 + '@smithy/types': 4.12.0 + '@smithy/url-parser': 4.2.8 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.16 - '@smithy/util-defaults-mode-node': 4.2.19 - '@smithy/util-endpoints': 3.2.7 - '@smithy/util-middleware': 4.2.7 - '@smithy/util-retry': 4.2.7 - '@smithy/util-stream': 4.5.8 + '@smithy/util-defaults-mode-browser': 4.3.28 + '@smithy/util-defaults-mode-node': 4.2.31 + '@smithy/util-endpoints': 3.2.8 + '@smithy/util-middleware': 4.2.8 + '@smithy/util-retry': 4.2.8 + '@smithy/util-stream': 4.5.10 '@smithy/util-utf8': 4.2.0 - '@smithy/util-waiter': 4.2.7 + '@smithy/util-waiter': 4.2.8 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso@3.964.0': + '@aws-sdk/client-sso@3.975.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.964.0 - '@aws-sdk/middleware-host-header': 3.957.0 - '@aws-sdk/middleware-logger': 3.957.0 - '@aws-sdk/middleware-recursion-detection': 3.957.0 - '@aws-sdk/middleware-user-agent': 3.964.0 - '@aws-sdk/region-config-resolver': 3.957.0 - '@aws-sdk/types': 3.957.0 - '@aws-sdk/util-endpoints': 3.957.0 - '@aws-sdk/util-user-agent-browser': 3.957.0 - '@aws-sdk/util-user-agent-node': 3.964.0 - '@smithy/config-resolver': 4.4.5 - '@smithy/core': 3.20.0 - '@smithy/fetch-http-handler': 5.3.8 - '@smithy/hash-node': 4.2.7 - '@smithy/invalid-dependency': 4.2.7 - '@smithy/middleware-content-length': 4.2.7 - '@smithy/middleware-endpoint': 4.4.1 - '@smithy/middleware-retry': 4.4.17 - '@smithy/middleware-serde': 4.2.8 - '@smithy/middleware-stack': 4.2.7 - '@smithy/node-config-provider': 4.3.7 - '@smithy/node-http-handler': 4.4.7 - '@smithy/protocol-http': 5.3.7 - '@smithy/smithy-client': 4.10.2 - '@smithy/types': 4.11.0 - '@smithy/url-parser': 4.2.7 + '@aws-sdk/core': 3.973.4 + '@aws-sdk/middleware-host-header': 3.972.2 + '@aws-sdk/middleware-logger': 3.972.2 + '@aws-sdk/middleware-recursion-detection': 3.972.2 + '@aws-sdk/middleware-user-agent': 3.972.4 + '@aws-sdk/region-config-resolver': 3.972.2 + '@aws-sdk/types': 3.973.1 + '@aws-sdk/util-endpoints': 3.972.0 + '@aws-sdk/util-user-agent-browser': 3.972.2 + '@aws-sdk/util-user-agent-node': 3.972.2 + '@smithy/config-resolver': 4.4.6 + '@smithy/core': 3.22.0 + '@smithy/fetch-http-handler': 5.3.9 + '@smithy/hash-node': 4.2.8 + '@smithy/invalid-dependency': 4.2.8 + '@smithy/middleware-content-length': 4.2.8 + '@smithy/middleware-endpoint': 4.4.12 + '@smithy/middleware-retry': 4.4.29 + '@smithy/middleware-serde': 4.2.9 + '@smithy/middleware-stack': 4.2.8 + '@smithy/node-config-provider': 4.3.8 + '@smithy/node-http-handler': 4.4.8 + '@smithy/protocol-http': 5.3.8 + '@smithy/smithy-client': 4.11.1 + '@smithy/types': 4.12.0 + '@smithy/url-parser': 4.2.8 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.16 - '@smithy/util-defaults-mode-node': 4.2.19 - '@smithy/util-endpoints': 3.2.7 - '@smithy/util-middleware': 4.2.7 - '@smithy/util-retry': 4.2.7 + '@smithy/util-defaults-mode-browser': 4.3.28 + '@smithy/util-defaults-mode-node': 4.2.31 + '@smithy/util-endpoints': 3.2.8 + '@smithy/util-middleware': 4.2.8 + '@smithy/util-retry': 4.2.8 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/core@3.964.0': + '@aws-sdk/core@3.972.0': dependencies: - '@aws-sdk/types': 3.957.0 - '@aws-sdk/xml-builder': 3.957.0 - '@smithy/core': 3.20.0 - '@smithy/node-config-provider': 4.3.7 - '@smithy/property-provider': 4.2.7 - '@smithy/protocol-http': 5.3.7 - '@smithy/signature-v4': 5.3.7 - '@smithy/smithy-client': 4.10.2 - '@smithy/types': 4.11.0 + '@aws-sdk/types': 3.972.0 + '@aws-sdk/xml-builder': 3.972.0 + '@smithy/core': 3.22.0 + '@smithy/node-config-provider': 4.3.8 + '@smithy/property-provider': 4.2.8 + '@smithy/protocol-http': 5.3.8 + '@smithy/signature-v4': 5.3.8 + '@smithy/smithy-client': 4.11.1 + '@smithy/types': 4.12.0 '@smithy/util-base64': 4.3.0 - '@smithy/util-middleware': 4.2.7 + '@smithy/util-middleware': 4.2.8 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@aws-sdk/crc64-nvme@3.957.0': + '@aws-sdk/core@3.973.4': dependencies: - '@smithy/types': 4.11.0 + '@aws-sdk/types': 3.973.1 + '@aws-sdk/xml-builder': 3.972.2 + '@smithy/core': 3.22.0 + '@smithy/node-config-provider': 4.3.8 + '@smithy/property-provider': 4.2.8 + '@smithy/protocol-http': 5.3.8 + '@smithy/signature-v4': 5.3.8 + '@smithy/smithy-client': 4.11.1 + '@smithy/types': 4.12.0 + '@smithy/util-base64': 4.3.0 + '@smithy/util-middleware': 4.2.8 + '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@aws-sdk/credential-provider-env@3.964.0': + '@aws-sdk/crc64-nvme@3.972.0': dependencies: - '@aws-sdk/core': 3.964.0 - '@aws-sdk/types': 3.957.0 - '@smithy/property-provider': 4.2.7 - '@smithy/types': 4.11.0 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/credential-provider-http@3.964.0': + '@aws-sdk/credential-provider-env@3.972.2': dependencies: - '@aws-sdk/core': 3.964.0 - '@aws-sdk/types': 3.957.0 - '@smithy/fetch-http-handler': 5.3.8 - '@smithy/node-http-handler': 4.4.7 - '@smithy/property-provider': 4.2.7 - '@smithy/protocol-http': 5.3.7 - '@smithy/smithy-client': 4.10.2 - '@smithy/types': 4.11.0 - '@smithy/util-stream': 4.5.8 + '@aws-sdk/core': 3.973.4 + '@aws-sdk/types': 3.973.1 + '@smithy/property-provider': 4.2.8 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/credential-provider-ini@3.964.0': + '@aws-sdk/credential-provider-http@3.972.4': dependencies: - '@aws-sdk/core': 3.964.0 - '@aws-sdk/credential-provider-env': 3.964.0 - '@aws-sdk/credential-provider-http': 3.964.0 - '@aws-sdk/credential-provider-login': 3.964.0 - '@aws-sdk/credential-provider-process': 3.964.0 - '@aws-sdk/credential-provider-sso': 3.964.0 - '@aws-sdk/credential-provider-web-identity': 3.964.0 - '@aws-sdk/nested-clients': 3.964.0 - '@aws-sdk/types': 3.957.0 - '@smithy/credential-provider-imds': 4.2.7 - '@smithy/property-provider': 4.2.7 - '@smithy/shared-ini-file-loader': 4.4.2 - '@smithy/types': 4.11.0 + '@aws-sdk/core': 3.973.4 + '@aws-sdk/types': 3.973.1 + '@smithy/fetch-http-handler': 5.3.9 + '@smithy/node-http-handler': 4.4.8 + '@smithy/property-provider': 4.2.8 + '@smithy/protocol-http': 5.3.8 + '@smithy/smithy-client': 4.11.1 + '@smithy/types': 4.12.0 + '@smithy/util-stream': 4.5.10 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-ini@3.972.2': + dependencies: + '@aws-sdk/core': 3.973.4 + '@aws-sdk/credential-provider-env': 3.972.2 + '@aws-sdk/credential-provider-http': 3.972.4 + '@aws-sdk/credential-provider-login': 3.972.2 + '@aws-sdk/credential-provider-process': 3.972.2 + '@aws-sdk/credential-provider-sso': 3.972.2 + '@aws-sdk/credential-provider-web-identity': 3.972.2 + '@aws-sdk/nested-clients': 3.975.0 + '@aws-sdk/types': 3.973.1 + '@smithy/credential-provider-imds': 4.2.8 + '@smithy/property-provider': 4.2.8 + '@smithy/shared-ini-file-loader': 4.4.3 + '@smithy/types': 4.12.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-login@3.964.0': + '@aws-sdk/credential-provider-login@3.972.2': dependencies: - '@aws-sdk/core': 3.964.0 - '@aws-sdk/nested-clients': 3.964.0 - '@aws-sdk/types': 3.957.0 - '@smithy/property-provider': 4.2.7 - '@smithy/protocol-http': 5.3.7 - '@smithy/shared-ini-file-loader': 4.4.2 - '@smithy/types': 4.11.0 + '@aws-sdk/core': 3.973.4 + '@aws-sdk/nested-clients': 3.975.0 + '@aws-sdk/types': 3.973.1 + '@smithy/property-provider': 4.2.8 + '@smithy/protocol-http': 5.3.8 + '@smithy/shared-ini-file-loader': 4.4.3 + '@smithy/types': 4.12.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-node@3.964.0': + '@aws-sdk/credential-provider-node@3.972.3': dependencies: - '@aws-sdk/credential-provider-env': 3.964.0 - '@aws-sdk/credential-provider-http': 3.964.0 - '@aws-sdk/credential-provider-ini': 3.964.0 - '@aws-sdk/credential-provider-process': 3.964.0 - '@aws-sdk/credential-provider-sso': 3.964.0 - '@aws-sdk/credential-provider-web-identity': 3.964.0 - '@aws-sdk/types': 3.957.0 - '@smithy/credential-provider-imds': 4.2.7 - '@smithy/property-provider': 4.2.7 - '@smithy/shared-ini-file-loader': 4.4.2 - '@smithy/types': 4.11.0 + '@aws-sdk/credential-provider-env': 3.972.2 + '@aws-sdk/credential-provider-http': 3.972.4 + '@aws-sdk/credential-provider-ini': 3.972.2 + '@aws-sdk/credential-provider-process': 3.972.2 + '@aws-sdk/credential-provider-sso': 3.972.2 + '@aws-sdk/credential-provider-web-identity': 3.972.2 + '@aws-sdk/types': 3.973.1 + '@smithy/credential-provider-imds': 4.2.8 + '@smithy/property-provider': 4.2.8 + '@smithy/shared-ini-file-loader': 4.4.3 + '@smithy/types': 4.12.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-process@3.964.0': + '@aws-sdk/credential-provider-process@3.972.2': dependencies: - '@aws-sdk/core': 3.964.0 - '@aws-sdk/types': 3.957.0 - '@smithy/property-provider': 4.2.7 - '@smithy/shared-ini-file-loader': 4.4.2 - '@smithy/types': 4.11.0 + '@aws-sdk/core': 3.973.4 + '@aws-sdk/types': 3.973.1 + '@smithy/property-provider': 4.2.8 + '@smithy/shared-ini-file-loader': 4.4.3 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/credential-provider-sso@3.964.0': + '@aws-sdk/credential-provider-sso@3.972.2': dependencies: - '@aws-sdk/client-sso': 3.964.0 - '@aws-sdk/core': 3.964.0 - '@aws-sdk/token-providers': 3.964.0 - '@aws-sdk/types': 3.957.0 - '@smithy/property-provider': 4.2.7 - '@smithy/shared-ini-file-loader': 4.4.2 - '@smithy/types': 4.11.0 + '@aws-sdk/client-sso': 3.975.0 + '@aws-sdk/core': 3.973.4 + '@aws-sdk/token-providers': 3.975.0 + '@aws-sdk/types': 3.973.1 + '@smithy/property-provider': 4.2.8 + '@smithy/shared-ini-file-loader': 4.4.3 + '@smithy/types': 4.12.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-web-identity@3.964.0': + '@aws-sdk/credential-provider-web-identity@3.972.2': dependencies: - '@aws-sdk/core': 3.964.0 - '@aws-sdk/nested-clients': 3.964.0 - '@aws-sdk/types': 3.957.0 - '@smithy/property-provider': 4.2.7 - '@smithy/shared-ini-file-loader': 4.4.2 - '@smithy/types': 4.11.0 + '@aws-sdk/core': 3.973.4 + '@aws-sdk/nested-clients': 3.975.0 + '@aws-sdk/types': 3.973.1 + '@smithy/property-provider': 4.2.8 + '@smithy/shared-ini-file-loader': 4.4.3 + '@smithy/types': 4.12.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/middleware-bucket-endpoint@3.957.0': + '@aws-sdk/middleware-bucket-endpoint@3.972.2': dependencies: - '@aws-sdk/types': 3.957.0 - '@aws-sdk/util-arn-parser': 3.957.0 - '@smithy/node-config-provider': 4.3.7 - '@smithy/protocol-http': 5.3.7 - '@smithy/types': 4.11.0 + '@aws-sdk/types': 3.973.1 + '@aws-sdk/util-arn-parser': 3.972.2 + '@smithy/node-config-provider': 4.3.8 + '@smithy/protocol-http': 5.3.8 + '@smithy/types': 4.12.0 '@smithy/util-config-provider': 4.2.0 tslib: 2.8.1 - '@aws-sdk/middleware-expect-continue@3.957.0': + '@aws-sdk/middleware-expect-continue@3.972.2': dependencies: - '@aws-sdk/types': 3.957.0 - '@smithy/protocol-http': 5.3.7 - '@smithy/types': 4.11.0 + '@aws-sdk/types': 3.973.1 + '@smithy/protocol-http': 5.3.8 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/middleware-flexible-checksums@3.964.0': + '@aws-sdk/middleware-flexible-checksums@3.972.2': dependencies: '@aws-crypto/crc32': 5.2.0 '@aws-crypto/crc32c': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/core': 3.964.0 - '@aws-sdk/crc64-nvme': 3.957.0 - '@aws-sdk/types': 3.957.0 + '@aws-sdk/core': 3.973.4 + '@aws-sdk/crc64-nvme': 3.972.0 + '@aws-sdk/types': 3.973.1 '@smithy/is-array-buffer': 4.2.0 - '@smithy/node-config-provider': 4.3.7 - '@smithy/protocol-http': 5.3.7 - '@smithy/types': 4.11.0 - '@smithy/util-middleware': 4.2.7 - '@smithy/util-stream': 4.5.8 + '@smithy/node-config-provider': 4.3.8 + '@smithy/protocol-http': 5.3.8 + '@smithy/types': 4.12.0 + '@smithy/util-middleware': 4.2.8 + '@smithy/util-stream': 4.5.10 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@aws-sdk/middleware-host-header@3.957.0': + '@aws-sdk/middleware-host-header@3.972.2': dependencies: - '@aws-sdk/types': 3.957.0 - '@smithy/protocol-http': 5.3.7 - '@smithy/types': 4.11.0 + '@aws-sdk/types': 3.973.1 + '@smithy/protocol-http': 5.3.8 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/middleware-location-constraint@3.957.0': + '@aws-sdk/middleware-location-constraint@3.972.2': dependencies: - '@aws-sdk/types': 3.957.0 - '@smithy/types': 4.11.0 + '@aws-sdk/types': 3.973.1 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/middleware-logger@3.957.0': + '@aws-sdk/middleware-logger@3.972.2': dependencies: - '@aws-sdk/types': 3.957.0 - '@smithy/types': 4.11.0 + '@aws-sdk/types': 3.973.1 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/middleware-recursion-detection@3.957.0': + '@aws-sdk/middleware-recursion-detection@3.972.2': dependencies: - '@aws-sdk/types': 3.957.0 + '@aws-sdk/types': 3.973.1 '@aws/lambda-invoke-store': 0.2.2 - '@smithy/protocol-http': 5.3.7 - '@smithy/types': 4.11.0 + '@smithy/protocol-http': 5.3.8 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/middleware-sdk-s3@3.964.0': + '@aws-sdk/middleware-sdk-s3@3.972.0': dependencies: - '@aws-sdk/core': 3.964.0 - '@aws-sdk/types': 3.957.0 - '@aws-sdk/util-arn-parser': 3.957.0 - '@smithy/core': 3.20.0 - '@smithy/node-config-provider': 4.3.7 - '@smithy/protocol-http': 5.3.7 - '@smithy/signature-v4': 5.3.7 - '@smithy/smithy-client': 4.10.2 - '@smithy/types': 4.11.0 + '@aws-sdk/core': 3.972.0 + '@aws-sdk/types': 3.972.0 + '@aws-sdk/util-arn-parser': 3.972.0 + '@smithy/core': 3.22.0 + '@smithy/node-config-provider': 4.3.8 + '@smithy/protocol-http': 5.3.8 + '@smithy/signature-v4': 5.3.8 + '@smithy/smithy-client': 4.11.1 + '@smithy/types': 4.12.0 '@smithy/util-config-provider': 4.2.0 - '@smithy/util-middleware': 4.2.7 - '@smithy/util-stream': 4.5.8 + '@smithy/util-middleware': 4.2.8 + '@smithy/util-stream': 4.5.10 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@aws-sdk/middleware-ssec@3.957.0': + '@aws-sdk/middleware-sdk-s3@3.972.4': dependencies: - '@aws-sdk/types': 3.957.0 - '@smithy/types': 4.11.0 + '@aws-sdk/core': 3.973.4 + '@aws-sdk/types': 3.973.1 + '@aws-sdk/util-arn-parser': 3.972.2 + '@smithy/core': 3.22.0 + '@smithy/node-config-provider': 4.3.8 + '@smithy/protocol-http': 5.3.8 + '@smithy/signature-v4': 5.3.8 + '@smithy/smithy-client': 4.11.1 + '@smithy/types': 4.12.0 + '@smithy/util-config-provider': 4.2.0 + '@smithy/util-middleware': 4.2.8 + '@smithy/util-stream': 4.5.10 + '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@aws-sdk/middleware-user-agent@3.964.0': + '@aws-sdk/middleware-ssec@3.972.2': dependencies: - '@aws-sdk/core': 3.964.0 - '@aws-sdk/types': 3.957.0 - '@aws-sdk/util-endpoints': 3.957.0 - '@smithy/core': 3.20.0 - '@smithy/protocol-http': 5.3.7 - '@smithy/types': 4.11.0 + '@aws-sdk/types': 3.973.1 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/nested-clients@3.964.0': + '@aws-sdk/middleware-user-agent@3.972.4': + dependencies: + '@aws-sdk/core': 3.973.4 + '@aws-sdk/types': 3.973.1 + '@aws-sdk/util-endpoints': 3.972.0 + '@smithy/core': 3.22.0 + '@smithy/protocol-http': 5.3.8 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@aws-sdk/nested-clients@3.975.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.964.0 - '@aws-sdk/middleware-host-header': 3.957.0 - '@aws-sdk/middleware-logger': 3.957.0 - '@aws-sdk/middleware-recursion-detection': 3.957.0 - '@aws-sdk/middleware-user-agent': 3.964.0 - '@aws-sdk/region-config-resolver': 3.957.0 - '@aws-sdk/types': 3.957.0 - '@aws-sdk/util-endpoints': 3.957.0 - '@aws-sdk/util-user-agent-browser': 3.957.0 - '@aws-sdk/util-user-agent-node': 3.964.0 - '@smithy/config-resolver': 4.4.5 - '@smithy/core': 3.20.0 - '@smithy/fetch-http-handler': 5.3.8 - '@smithy/hash-node': 4.2.7 - '@smithy/invalid-dependency': 4.2.7 - '@smithy/middleware-content-length': 4.2.7 - '@smithy/middleware-endpoint': 4.4.1 - '@smithy/middleware-retry': 4.4.17 - '@smithy/middleware-serde': 4.2.8 - '@smithy/middleware-stack': 4.2.7 - '@smithy/node-config-provider': 4.3.7 - '@smithy/node-http-handler': 4.4.7 - '@smithy/protocol-http': 5.3.7 - '@smithy/smithy-client': 4.10.2 - '@smithy/types': 4.11.0 - '@smithy/url-parser': 4.2.7 + '@aws-sdk/core': 3.973.4 + '@aws-sdk/middleware-host-header': 3.972.2 + '@aws-sdk/middleware-logger': 3.972.2 + '@aws-sdk/middleware-recursion-detection': 3.972.2 + '@aws-sdk/middleware-user-agent': 3.972.4 + '@aws-sdk/region-config-resolver': 3.972.2 + '@aws-sdk/types': 3.973.1 + '@aws-sdk/util-endpoints': 3.972.0 + '@aws-sdk/util-user-agent-browser': 3.972.2 + '@aws-sdk/util-user-agent-node': 3.972.2 + '@smithy/config-resolver': 4.4.6 + '@smithy/core': 3.22.0 + '@smithy/fetch-http-handler': 5.3.9 + '@smithy/hash-node': 4.2.8 + '@smithy/invalid-dependency': 4.2.8 + '@smithy/middleware-content-length': 4.2.8 + '@smithy/middleware-endpoint': 4.4.12 + '@smithy/middleware-retry': 4.4.29 + '@smithy/middleware-serde': 4.2.9 + '@smithy/middleware-stack': 4.2.8 + '@smithy/node-config-provider': 4.3.8 + '@smithy/node-http-handler': 4.4.8 + '@smithy/protocol-http': 5.3.8 + '@smithy/smithy-client': 4.11.1 + '@smithy/types': 4.12.0 + '@smithy/url-parser': 4.2.8 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.16 - '@smithy/util-defaults-mode-node': 4.2.19 - '@smithy/util-endpoints': 3.2.7 - '@smithy/util-middleware': 4.2.7 - '@smithy/util-retry': 4.2.7 + '@smithy/util-defaults-mode-browser': 4.3.28 + '@smithy/util-defaults-mode-node': 4.2.31 + '@smithy/util-endpoints': 3.2.8 + '@smithy/util-middleware': 4.2.8 + '@smithy/util-retry': 4.2.8 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/region-config-resolver@3.957.0': + '@aws-sdk/region-config-resolver@3.972.2': dependencies: - '@aws-sdk/types': 3.957.0 - '@smithy/config-resolver': 4.4.5 - '@smithy/node-config-provider': 4.3.7 - '@smithy/types': 4.11.0 + '@aws-sdk/types': 3.973.1 + '@smithy/config-resolver': 4.4.6 + '@smithy/node-config-provider': 4.3.8 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/signature-v4-multi-region@3.964.0': + '@aws-sdk/signature-v4-multi-region@3.972.0': dependencies: - '@aws-sdk/middleware-sdk-s3': 3.964.0 - '@aws-sdk/types': 3.957.0 - '@smithy/protocol-http': 5.3.7 - '@smithy/signature-v4': 5.3.7 - '@smithy/types': 4.11.0 + '@aws-sdk/middleware-sdk-s3': 3.972.0 + '@aws-sdk/types': 3.972.0 + '@smithy/protocol-http': 5.3.8 + '@smithy/signature-v4': 5.3.8 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/token-providers@3.964.0': + '@aws-sdk/token-providers@3.975.0': dependencies: - '@aws-sdk/core': 3.964.0 - '@aws-sdk/nested-clients': 3.964.0 - '@aws-sdk/types': 3.957.0 - '@smithy/property-provider': 4.2.7 - '@smithy/shared-ini-file-loader': 4.4.2 - '@smithy/types': 4.11.0 + '@aws-sdk/core': 3.973.4 + '@aws-sdk/nested-clients': 3.975.0 + '@aws-sdk/types': 3.973.1 + '@smithy/property-provider': 4.2.8 + '@smithy/shared-ini-file-loader': 4.4.3 + '@smithy/types': 4.12.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/types@3.957.0': + '@aws-sdk/types@3.972.0': dependencies: - '@smithy/types': 4.11.0 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/util-arn-parser@3.957.0': + '@aws-sdk/types@3.973.1': + dependencies: + '@smithy/types': 4.12.0 + tslib: 2.8.1 + + '@aws-sdk/util-arn-parser@3.972.0': dependencies: tslib: 2.8.1 - '@aws-sdk/util-endpoints@3.957.0': + '@aws-sdk/util-arn-parser@3.972.2': dependencies: - '@aws-sdk/types': 3.957.0 - '@smithy/types': 4.11.0 - '@smithy/url-parser': 4.2.7 - '@smithy/util-endpoints': 3.2.7 + tslib: 2.8.1 + + '@aws-sdk/util-endpoints@3.972.0': + dependencies: + '@aws-sdk/types': 3.972.0 + '@smithy/types': 4.12.0 + '@smithy/url-parser': 4.2.8 + '@smithy/util-endpoints': 3.2.8 tslib: 2.8.1 '@aws-sdk/util-locate-window@3.957.0': dependencies: tslib: 2.8.1 - '@aws-sdk/util-user-agent-browser@3.957.0': + '@aws-sdk/util-user-agent-browser@3.972.2': dependencies: - '@aws-sdk/types': 3.957.0 - '@smithy/types': 4.11.0 + '@aws-sdk/types': 3.973.1 + '@smithy/types': 4.12.0 bowser: 2.13.1 tslib: 2.8.1 - '@aws-sdk/util-user-agent-node@3.964.0': + '@aws-sdk/util-user-agent-node@3.972.2': dependencies: - '@aws-sdk/middleware-user-agent': 3.964.0 - '@aws-sdk/types': 3.957.0 - '@smithy/node-config-provider': 4.3.7 - '@smithy/types': 4.11.0 + '@aws-sdk/middleware-user-agent': 3.972.4 + '@aws-sdk/types': 3.973.1 + '@smithy/node-config-provider': 4.3.8 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@aws-sdk/xml-builder@3.957.0': + '@aws-sdk/xml-builder@3.972.0': dependencies: - '@smithy/types': 4.11.0 + '@smithy/types': 4.12.0 + fast-xml-parser: 5.2.5 + tslib: 2.8.1 + + '@aws-sdk/xml-builder@3.972.2': + dependencies: + '@smithy/types': 4.12.0 fast-xml-parser: 5.2.5 tslib: 2.8.1 '@aws/lambda-invoke-store@0.2.2': {} + '@kevisual/load@0.0.6': + dependencies: + eventemitter3: 5.0.1 + + '@kevisual/use-config@1.0.28(dotenv@17.2.3)': + dependencies: + '@kevisual/load': 0.0.6 + dotenv: 17.2.3 + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -1320,9 +1186,9 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.1 - '@smithy/abort-controller@4.2.7': + '@smithy/abort-controller@4.2.8': dependencies: - '@smithy/types': 4.11.0 + '@smithy/types': 4.12.0 tslib: 2.8.1 '@smithy/chunked-blob-reader-native@4.2.1': @@ -1334,97 +1200,97 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/config-resolver@4.4.5': + '@smithy/config-resolver@4.4.6': dependencies: - '@smithy/node-config-provider': 4.3.7 - '@smithy/types': 4.11.0 + '@smithy/node-config-provider': 4.3.8 + '@smithy/types': 4.12.0 '@smithy/util-config-provider': 4.2.0 - '@smithy/util-endpoints': 3.2.7 - '@smithy/util-middleware': 4.2.7 + '@smithy/util-endpoints': 3.2.8 + '@smithy/util-middleware': 4.2.8 tslib: 2.8.1 - '@smithy/core@3.20.0': + '@smithy/core@3.22.0': dependencies: - '@smithy/middleware-serde': 4.2.8 - '@smithy/protocol-http': 5.3.7 - '@smithy/types': 4.11.0 + '@smithy/middleware-serde': 4.2.9 + '@smithy/protocol-http': 5.3.8 + '@smithy/types': 4.12.0 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 - '@smithy/util-middleware': 4.2.7 - '@smithy/util-stream': 4.5.8 + '@smithy/util-middleware': 4.2.8 + '@smithy/util-stream': 4.5.10 '@smithy/util-utf8': 4.2.0 '@smithy/uuid': 1.1.0 tslib: 2.8.1 - '@smithy/credential-provider-imds@4.2.7': + '@smithy/credential-provider-imds@4.2.8': dependencies: - '@smithy/node-config-provider': 4.3.7 - '@smithy/property-provider': 4.2.7 - '@smithy/types': 4.11.0 - '@smithy/url-parser': 4.2.7 + '@smithy/node-config-provider': 4.3.8 + '@smithy/property-provider': 4.2.8 + '@smithy/types': 4.12.0 + '@smithy/url-parser': 4.2.8 tslib: 2.8.1 - '@smithy/eventstream-codec@4.2.7': + '@smithy/eventstream-codec@4.2.8': dependencies: '@aws-crypto/crc32': 5.2.0 - '@smithy/types': 4.11.0 + '@smithy/types': 4.12.0 '@smithy/util-hex-encoding': 4.2.0 tslib: 2.8.1 - '@smithy/eventstream-serde-browser@4.2.7': + '@smithy/eventstream-serde-browser@4.2.8': dependencies: - '@smithy/eventstream-serde-universal': 4.2.7 - '@smithy/types': 4.11.0 + '@smithy/eventstream-serde-universal': 4.2.8 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/eventstream-serde-config-resolver@4.3.7': + '@smithy/eventstream-serde-config-resolver@4.3.8': dependencies: - '@smithy/types': 4.11.0 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/eventstream-serde-node@4.2.7': + '@smithy/eventstream-serde-node@4.2.8': dependencies: - '@smithy/eventstream-serde-universal': 4.2.7 - '@smithy/types': 4.11.0 + '@smithy/eventstream-serde-universal': 4.2.8 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/eventstream-serde-universal@4.2.7': + '@smithy/eventstream-serde-universal@4.2.8': dependencies: - '@smithy/eventstream-codec': 4.2.7 - '@smithy/types': 4.11.0 + '@smithy/eventstream-codec': 4.2.8 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/fetch-http-handler@5.3.8': + '@smithy/fetch-http-handler@5.3.9': dependencies: - '@smithy/protocol-http': 5.3.7 - '@smithy/querystring-builder': 4.2.7 - '@smithy/types': 4.11.0 + '@smithy/protocol-http': 5.3.8 + '@smithy/querystring-builder': 4.2.8 + '@smithy/types': 4.12.0 '@smithy/util-base64': 4.3.0 tslib: 2.8.1 - '@smithy/hash-blob-browser@4.2.8': + '@smithy/hash-blob-browser@4.2.9': dependencies: '@smithy/chunked-blob-reader': 5.2.0 '@smithy/chunked-blob-reader-native': 4.2.1 - '@smithy/types': 4.11.0 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/hash-node@4.2.7': + '@smithy/hash-node@4.2.8': dependencies: - '@smithy/types': 4.11.0 + '@smithy/types': 4.12.0 '@smithy/util-buffer-from': 4.2.0 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@smithy/hash-stream-node@4.2.7': + '@smithy/hash-stream-node@4.2.8': dependencies: - '@smithy/types': 4.11.0 + '@smithy/types': 4.12.0 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@smithy/invalid-dependency@4.2.7': + '@smithy/invalid-dependency@4.2.8': dependencies: - '@smithy/types': 4.11.0 + '@smithy/types': 4.12.0 tslib: 2.8.1 '@smithy/is-array-buffer@2.2.0': @@ -1435,126 +1301,126 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/md5-js@4.2.7': + '@smithy/md5-js@4.2.8': dependencies: - '@smithy/types': 4.11.0 + '@smithy/types': 4.12.0 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@smithy/middleware-content-length@4.2.7': + '@smithy/middleware-content-length@4.2.8': dependencies: - '@smithy/protocol-http': 5.3.7 - '@smithy/types': 4.11.0 + '@smithy/protocol-http': 5.3.8 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/middleware-endpoint@4.4.1': + '@smithy/middleware-endpoint@4.4.12': dependencies: - '@smithy/core': 3.20.0 - '@smithy/middleware-serde': 4.2.8 - '@smithy/node-config-provider': 4.3.7 - '@smithy/shared-ini-file-loader': 4.4.2 - '@smithy/types': 4.11.0 - '@smithy/url-parser': 4.2.7 - '@smithy/util-middleware': 4.2.7 + '@smithy/core': 3.22.0 + '@smithy/middleware-serde': 4.2.9 + '@smithy/node-config-provider': 4.3.8 + '@smithy/shared-ini-file-loader': 4.4.3 + '@smithy/types': 4.12.0 + '@smithy/url-parser': 4.2.8 + '@smithy/util-middleware': 4.2.8 tslib: 2.8.1 - '@smithy/middleware-retry@4.4.17': + '@smithy/middleware-retry@4.4.29': dependencies: - '@smithy/node-config-provider': 4.3.7 - '@smithy/protocol-http': 5.3.7 - '@smithy/service-error-classification': 4.2.7 - '@smithy/smithy-client': 4.10.2 - '@smithy/types': 4.11.0 - '@smithy/util-middleware': 4.2.7 - '@smithy/util-retry': 4.2.7 + '@smithy/node-config-provider': 4.3.8 + '@smithy/protocol-http': 5.3.8 + '@smithy/service-error-classification': 4.2.8 + '@smithy/smithy-client': 4.11.1 + '@smithy/types': 4.12.0 + '@smithy/util-middleware': 4.2.8 + '@smithy/util-retry': 4.2.8 '@smithy/uuid': 1.1.0 tslib: 2.8.1 - '@smithy/middleware-serde@4.2.8': + '@smithy/middleware-serde@4.2.9': dependencies: - '@smithy/protocol-http': 5.3.7 - '@smithy/types': 4.11.0 + '@smithy/protocol-http': 5.3.8 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/middleware-stack@4.2.7': + '@smithy/middleware-stack@4.2.8': dependencies: - '@smithy/types': 4.11.0 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/node-config-provider@4.3.7': + '@smithy/node-config-provider@4.3.8': dependencies: - '@smithy/property-provider': 4.2.7 - '@smithy/shared-ini-file-loader': 4.4.2 - '@smithy/types': 4.11.0 + '@smithy/property-provider': 4.2.8 + '@smithy/shared-ini-file-loader': 4.4.3 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/node-http-handler@4.4.7': + '@smithy/node-http-handler@4.4.8': dependencies: - '@smithy/abort-controller': 4.2.7 - '@smithy/protocol-http': 5.3.7 - '@smithy/querystring-builder': 4.2.7 - '@smithy/types': 4.11.0 + '@smithy/abort-controller': 4.2.8 + '@smithy/protocol-http': 5.3.8 + '@smithy/querystring-builder': 4.2.8 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/property-provider@4.2.7': + '@smithy/property-provider@4.2.8': dependencies: - '@smithy/types': 4.11.0 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/protocol-http@5.3.7': + '@smithy/protocol-http@5.3.8': dependencies: - '@smithy/types': 4.11.0 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/querystring-builder@4.2.7': + '@smithy/querystring-builder@4.2.8': dependencies: - '@smithy/types': 4.11.0 + '@smithy/types': 4.12.0 '@smithy/util-uri-escape': 4.2.0 tslib: 2.8.1 - '@smithy/querystring-parser@4.2.7': + '@smithy/querystring-parser@4.2.8': dependencies: - '@smithy/types': 4.11.0 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/service-error-classification@4.2.7': + '@smithy/service-error-classification@4.2.8': dependencies: - '@smithy/types': 4.11.0 + '@smithy/types': 4.12.0 - '@smithy/shared-ini-file-loader@4.4.2': + '@smithy/shared-ini-file-loader@4.4.3': dependencies: - '@smithy/types': 4.11.0 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/signature-v4@5.3.7': + '@smithy/signature-v4@5.3.8': dependencies: '@smithy/is-array-buffer': 4.2.0 - '@smithy/protocol-http': 5.3.7 - '@smithy/types': 4.11.0 + '@smithy/protocol-http': 5.3.8 + '@smithy/types': 4.12.0 '@smithy/util-hex-encoding': 4.2.0 - '@smithy/util-middleware': 4.2.7 + '@smithy/util-middleware': 4.2.8 '@smithy/util-uri-escape': 4.2.0 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@smithy/smithy-client@4.10.2': + '@smithy/smithy-client@4.11.1': dependencies: - '@smithy/core': 3.20.0 - '@smithy/middleware-endpoint': 4.4.1 - '@smithy/middleware-stack': 4.2.7 - '@smithy/protocol-http': 5.3.7 - '@smithy/types': 4.11.0 - '@smithy/util-stream': 4.5.8 + '@smithy/core': 3.22.0 + '@smithy/middleware-endpoint': 4.4.12 + '@smithy/middleware-stack': 4.2.8 + '@smithy/protocol-http': 5.3.8 + '@smithy/types': 4.12.0 + '@smithy/util-stream': 4.5.10 tslib: 2.8.1 - '@smithy/types@4.11.0': + '@smithy/types@4.12.0': dependencies: tslib: 2.8.1 - '@smithy/url-parser@4.2.7': + '@smithy/url-parser@4.2.8': dependencies: - '@smithy/querystring-parser': 4.2.7 - '@smithy/types': 4.11.0 + '@smithy/querystring-parser': 4.2.8 + '@smithy/types': 4.12.0 tslib: 2.8.1 '@smithy/util-base64@4.3.0': @@ -1585,49 +1451,49 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/util-defaults-mode-browser@4.3.16': + '@smithy/util-defaults-mode-browser@4.3.28': dependencies: - '@smithy/property-provider': 4.2.7 - '@smithy/smithy-client': 4.10.2 - '@smithy/types': 4.11.0 + '@smithy/property-provider': 4.2.8 + '@smithy/smithy-client': 4.11.1 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/util-defaults-mode-node@4.2.19': + '@smithy/util-defaults-mode-node@4.2.31': dependencies: - '@smithy/config-resolver': 4.4.5 - '@smithy/credential-provider-imds': 4.2.7 - '@smithy/node-config-provider': 4.3.7 - '@smithy/property-provider': 4.2.7 - '@smithy/smithy-client': 4.10.2 - '@smithy/types': 4.11.0 + '@smithy/config-resolver': 4.4.6 + '@smithy/credential-provider-imds': 4.2.8 + '@smithy/node-config-provider': 4.3.8 + '@smithy/property-provider': 4.2.8 + '@smithy/smithy-client': 4.11.1 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/util-endpoints@3.2.7': + '@smithy/util-endpoints@3.2.8': dependencies: - '@smithy/node-config-provider': 4.3.7 - '@smithy/types': 4.11.0 + '@smithy/node-config-provider': 4.3.8 + '@smithy/types': 4.12.0 tslib: 2.8.1 '@smithy/util-hex-encoding@4.2.0': dependencies: tslib: 2.8.1 - '@smithy/util-middleware@4.2.7': + '@smithy/util-middleware@4.2.8': dependencies: - '@smithy/types': 4.11.0 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/util-retry@4.2.7': + '@smithy/util-retry@4.2.8': dependencies: - '@smithy/service-error-classification': 4.2.7 - '@smithy/types': 4.11.0 + '@smithy/service-error-classification': 4.2.8 + '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/util-stream@4.5.8': + '@smithy/util-stream@4.5.10': dependencies: - '@smithy/fetch-http-handler': 5.3.8 - '@smithy/node-http-handler': 4.4.7 - '@smithy/types': 4.11.0 + '@smithy/fetch-http-handler': 5.3.9 + '@smithy/node-http-handler': 4.4.8 + '@smithy/types': 4.12.0 '@smithy/util-base64': 4.3.0 '@smithy/util-buffer-from': 4.2.0 '@smithy/util-hex-encoding': 4.2.0 @@ -1648,79 +1514,45 @@ snapshots: '@smithy/util-buffer-from': 4.2.0 tslib: 2.8.1 - '@smithy/util-waiter@4.2.7': + '@smithy/util-waiter@4.2.8': dependencies: - '@smithy/abort-controller': 4.2.7 - '@smithy/types': 4.11.0 + '@smithy/abort-controller': 4.2.8 + '@smithy/types': 4.12.0 tslib: 2.8.1 '@smithy/uuid@1.1.0': dependencies: tslib: 2.8.1 - '@types/bun@1.3.5': + '@types/bun@1.3.8': dependencies: - bun-types: 1.3.5 + bun-types: 1.3.8 - '@types/node@25.0.3': + '@types/node@25.1.0': dependencies: undici-types: 7.16.0 - '@zxing/text-encoding@0.9.0': - optional: true - ansi-regex@5.0.1: {} ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 - async@3.2.6: {} - - available-typed-arrays@1.0.7: - dependencies: - possible-typed-array-names: 1.1.0 - - block-stream2@2.1.0: - dependencies: - readable-stream: 3.6.2 - bowser@2.13.1: {} braces@3.0.3: dependencies: fill-range: 7.1.1 - browser-or-node@2.1.1: {} - - buffer-crc32@1.0.0: {} - bun-plugin-dts@0.3.0: dependencies: common-path-prefix: 3.0.0 dts-bundle-generator: 9.5.1 get-tsconfig: 4.13.0 - bun-types@1.3.5: + bun-types@1.3.8: dependencies: - '@types/node': 25.0.3 - - call-bind-apply-helpers@1.0.2: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - - call-bind@1.0.8: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - get-intrinsic: 1.3.0 - set-function-length: 1.2.2 - - call-bound@1.0.4: - dependencies: - call-bind-apply-helpers: 1.0.2 - get-intrinsic: 1.3.0 + '@types/node': 25.1.0 cliui@8.0.1: dependencies: @@ -1736,14 +1568,6 @@ snapshots: common-path-prefix@3.0.0: {} - decode-uri-component@0.2.2: {} - - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - dotenv@17.2.3: {} dts-bundle-generator@9.5.1: @@ -1751,23 +1575,9 @@ snapshots: typescript: 5.9.3 yargs: 17.7.2 - dunder-proto@1.0.1: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-errors: 1.3.0 - gopd: 1.2.0 - emoji-regex@8.0.0: {} - es-define-property@1.0.1: {} - - es-errors@1.3.0: {} - - es-object-atoms@1.1.1: - dependencies: - es-errors: 1.3.0 - - es-toolkit@1.43.0: {} + es-toolkit@1.44.0: {} escalade@3.2.0: {} @@ -1781,10 +1591,6 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.8 - fast-xml-parser@4.5.3: - dependencies: - strnum: 1.1.2 - fast-xml-parser@5.2.5: dependencies: strnum: 2.1.2 @@ -1797,36 +1603,8 @@ snapshots: dependencies: to-regex-range: 5.0.1 - filter-obj@1.1.0: {} - - for-each@0.3.5: - dependencies: - is-callable: 1.2.7 - - function-bind@1.1.2: {} - - generator-function@2.0.1: {} - get-caller-file@2.0.5: {} - get-intrinsic@1.3.0: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - function-bind: 1.1.2 - get-proto: 1.0.1 - gopd: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - math-intrinsics: 1.1.0 - - get-proto@1.0.1: - dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.1.1 - get-tsconfig@4.13.0: dependencies: resolve-pkg-maps: 1.0.0 @@ -1835,66 +1613,16 @@ snapshots: dependencies: is-glob: 4.0.3 - gopd@1.2.0: {} - - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.1 - - has-symbols@1.1.0: {} - - has-tostringtag@1.0.2: - dependencies: - has-symbols: 1.1.0 - - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 - - inherits@2.0.4: {} - - ipaddr.js@2.3.0: {} - - is-arguments@1.2.0: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-callable@1.2.7: {} - is-extglob@2.1.1: {} is-fullwidth-code-point@3.0.0: {} - is-generator-function@1.1.2: - dependencies: - call-bound: 1.0.4 - generator-function: 2.0.1 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - is-glob@4.0.3: dependencies: is-extglob: 2.1.1 is-number@7.0.0: {} - is-regex@1.2.1: - dependencies: - call-bound: 1.0.4 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - is-typed-array@1.1.15: - dependencies: - which-typed-array: 1.1.19 - - lodash@4.17.21: {} - - math-intrinsics@1.1.0: {} - merge2@1.4.1: {} micromatch@4.0.8: @@ -1902,48 +1630,10 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 - mime-db@1.52.0: {} - - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 - - minio@8.0.6: - dependencies: - async: 3.2.6 - block-stream2: 2.1.0 - browser-or-node: 2.1.1 - buffer-crc32: 1.0.0 - eventemitter3: 5.0.1 - fast-xml-parser: 4.5.3 - ipaddr.js: 2.3.0 - lodash: 4.17.21 - mime-types: 2.1.35 - query-string: 7.1.3 - stream-json: 1.9.1 - through2: 4.0.2 - web-encoding: 1.1.5 - xml2js: 0.6.2 - picomatch@2.3.1: {} - possible-typed-array-names@1.1.0: {} - - query-string@7.1.3: - dependencies: - decode-uri-component: 0.2.2 - filter-obj: 1.1.0 - split-on-first: 1.1.0 - strict-uri-encode: 2.0.0 - queue-microtask@1.2.3: {} - readable-stream@3.6.2: - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - require-directory@2.1.1: {} resolve-pkg-maps@1.0.0: {} @@ -1954,57 +1644,18 @@ snapshots: dependencies: queue-microtask: 1.2.3 - safe-buffer@5.2.1: {} - - safe-regex-test@1.1.0: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-regex: 1.2.1 - - sax@1.4.3: {} - - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - - split-on-first@1.1.0: {} - - stream-chain@2.2.5: {} - - stream-json@1.9.1: - dependencies: - stream-chain: 2.2.5 - - strict-uri-encode@2.0.0: {} - string-width@4.2.3: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - string_decoder@1.3.0: - dependencies: - safe-buffer: 5.2.1 - strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 - strnum@1.1.2: {} - strnum@2.1.2: {} - through2@4.0.2: - dependencies: - readable-stream: 3.6.2 - to-regex-range@5.0.1: dependencies: is-number: 7.0.0 @@ -2015,45 +1666,12 @@ snapshots: undici-types@7.16.0: {} - util-deprecate@1.0.2: {} - - util@0.12.5: - dependencies: - inherits: 2.0.4 - is-arguments: 1.2.0 - is-generator-function: 1.1.2 - is-typed-array: 1.1.15 - which-typed-array: 1.1.19 - - web-encoding@1.1.5: - dependencies: - util: 0.12.5 - optionalDependencies: - '@zxing/text-encoding': 0.9.0 - - which-typed-array@1.1.19: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.4 - for-each: 0.3.5 - get-proto: 1.0.1 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - xml2js@0.6.2: - dependencies: - sax: 1.4.3 - xmlbuilder: 11.0.1 - - xmlbuilder@11.0.1: {} - y18n@5.0.8: {} yargs-parser@21.1.1: {} diff --git a/src/core/copy-object.ts b/src/core/copy-object.ts deleted file mode 100644 index 7c99377..0000000 --- a/src/core/copy-object.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Client, CopyDestinationOptions, CopySourceOptions } from 'minio'; - -type CopyObjectOpts = { - bucketName: string; - newMetadata: Record; - objectName: string; - client: Client; -}; -/** - * 复制对象 REPLACE 替换 - * @param param0 - * @returns - */ -export const copyObject = async ({ bucketName, newMetadata, objectName, client }: CopyObjectOpts) => { - const source = new CopySourceOptions({ Bucket: bucketName, Object: objectName }); - const stat = await client.statObject(bucketName, objectName); - const sourceMetadata = stat.metaData; - const destination = new CopyDestinationOptions({ - Bucket: bucketName, - Object: objectName, - UserMetadata: { ...sourceMetadata, ...newMetadata }, - MetadataDirective: 'REPLACE', - }); - const copyResult = await client.copyObject(source, destination); - return copyResult; -}; diff --git a/src/core/type.ts b/src/core/type.ts deleted file mode 100644 index 83a0cff..0000000 --- a/src/core/type.ts +++ /dev/null @@ -1,87 +0,0 @@ -import { ItemBucketMetadata, Client } from 'minio'; -export type UploadedObjectInfo = { - etag: string; - lastModified?: Date; - size?: number; - versionId: string; - metadata?: ItemBucketMetadata; -}; -export type StatObjectResult = { - size: number; - etag: string; - lastModified: Date; - metaData: ItemBucketMetadata; - versionId?: string | null; -}; -export type ListFileObject = { - name: string; - size: number; - lastModified: Date; - etag: string; -}; -export type ListDirectoryObject = { - prefix: string; - size: number; -}; -export type ListObjectResult = ListFileObject | ListDirectoryObject; -export interface OssBaseOperation { - prefix: string; - setPrefix(prefix: string): void; - /** - * 获取对象 - * @param objectName 对象名 - */ - getObject(objectName: string): Promise; - /** - * 上传对象 - * @param objectName 对象名 - * @param data 数据 - */ - putObject(objectName: string, data: Buffer | string, metaData?: ItemBucketMetadata): Promise; - /** - * 上传文件 - * @param objectName 对象名 - * @param filePath 文件路径 - */ - fPutObject(objectName: string, filePath: string, metaData?: ItemBucketMetadata): Promise; - /** - * 获取对象信息 - * @param objectName 对象名 - */ - statObject(objectName: string): Promise; - /** - * 删除对象 - * @param objectName 对象名 - */ - deleteObject(objectName: string): Promise; - /** - * 列出对象 - * @param objectName 对象名 - * @param opts 选项 - * @param opts.recursive 是否递归 - * @param opts.startAfter 开始位置 - */ - listObjects( - objectName: string, - opts?: { - /** - * 是否递归 - */ - recursive?: boolean; - /** - * 开始位置 - */ - startAfter?: string; - }, - ): Promise; - /** - * 复制对象 - * @param sourceObject 源对象 - * @param targetObject 目标对象 - */ - copyObject: Client['copyObject']; -} - -export interface OssService extends OssBaseOperation { - owner: string; -} diff --git a/src/index.ts b/src/index.ts index 91759e7..527efca 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,244 +1,3 @@ -import { Client, ItemBucketMetadata } from 'minio'; -import { ListFileObject, ListObjectResult, OssBaseOperation } from './core/type.ts'; -import { hash } from './util/hash.ts'; -import { copyObject } from './core/copy-object.ts'; -import { getContentType } from './util/get-content-type.ts'; -import { omit } from 'es-toolkit' -export type OssBaseOptions = { - /** - * 已经初始化好的minio client - */ - client: Client; - /** - * 桶名 - */ - bucketName: string; - /** - * 前缀 - */ - prefix?: string; -} & T; +export * from './s3/core.ts' -export class OssBase implements OssBaseOperation { - client?: Client; - bucketName: string; - prefix = ''; - /** - * 计算字符串或者对象的的md5值 - */ - hash = hash; - constructor(opts: OssBaseOptions) { - if (!opts.client) { - throw new Error('client is required'); - } - this.bucketName = opts.bucketName; - this.client = opts.client; - this.prefix = opts?.prefix ?? ''; - } - - setPrefix(prefix: string) { - this.prefix = prefix; - } - - async getObject(objectName: string) { - const bucketName = this.bucketName; - const obj = await this.client.getObject(bucketName, `${this.prefix}${objectName}`); - return obj; - } - - async getJson(objectName: string): Promise> { - const obj = await this.getObject(objectName); - return new Promise((resolve, reject) => { - let data = ''; - obj.on('data', (chunk) => { - data += chunk; - }); - obj.on('end', () => { - try { - const jsonData = JSON.parse(data); - resolve(jsonData); - } catch (error) { - reject(new Error('Failed to parse JSON')); - } - }); - obj.on('error', (err) => { - reject(err); - }); - }); - } - /** - * 上传文件, 当是流的时候,中断之后的etag会变,所以传递的时候不要嵌套async await,例如 busboy 监听文件流内部的时候,不要用check - * @param objectName - * @param data - * @param metaData - * @param options 如果文件本身存在,则复制原有的meta的内容 - * @returns - */ - async putObject( - objectName: string, - data: Buffer | string | Object, - metaData: ItemBucketMetadata = {}, - opts?: { check?: boolean; isStream?: boolean; size?: number }, - ) { - let putData: Buffer | string; - let size: number = opts?.size; - const isStream = opts?.isStream; - if (!isStream) { - if (typeof data === 'string') { - putData = data; - size = putData.length; - } else { - putData = JSON.stringify(data); - size = putData.length; - } - } else { - putData = data as any; - // 对于流式上传,如果没有提供 size,会导致多部分上传,ETag 会是 ****-1 格式 - // 必须提供准确的 size 才能得到标准的 MD5 格式 ETag - if (!size) { - throw new Error('Stream upload requires size parameter to avoid multipart upload and get standard MD5 ETag'); - } - } - if (opts?.check) { - const obj = await this.statObject(objectName, true); - if (obj) { - const omitMeda = ['size', 'content-type', 'cache-control', 'app-source']; - const objMeta = JSON.parse(JSON.stringify(omit(obj.metaData, omitMeda))); - metaData = { - ...objMeta, - ...metaData, - }; - } - } - - const bucketName = this.bucketName; - const obj = await this.client.putObject(bucketName, `${this.prefix}${objectName}`, putData, size, metaData); - return obj; - } - - async deleteObject(objectName: string) { - const bucketName = this.bucketName; - const obj = await this.client.removeObject(bucketName, `${this.prefix}${objectName}`); - return obj; - } - - async listObjects(objectName: string, opts?: { recursive?: boolean; startAfter?: string }) { - const bucketName = this.bucketName; - const prefix = `${this.prefix}${objectName}`; - const res = await new Promise((resolve, reject) => { - let res: any[] = []; - let hasError = false; - this.client - .listObjectsV2(bucketName, prefix, opts?.recursive ?? false, opts?.startAfter) - .on('data', (data) => { - res.push(data); - }) - .on('error', (err) => { - console.error('minio error', prefix, err); - hasError = true; - }) - .on('end', () => { - if (hasError) { - reject(); - return; - } else { - resolve(res); - } - }); - }); - return res as IS_FILE extends true ? ListFileObject[] : ListObjectResult[]; - } - - async fPutObject(objectName: string, filePath: string, metaData?: ItemBucketMetadata) { - const bucketName = this.bucketName; - const obj = await this.client.fPutObject(bucketName, `${this.prefix}${objectName}`, filePath, metaData); - return obj as any; - } - /** - * 获取完整的对象名称 - * @param objectName - * @returns - */ - async getObjectName(objectName: string) { - return `${this.prefix}${objectName}`; - } - async statObject(objectName: string, checkFile = true) { - const bucketName = this.bucketName; - try { - const obj = await this.client.statObject(bucketName, `${this.prefix}${objectName}`); - return obj; - } catch (e) { - if (e.code === 'NotFound') { - return null; - } - throw e; - } - } - /** - * 检查文件hash是否一致 - * @param objectName - * @param hash - * @returns - */ - async checkObjectHash( - objectName: string, - hash: string, - meta?: ItemBucketMetadata, - ): Promise<{ success: boolean; metaData: ItemBucketMetadata | null; obj: any; equalMeta?: boolean }> { - const obj = await this.statObject(`${this.prefix}${objectName}`, true); - if (!obj) { - return { success: false, metaData: null, obj: null, equalMeta: false }; - } - let metaData: ItemBucketMetadata = {}; - const omitMeda = ['content-type', 'cache-control', 'app-source']; - const objMeta = omit(obj.metaData, omitMeda); - metaData = { - ...objMeta, - }; - let equalMeta = false; - if (meta) { - equalMeta = JSON.stringify(metaData) === JSON.stringify(meta); - } - return { success: obj.etag === hash, metaData, obj, equalMeta }; - } - getMetadata(pathname: string, meta: ItemBucketMetadata = { 'app-source': 'user-app' }) { - const isHtml = pathname.endsWith('.html'); - if (isHtml) { - meta = { - ...meta, - 'content-type': 'text/html; charset=utf-8', - 'cache-control': 'no-cache', - }; - } else { - meta = { - ...meta, - 'content-type': getContentType(pathname), - 'cache-control': 'max-age=31536000, immutable', - }; - } - return meta; - } - - async copyObject(sourceObject: any, targetObject: any) { - const bucketName = this.bucketName; - const obj = await this.client.copyObject(bucketName, sourceObject, targetObject); - return obj; - } - async replaceObject(objectName: string, meta: { [key: string]: string }) { - const { bucketName, client } = this; - return copyObject({ bucketName, client, objectName: `${this.prefix}${objectName}`, newMetadata: meta }); - } - static create(this: new (opts: OssBaseOptions) => T, opts: OssBaseOptions): T { - return new this(opts); - } - - static fromBase(this: new (opts: OssBaseOptions) => T, createOpts: { oss: OssBase; opts: Partial> }): T { - const base = createOpts.oss; - const opts = createOpts.opts as any; - return new this({ - client: base.client, - bucketName: base.bucketName, - ...opts, - }); - } -} +export * from './s3/type.ts' \ No newline at end of file diff --git a/src/s3/core.ts b/src/s3/core.ts index 8d24179..81351b4 100644 --- a/src/s3/core.ts +++ b/src/s3/core.ts @@ -127,9 +127,16 @@ export class OssBase implements OssBaseOperation { contentLength = Buffer.byteLength(putData); } } else { - putData = data as Readable; + // Stream 上传:自动读取到 Buffer 以获取 contentLength if (!contentLength) { - throw new Error('Stream upload requires size parameter'); + const chunks: Buffer[] = []; + for await (const chunk of data as Readable) { + chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk)); + } + putData = Buffer.concat(chunks); + contentLength = putData.length; + } else { + putData = data as Readable; } } @@ -180,24 +187,45 @@ export class OssBase implements OssBaseOperation { filePath: string, metaData?: ItemBucketMetadata, ): Promise { - const fileStream = fs.createReadStream(filePath); const stat = fs.statSync(filePath); - const { standardHeaders, customMetadata } = extractStandardHeaders(metaData || {}); - const command = new PutObjectCommand({ - Bucket: this.bucketName, - Key: `${this.prefix}${objectName}`, - Body: fileStream, - ContentLength: stat.size, - ContentType: standardHeaders.ContentType || getContentType(filePath), - CacheControl: standardHeaders.CacheControl, - ContentDisposition: standardHeaders.ContentDisposition, - ContentEncoding: standardHeaders.ContentEncoding, - ContentLanguage: standardHeaders.ContentLanguage, - Expires: standardHeaders.Expires, - Metadata: customMetadata, - }); + const THRESHOLD = 5 * 1024 * 1024; // 5MB + let command: PutObjectCommand; + + if (stat.size < THRESHOLD) { + // 小文件:读取到内存再上传,避免流式传输导致的 IncompleteBody 错误 + const fileBuffer = await fs.promises.readFile(filePath); + command = new PutObjectCommand({ + Bucket: this.bucketName, + Key: `${this.prefix}${objectName}`, + Body: fileBuffer, + ContentLength: fileBuffer.length, + ContentType: standardHeaders.ContentType || getContentType(filePath), + CacheControl: standardHeaders.CacheControl, + ContentDisposition: standardHeaders.ContentDisposition, + ContentEncoding: standardHeaders.ContentEncoding, + ContentLanguage: standardHeaders.ContentLanguage, + Expires: standardHeaders.Expires, + Metadata: customMetadata, + }); + } else { + // 大文件:使用流式上传 + const fileStream = fs.createReadStream(filePath); + command = new PutObjectCommand({ + Bucket: this.bucketName, + Key: `${this.prefix}${objectName}`, + Body: fileStream, + ContentLength: stat.size, + ContentType: standardHeaders.ContentType || getContentType(filePath), + CacheControl: standardHeaders.CacheControl, + ContentDisposition: standardHeaders.ContentDisposition, + ContentEncoding: standardHeaders.ContentEncoding, + ContentLanguage: standardHeaders.ContentLanguage, + Expires: standardHeaders.Expires, + Metadata: customMetadata, + }); + } const response = await this.client.send(command); return { @@ -217,6 +245,11 @@ export class OssBase implements OssBaseOperation { }); await this.client.send(command); } + async deleteObjects(objectNameList: string[]): Promise { + for (const objectName of objectNameList) { + await this.deleteObject(objectName); + } + } /** * 列出对象 @@ -285,16 +318,34 @@ export class OssBase implements OssBaseOperation { const response = await this.client.send(command); return { + standardHeaders: { + contentType: response.ContentType, + cacheControl: response.CacheControl, + contentDisposition: response.ContentDisposition, + contentEncoding: response.ContentEncoding, + contentLanguage: response.ContentLanguage, + }, size: response.ContentLength || 0, - etag: response.ETag?.replace(/"/g, '') || '', + etag: response.ETag?.replace?.(/"/g, '') || '', lastModified: response.LastModified || new Date(), metaData: (response.Metadata as ItemBucketMetadata) || {}, versionId: response.VersionId || null, }; } catch (e: any) { - if (checkFile && (e.name === 'NotFound' || e.$metadata?.httpStatusCode === 404)) { + // 检查是否是 404 错误 - 支持多种 S3 兼容存储的错误格式 + const isNotFound = + e.name === 'NotFound' || + e.name === 'NoSuchBucket' || + e.name === 'NoSuchKey' || + e.code === 'NotFound' || + e.code === 'NoSuchBucket' || + e.code === 'NoSuchKey' || + e.$metadata?.httpStatusCode === 404; + + if (checkFile && isNotFound) { return null; } + console.error('statObject error', e); throw e; } } @@ -322,7 +373,7 @@ export class OssBase implements OssBaseOperation { if (!obj) { return { success: false, metaData: null, obj: null, equalMeta: false }; } - const omitMeta = ['content-type', 'cache-control', 'app-source']; + const omitMeta = ['Content-Type', 'Cache-Control', 'app-source']; const metaData = omit(obj.metaData, omitMeta); let equalMeta = false; if (meta) { @@ -341,14 +392,14 @@ export class OssBase implements OssBaseOperation { if (isHtml) { meta = { ...meta, - 'content-type': 'text/html; charset=utf-8', - 'cache-control': 'no-cache', + 'Content-Type': 'text/html; charset=utf-8', + 'Cache-Control': 'no-cache', }; } else { meta = { ...meta, - 'content-type': getContentType(pathname), - 'cache-control': 'max-age=31536000, immutable', + 'Content-Type': getContentType(pathname), + 'Cache-Control': 'max-age=31536000, immutable', }; } return meta; @@ -422,4 +473,11 @@ export class OssBase implements OssBaseOperation { ...opts, }); } +} + +export const getStram = (data: GetObjectCommandOutput) => { + if (data.Body) { + return data.Body as Readable; + } + throw new Error('Object body is empty'); } \ No newline at end of file diff --git a/src/s3/type.ts b/src/s3/type.ts index f18069d..a8978d0 100644 --- a/src/s3/type.ts +++ b/src/s3/type.ts @@ -17,6 +17,13 @@ export type StatObjectResult = { lastModified: Date; metaData: ItemBucketMetadata; versionId?: string | null; + standardHeaders: { + contentType?: string; + cacheControl?: string; + contentDisposition?: string; + contentEncoding?: string; + contentLanguage?: string; + } }; export type ListFileObject = { diff --git a/src/services/config.ts b/src/services/config.ts index e3fcf85..dc39cd7 100644 --- a/src/services/config.ts +++ b/src/services/config.ts @@ -1,5 +1,5 @@ -import { OssBase, OssBaseOptions } from '../index.ts'; -import { OssService } from '../core/type.ts'; +import { OssBase, OssBaseOptions } from '../s3/core.ts'; +import { OssService } from '../s3/type.ts'; import * as util from '../util/index.ts'; export class ConfigOssService extends OssBase implements OssService { diff --git a/src/services/index.ts b/src/services/index.ts index ec6cbba..07470d6 100644 --- a/src/services/index.ts +++ b/src/services/index.ts @@ -6,4 +6,4 @@ export * from '../util/download.ts'; export * from '../util/index.ts'; -export * from '../core/type.ts'; +export * from '../s3/type.ts'; diff --git a/src/util/download.ts b/src/util/download.ts index 493779f..9b4e7b0 100644 --- a/src/util/download.ts +++ b/src/util/download.ts @@ -1,73 +1,73 @@ -import { ServerResponse } from 'node:http'; -import { BucketItemStat } from 'minio'; -import fs from 'node:fs'; -import path from 'node:path'; +// import { ServerResponse } from 'node:http'; +// import { BucketItemStat } from 'minio'; +// import fs from 'node:fs'; +// import path from 'node:path'; -const viewableExtensions = ['jpg', 'jpeg', 'png', 'gif', 'svg', 'webp', 'mp4', 'webm', 'mp3', 'wav', 'ogg', 'pdf', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx']; -import { OssBase } from '../index.ts'; -/** - * 过滤 metaData 中的 key, 去除 password, accesskey, secretkey, - * 并返回过滤后的 metaData - * @param metaData - * @returns - */ -export const filterMetaDataKeys = (metaData: Record, clearKeys: string[] = []) => { - const keys = Object.keys(metaData); - // remove X-Amz- meta data - const removeKeys = ['password', 'accesskey', 'secretkey', ...clearKeys]; - const filteredKeys = keys.filter((key) => !removeKeys.includes(key)); - return filteredKeys.reduce((acc, key) => { - acc[key] = metaData[key]; - return acc; - }, {} as Record); -}; -type SendObjectOptions = { - res: ServerResponse; - client: OssBase; - objectName: string; - isDownload?: boolean; -}; -export const NotFoundFile = (res: ServerResponse, msg?: string, code = 404) => { - res.writeHead(code, { 'Content-Type': 'text/plain' }); - res.end(msg || 'Not Found File'); - return; -}; -export const sendObject = async ({ res, objectName, client, isDownload = false }: SendObjectOptions) => { - let stat: BucketItemStat; - try { - stat = await client.statObject(objectName); - } catch (e) { - } finally { - if (!stat || stat.size === 0) { - return NotFoundFile(res); - } - const contentLength = stat.size; - const etag = stat.etag; - const lastModified = stat.lastModified.toISOString(); - const filename = objectName.split('/').pop() || 'no-file-name-download'; // Extract filename from objectName - const fileExtension = filename.split('.').pop()?.toLowerCase() || ''; - const filteredMetaData = filterMetaDataKeys(stat.metaData, ['size', 'etag', 'last-modified']); - const contentDisposition = viewableExtensions.includes(fileExtension) && !isDownload ? 'inline' : `attachment; filename="${filename}"`; +// const viewableExtensions = ['jpg', 'jpeg', 'png', 'gif', 'svg', 'webp', 'mp4', 'webm', 'mp3', 'wav', 'ogg', 'pdf', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx']; +// import { OssBase } from '../index.ts'; +// /** +// * 过滤 metaData 中的 key, 去除 password, accesskey, secretkey, +// * 并返回过滤后的 metaData +// * @param metaData +// * @returns +// */ +// export const filterMetaDataKeys = (metaData: Record, clearKeys: string[] = []) => { +// const keys = Object.keys(metaData); +// // remove X-Amz- meta data +// const removeKeys = ['password', 'accesskey', 'secretkey', ...clearKeys]; +// const filteredKeys = keys.filter((key) => !removeKeys.includes(key)); +// return filteredKeys.reduce((acc, key) => { +// acc[key] = metaData[key]; +// return acc; +// }, {} as Record); +// }; +// type SendObjectOptions = { +// res: ServerResponse; +// client: OssBase; +// objectName: string; +// isDownload?: boolean; +// }; +// export const NotFoundFile = (res: ServerResponse, msg?: string, code = 404) => { +// res.writeHead(code, { 'Content-Type': 'text/plain' }); +// res.end(msg || 'Not Found File'); +// return; +// }; +// export const sendObject = async ({ res, objectName, client, isDownload = false }: SendObjectOptions) => { +// let stat: BucketItemStat; +// try { +// stat = await client.statObject(objectName); +// } catch (e) { +// } finally { +// if (!stat || stat.size === 0) { +// return NotFoundFile(res); +// } +// const contentLength = stat.size; +// const etag = stat.etag; +// const lastModified = stat.lastModified.toISOString(); +// const filename = objectName.split('/').pop() || 'no-file-name-download'; // Extract filename from objectName +// const fileExtension = filename.split('.').pop()?.toLowerCase() || ''; +// const filteredMetaData = filterMetaDataKeys(stat.metaData, ['size', 'etag', 'last-modified']); +// const contentDisposition = viewableExtensions.includes(fileExtension) && !isDownload ? 'inline' : `attachment; filename="${filename}"`; - res.writeHead(200, { - 'Content-Length': contentLength, - etag, - 'last-modified': lastModified, - 'Content-Disposition': contentDisposition, - ...filteredMetaData, - }); - const objectStream = await client.getObject(objectName); +// res.writeHead(200, { +// 'Content-Length': contentLength, +// etag, +// 'last-modified': lastModified, +// 'Content-Disposition': contentDisposition, +// ...filteredMetaData, +// }); +// const objectStream = await client.getObject(objectName); - objectStream.pipe(res, { end: true }); - } -}; +// objectStream.pipe(res, { end: true }); +// } +// }; -export const downloadObject = async ({ objectName, client, filePath }: Pick & { filePath: string }) => { - const objectStream = await client.getObject(objectName); - const dir = path.dirname(filePath); - if (!fs.existsSync(dir)) { - fs.mkdirSync(dir, { recursive: true }); - } - objectStream.pipe(fs.createWriteStream(filePath)); - return objectStream; -}; +// export const downloadObject = async ({ objectName, client, filePath }: Pick & { filePath: string }) => { +// const objectStream = await client.getObject(objectName); +// const dir = path.dirname(filePath); +// if (!fs.existsSync(dir)) { +// fs.mkdirSync(dir, { recursive: true }); +// } +// objectStream.pipe(fs.createWriteStream(filePath)); +// return objectStream; +// };