diff --git a/package.json b/package.json index 12741590..f7cff2bd 100644 --- a/package.json +++ b/package.json @@ -36,10 +36,10 @@ "/oclif.manifest.json" ], "dependencies": { - "@inquirer/prompts": "7.10.1", + "@inquirer/prompts": "8.1.0", "@internxt/inxt-js": "2.2.9", "@internxt/lib": "1.4.1", - "@internxt/sdk": "1.11.17", + "@internxt/sdk": "1.11.23", "@oclif/core": "4.8.0", "@oclif/plugin-autocomplete": "3.2.39", "axios": "1.13.2", @@ -48,40 +48,40 @@ "cli-progress": "3.12.0", "dayjs": "1.11.19", "dotenv": "17.2.3", - "express": "5.2.0", + "express": "5.2.1", "express-async-handler": "1.2.0", - "fast-xml-parser": "5.3.2", + "fast-xml-parser": "5.3.3", "mime-types": "3.0.2", "open": "11.0.0", "openpgp": "6.2.2", "otpauth": "9.4.1", - "pm2": "6.0.13", + "pm2": "6.0.14", "range-parser": "1.2.1", "selfsigned": "4.0.0", "tty-table": "5.0.0", - "winston": "3.18.3" + "winston": "3.19.0" }, "devDependencies": { "@internxt/eslint-config-internxt": "2.0.1", "@internxt/prettier-config": "internxt/prettier-config#v1.0.2", "@openpgp/web-stream-tools": "0.1.3", "@types/cli-progress": "3.11.6", - "@types/express": "5.0.5", + "@types/express": "5.0.6", "@types/mime-types": "3.0.1", "@types/node": "22.19.1", "@types/range-parser": "1.2.7", - "@vitest/coverage-istanbul": "4.0.15", - "@vitest/spy": "4.0.14", - "eslint": "9.39.1", + "@vitest/coverage-istanbul": "4.0.16", + "@vitest/spy": "4.0.16", + "eslint": "9.39.2", "husky": "9.1.7", "lint-staged": "16.2.7", "nodemon": "3.1.11", - "oclif": "4.22.52", + "oclif": "4.22.57", "prettier": "3.7.4", "rimraf": "6.1.2", "ts-node": "10.9.2", "typescript": "5.9.3", - "vitest": "4.0.15", + "vitest": "4.0.16", "vitest-mock-express": "2.2.0" }, "optionalDependencies": { diff --git a/src/commands/download-file.ts b/src/commands/download-file.ts index cd9ffcd3..688fb38f 100644 --- a/src/commands/download-file.ts +++ b/src/commands/download-file.ts @@ -7,8 +7,9 @@ import { DriveFileItem } from '../types/drive.types'; import fs from 'node:fs/promises'; import path from 'node:path'; import { StreamUtils } from '../utils/stream.utils'; -import { NotValidDirectoryError, NotValidFileUuidError } from '../types/command.types'; +import { NotValidDirectoryError, NotValidFileIdError, NotValidFileUuidError } from '../types/command.types'; import { ValidationService } from '../services/validation.service'; + export default class DownloadFile extends Command { static readonly args = {}; static readonly description = @@ -50,17 +51,11 @@ export default class DownloadFile extends Command { const fileUuid = await this.getFileUuid(flags['id'], nonInteractive); - // 1. Get file metadata + // Get file metadata const driveFile = await this.getFileMetadata(fileUuid, flags['json']); const downloadPath = await this.getDownloadPath(downloadDirectory, driveFile, overwrite); - // 2. Prepare the network - const { user } = await AuthService.instance.getAuthDetails(); - const networkFacade = await CLIUtils.prepareNetwork({ loginUserDetails: user, jsonFlag: flags['json'] }); - // 3. Download the file - const fileWriteStream = createWriteStream(downloadPath); - const progressBar = CLIUtils.progress( { format: 'Downloading file [{bar}] {percentage}%', @@ -70,27 +65,42 @@ export default class DownloadFile extends Command { ); progressBar?.start(100, 0); - const [executeDownload, abortable] = await networkFacade.downloadToStream( - driveFile.bucket, - user.mnemonic, - driveFile.fileId, - driveFile.size, - StreamUtils.writeStreamToWritableStream(fileWriteStream), - undefined, - { - abortController: new AbortController(), - progressCallback: (progress) => { - progressBar?.update(progress * 0.99); + + if (driveFile.size === 0) { + await fs.writeFile(downloadPath, ''); + } else { + if (!driveFile.fileId) { + throw new NotValidFileIdError(); + } + + // Prepare the network + const { user } = await AuthService.instance.getAuthDetails(); + const networkFacade = CLIUtils.prepareNetwork({ loginUserDetails: user, jsonFlag: flags['json'] }); + // Download the file + const fileWriteStream = createWriteStream(downloadPath); + + const [executeDownload, abortable] = await networkFacade.downloadToStream( + driveFile.bucket, + user.mnemonic, + driveFile.fileId, + driveFile.size, + StreamUtils.writeStreamToWritableStream(fileWriteStream), + undefined, + { + abortController: new AbortController(), + progressCallback: (progress) => { + progressBar?.update(progress * 0.99); + }, }, - }, - ); + ); - process.on('SIGINT', () => { - abortable.abort('SIGINT received'); - process.exit(1); - }); + process.on('SIGINT', () => { + abortable.abort('SIGINT received'); + process.exit(1); + }); - await executeDownload; + await executeDownload; + } try { await fs.utimes(downloadPath, new Date(), driveFile.modificationTime ?? driveFile.updatedAt); diff --git a/src/types/command.types.ts b/src/types/command.types.ts index 4d66eb6b..74f51495 100644 --- a/src/types/command.types.ts +++ b/src/types/command.types.ts @@ -68,6 +68,7 @@ export class NotValidFolderUuidError extends Error { Object.setPrototypeOf(this, NotValidFolderUuidError.prototype); } } + export class NotValidFileUuidError extends Error { constructor() { super('File UUID is not valid (it must be a valid v4 UUID)'); @@ -76,6 +77,14 @@ export class NotValidFileUuidError extends Error { } } +export class NotValidFileIdError extends Error { + constructor() { + super('FileId is not valid'); + + Object.setPrototypeOf(this, NotValidFileIdError.prototype); + } +} + export class NoRootFolderIdFoundError extends Error { constructor() { super('No root folder id found on your account'); diff --git a/src/utils/cli.utils.ts b/src/utils/cli.utils.ts index c61a1f21..ae34c8de 100644 --- a/src/utils/cli.utils.ts +++ b/src/utils/cli.utils.ts @@ -244,6 +244,7 @@ export class CLIUtils { }; static readonly parseEmpty = async (input: string) => (input.trim().length === 0 ? ' ' : input); + static readonly prepareNetwork = ({ jsonFlag, loginUserDetails, diff --git a/src/webdav/handlers/GET.handler.ts b/src/webdav/handlers/GET.handler.ts index 956af97d..22ab2eab 100644 --- a/src/webdav/handlers/GET.handler.ts +++ b/src/webdav/handlers/GET.handler.ts @@ -9,6 +9,7 @@ import { AuthService } from '../../services/auth.service'; import { NotFoundError } from '../../utils/errors.utils'; import { webdavLogger } from '../../utils/logger.utils'; import { NetworkUtils } from '../../utils/network.utils'; +import { NotValidFileIdError } from '../../types/command.types'; export class GETRequestHandler implements WebDavMethodHandler { constructor( @@ -44,42 +45,60 @@ export class GETRequestHandler implements WebDavMethodHandler { const { user } = await authService.getAuthDetails(); webdavLogger.info(`[GET] [${driveFile.uuid}] Network ready for download`); - const range = req.headers['range']; - const rangeOptions = NetworkUtils.parseRangeHeader({ - range, - totalFileSize: driveFile.size, - }); - let contentLength = driveFile.size; - if (rangeOptions) { - webdavLogger.info(`[GET] [${driveFile.uuid}] Range request received:`, { rangeOptions }); - contentLength = rangeOptions.rangeSize; - } - res.header('Content-Type', 'application/octet-stream'); - res.header('Content-length', contentLength.toString()); - const writable = new WritableStream({ - write(chunk) { - res.write(chunk); - }, - close() { - res.end(); - }, - }); + const fileSize = driveFile.size ?? 0; + + if (fileSize > 0) { + const range = req.headers['range']; + const rangeOptions = NetworkUtils.parseRangeHeader({ + range, + totalFileSize: fileSize, + }); + let contentLength = fileSize; + if (rangeOptions) { + webdavLogger.info(`[GET] [${driveFile.uuid}] Range request received:`, { rangeOptions }); + contentLength = rangeOptions.rangeSize; + } + res.header('Content-length', contentLength.toString()); - const [executeDownload] = await networkFacade.downloadToStream( - driveFile.bucket, - user.mnemonic, - driveFile.fileId, - contentLength, - writable, - rangeOptions, - ); - webdavLogger.info(`[GET] [${driveFile.uuid}] Download prepared, executing...`); - res.status(200); + const writable = new WritableStream({ + write(chunk) { + res.write(chunk); + }, + close() { + res.end(); + }, + }); - await executeDownload; + if (!driveFile.fileId) { + throw new NotValidFileIdError(); + } - webdavLogger.info(`[GET] [${driveFile.uuid}] ✅ Download ready, replying to client`); + const [executeDownload] = await networkFacade.downloadToStream( + driveFile.bucket, + user.mnemonic, + driveFile.fileId, + contentLength, + writable, + rangeOptions, + ); + webdavLogger.info(`[GET] [${driveFile.uuid}] Download prepared, executing...`); + + /** + * If the client doesn't receive a 200 status code, the download can be aborted. + * We need to respond with status 200 while the file is being downloaded via streams + * so the client can keep the connection open and receive the file completely. + */ + res.status(200); + + await executeDownload; + webdavLogger.info(`[GET] [${driveFile.uuid}] ✅ Download ready, replying to client`); + } else { + webdavLogger.info(`[GET] [${driveFile.uuid}] File is empty, replying to client with no content`); + res.header('Content-length', '0'); + res.status(200); + res.end(); + } }; } diff --git a/test/webdav/handlers/GET.handler.test.ts b/test/webdav/handlers/GET.handler.test.ts index e5a05beb..cd7d9288 100644 --- a/test/webdav/handlers/GET.handler.test.ts +++ b/test/webdav/handlers/GET.handler.test.ts @@ -62,7 +62,7 @@ describe('GET request handler', () => { vi.restoreAllMocks(); }); - it('When the Drive file is not found, then it should throw a NotFoundError', async () => { + it('should throw a NotFoundError when the Drive file is not found', async () => { const requestedFileResource: WebDavRequestedResource = getRequestedFileResource(); const request = createWebDavRequestFixture({ @@ -91,7 +91,7 @@ describe('GET request handler', () => { expect(getFileMetadataStub).toHaveBeenCalledOnce(); }); - it('When file is requested, then it should write a response with the content', async () => { + it('should write a response with the content when a file is requested', async () => { const requestedFileResource: WebDavRequestedResource = getRequestedFileResource(); const request = createWebDavRequestFixture({ @@ -136,7 +136,7 @@ describe('GET request handler', () => { ); }); - it('When file is requested with Range, then it should write a response with the ranged content', async () => { + it('should write a response with the ranged content when a file is requested with Range', async () => { const requestedFileResource: WebDavRequestedResource = getRequestedFileResource(); const mockSize = randomInt(500, 10000); @@ -192,4 +192,42 @@ describe('GET request handler', () => { expectedRangeOptions, ); }); + + it('should write a response with no content when an empty file is requested', async () => { + const requestedFileResource: WebDavRequestedResource = getRequestedFileResource(); + + const request = createWebDavRequestFixture({ + method: 'GET', + url: requestedFileResource.url, + headers: {}, + }); + const response = createWebDavResponseFixture({ + status: vi.fn().mockReturnValue({ send: vi.fn() }), + header: vi.fn(), + }); + + const mockFile = newFileItem({ size: 0 }); + const mockAuthDetails: LoginCredentials = UserCredentialsFixture; + + const getRequestedResourceStub = vi + .spyOn(WebDavUtils, 'getRequestedResource') + .mockResolvedValue(requestedFileResource); + const getFileMetadataStub = vi + .spyOn(DriveFileService.instance, 'getFileMetadataByPath') + .mockResolvedValue(mockFile); + const authDetailsStub = vi.spyOn(AuthService.instance, 'getAuthDetails').mockResolvedValue(mockAuthDetails); + const downloadStreamStub = vi + .spyOn(networkFacade, 'downloadToStream') + .mockResolvedValue([Promise.resolve(), new AbortController()]); + + await sut.handle(request, response); + + expect(response.status).toHaveBeenCalledWith(200); + expect(response.header).toHaveBeenCalledWith('Content-length', Number(0).toString()); + expect(response.header).toHaveBeenCalledWith('Content-Type', 'application/octet-stream'); + expect(getRequestedResourceStub).toHaveBeenCalledOnce(); + expect(getFileMetadataStub).toHaveBeenCalledOnce(); + expect(authDetailsStub).toHaveBeenCalledOnce(); + expect(downloadStreamStub).not.toHaveBeenCalled(); + }); }); diff --git a/yarn.lock b/yarn.lock index f7b606a4..25181382 100644 --- a/yarn.lock +++ b/yarn.lock @@ -70,24 +70,24 @@ "@smithy/util-utf8" "^2.0.0" tslib "^2.6.2" -"@aws-sdk/client-cloudfront@^3.940.0": - version "3.946.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-cloudfront/-/client-cloudfront-3.946.0.tgz#2ecc268ff7c01aa406537ca9f473b528fb1d7ec5" - integrity sha512-oGxaDbtQ3pZ3qjTBpqOR2xUyddmJn/3fq+nW7aLzZCLTKDEWVqinPrUw5IBwXt9DVFZNSLPEDmeMsT5lzZkVng== +"@aws-sdk/client-cloudfront@^3.948.0": + version "3.952.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-cloudfront/-/client-cloudfront-3.952.0.tgz#513ee2500246b19a21fa4197ee6d6e4a13c652cb" + integrity sha512-YsOuzzuB45nbtYFmV1fQwsYmLM5pSfcfbm0EXeq1L+8DbdXA3S+BRD+1+K+cWDUjkLTvoKz6M38uPHDTrMgEYA== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.946.0" - "@aws-sdk/credential-provider-node" "3.946.0" + "@aws-sdk/core" "3.947.0" + "@aws-sdk/credential-provider-node" "3.952.0" "@aws-sdk/middleware-host-header" "3.936.0" "@aws-sdk/middleware-logger" "3.936.0" - "@aws-sdk/middleware-recursion-detection" "3.936.0" - "@aws-sdk/middleware-user-agent" "3.946.0" + "@aws-sdk/middleware-recursion-detection" "3.948.0" + "@aws-sdk/middleware-user-agent" "3.947.0" "@aws-sdk/region-config-resolver" "3.936.0" "@aws-sdk/types" "3.936.0" "@aws-sdk/util-endpoints" "3.936.0" "@aws-sdk/util-user-agent-browser" "3.936.0" - "@aws-sdk/util-user-agent-node" "3.946.0" + "@aws-sdk/util-user-agent-node" "3.947.0" "@smithy/config-resolver" "^4.4.3" "@smithy/core" "^3.18.7" "@smithy/fetch-http-handler" "^5.3.6" @@ -117,32 +117,32 @@ "@smithy/util-waiter" "^4.2.5" tslib "^2.6.2" -"@aws-sdk/client-s3@^3.940.0": - version "3.946.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.946.0.tgz#462ca31b0ffdf9c77e990a794004ff5bcc6e0672" - integrity sha512-Y3ww3yd1wzmS2r3qgH3jg4MxCTdeNrae2J1BmdV+IW/2R2gFWJva5U5GbS6KUSUxanJBRG7gd8uOIi1b0EMOng== +"@aws-sdk/client-s3@^3.948.0": + version "3.952.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.952.0.tgz#82ea72b0336282c013191b5ff98db2fb087e2d3c" + integrity sha512-5EFrOpLL1f29eepx6lHYRlwk5Eeo0PVEMROZQmGAGo/7avjWGPwfgkDdfgP2JCIusiKUG6sHN4FOjd86Q7htLw== 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.946.0" - "@aws-sdk/credential-provider-node" "3.946.0" + "@aws-sdk/core" "3.947.0" + "@aws-sdk/credential-provider-node" "3.952.0" "@aws-sdk/middleware-bucket-endpoint" "3.936.0" "@aws-sdk/middleware-expect-continue" "3.936.0" - "@aws-sdk/middleware-flexible-checksums" "3.946.0" + "@aws-sdk/middleware-flexible-checksums" "3.947.0" "@aws-sdk/middleware-host-header" "3.936.0" "@aws-sdk/middleware-location-constraint" "3.936.0" "@aws-sdk/middleware-logger" "3.936.0" - "@aws-sdk/middleware-recursion-detection" "3.936.0" - "@aws-sdk/middleware-sdk-s3" "3.946.0" + "@aws-sdk/middleware-recursion-detection" "3.948.0" + "@aws-sdk/middleware-sdk-s3" "3.947.0" "@aws-sdk/middleware-ssec" "3.936.0" - "@aws-sdk/middleware-user-agent" "3.946.0" + "@aws-sdk/middleware-user-agent" "3.947.0" "@aws-sdk/region-config-resolver" "3.936.0" - "@aws-sdk/signature-v4-multi-region" "3.946.0" + "@aws-sdk/signature-v4-multi-region" "3.947.0" "@aws-sdk/types" "3.936.0" "@aws-sdk/util-endpoints" "3.936.0" "@aws-sdk/util-user-agent-browser" "3.936.0" - "@aws-sdk/util-user-agent-node" "3.946.0" + "@aws-sdk/util-user-agent-node" "3.947.0" "@smithy/config-resolver" "^4.4.3" "@smithy/core" "^3.18.7" "@smithy/eventstream-serde-browser" "^4.2.5" @@ -178,23 +178,23 @@ "@smithy/util-waiter" "^4.2.5" tslib "^2.6.2" -"@aws-sdk/client-sso@3.946.0": - version "3.946.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.946.0.tgz#2ecfe3864f67155eff64fd2312ab46ae30ad77d6" - integrity sha512-kGAs5iIVyUz4p6TX3pzG5q3cNxXnVpC4pwRC6DCSaSv9ozyPjc2d74FsK4fZ+J+ejtvCdJk72uiuQtWJc86Wuw== +"@aws-sdk/client-sso@3.948.0": + version "3.948.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.948.0.tgz#f5ce315d74a05d09e039b7acbf9617b2d39899bc" + integrity sha512-iWjchXy8bIAVBUsKnbfKYXRwhLgRg3EqCQ5FTr3JbR+QR75rZm4ZOYXlvHGztVTmtAZ+PQVA1Y4zO7v7N87C0A== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.946.0" + "@aws-sdk/core" "3.947.0" "@aws-sdk/middleware-host-header" "3.936.0" "@aws-sdk/middleware-logger" "3.936.0" - "@aws-sdk/middleware-recursion-detection" "3.936.0" - "@aws-sdk/middleware-user-agent" "3.946.0" + "@aws-sdk/middleware-recursion-detection" "3.948.0" + "@aws-sdk/middleware-user-agent" "3.947.0" "@aws-sdk/region-config-resolver" "3.936.0" "@aws-sdk/types" "3.936.0" "@aws-sdk/util-endpoints" "3.936.0" "@aws-sdk/util-user-agent-browser" "3.936.0" - "@aws-sdk/util-user-agent-node" "3.946.0" + "@aws-sdk/util-user-agent-node" "3.947.0" "@smithy/config-resolver" "^4.4.3" "@smithy/core" "^3.18.7" "@smithy/fetch-http-handler" "^5.3.6" @@ -222,10 +222,10 @@ "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@aws-sdk/core@3.946.0": - version "3.946.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.946.0.tgz#61ba7b8c3f27f04496231fdc9485df5bceae4e89" - integrity sha512-u2BkbLLVbMFrEiXrko2+S6ih5sUZPlbVyRPtXOqMHlCyzr70sE8kIiD6ba223rQeIFPcYfW/wHc6k4ihW2xxVg== +"@aws-sdk/core@3.947.0": + version "3.947.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.947.0.tgz#2131aa3ddea99b8986145d7810b285daa4a76c3a" + integrity sha512-Khq4zHhuAkvCFuFbgcy3GrZTzfSX7ZIjIcW1zRDxXRLZKRtuhnZdonqTUfaWi5K42/4OmxkYNpsO7X7trQOeHw== dependencies: "@aws-sdk/types" "3.936.0" "@aws-sdk/xml-builder" "3.930.0" @@ -241,23 +241,23 @@ "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-env@3.946.0": - version "3.946.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.946.0.tgz#d2fff69989f98b562c285dbe0d6dc2715fea5f6f" - integrity sha512-P4l+K6wX1tf8LmWUvZofdQ+BgCNyk6Tb9u1H10npvqpuCD+dCM4pXIBq3PQcv/juUBOvLGGREo+Govuh3lfD0Q== +"@aws-sdk/credential-provider-env@3.947.0": + version "3.947.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.947.0.tgz#8110b5cc5bd6d664b932d352ca590ab62c8d3a70" + integrity sha512-VR2V6dRELmzwAsCpK4GqxUi6UW5WNhAXS9F9AzWi5jvijwJo3nH92YNJUP4quMpgFZxJHEWyXLWgPjh9u0zYOA== dependencies: - "@aws-sdk/core" "3.946.0" + "@aws-sdk/core" "3.947.0" "@aws-sdk/types" "3.936.0" "@smithy/property-provider" "^4.2.5" "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-http@3.946.0": - version "3.946.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.946.0.tgz#7befebf44880454563bbb14dd14113f1c7d19ae9" - integrity sha512-/zeOJ6E7dGZQ/l2k7KytEoPJX0APIhwt0A79hPf/bUpMF4dDs2P6JmchDrotk0a0Y/MIdNF8sBQ/MEOPnBiYoQ== +"@aws-sdk/credential-provider-http@3.947.0": + version "3.947.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.947.0.tgz#dc9ddaf5154d3ac2d669c9c6cffb817c1253e536" + integrity sha512-inF09lh9SlHj63Vmr5d+LmwPXZc2IbK8lAruhOr3KLsZAIHEgHgGPXWDC2ukTEMzg0pkexQ6FOhXXad6klK4RA== dependencies: - "@aws-sdk/core" "3.946.0" + "@aws-sdk/core" "3.947.0" "@aws-sdk/types" "3.936.0" "@smithy/fetch-http-handler" "^5.3.6" "@smithy/node-http-handler" "^4.4.5" @@ -268,19 +268,19 @@ "@smithy/util-stream" "^4.5.6" tslib "^2.6.2" -"@aws-sdk/credential-provider-ini@3.946.0": - version "3.946.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.946.0.tgz#0fb5e76f066b5ebbbf98121af6fb9ffd01ae072c" - integrity sha512-Pdgcra3RivWj/TuZmfFaHbqsvvgnSKO0CxlRUMMr0PgBiCnUhyl+zBktdNOeGsOPH2fUzQpYhcUjYUgVSdcSDQ== - dependencies: - "@aws-sdk/core" "3.946.0" - "@aws-sdk/credential-provider-env" "3.946.0" - "@aws-sdk/credential-provider-http" "3.946.0" - "@aws-sdk/credential-provider-login" "3.946.0" - "@aws-sdk/credential-provider-process" "3.946.0" - "@aws-sdk/credential-provider-sso" "3.946.0" - "@aws-sdk/credential-provider-web-identity" "3.946.0" - "@aws-sdk/nested-clients" "3.946.0" +"@aws-sdk/credential-provider-ini@3.952.0": + version "3.952.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.952.0.tgz#3000d0eb185b5edc15ed3938b88db2a95d412904" + integrity sha512-N5B15SwzMkZ8/LLopNksTlPEWWZn5tbafZAUfMY5Xde4rSHGWmv5H/ws2M3P8L0X77E2wKnOJsNmu+GsArBreQ== + dependencies: + "@aws-sdk/core" "3.947.0" + "@aws-sdk/credential-provider-env" "3.947.0" + "@aws-sdk/credential-provider-http" "3.947.0" + "@aws-sdk/credential-provider-login" "3.952.0" + "@aws-sdk/credential-provider-process" "3.947.0" + "@aws-sdk/credential-provider-sso" "3.952.0" + "@aws-sdk/credential-provider-web-identity" "3.952.0" + "@aws-sdk/nested-clients" "3.952.0" "@aws-sdk/types" "3.936.0" "@smithy/credential-provider-imds" "^4.2.5" "@smithy/property-provider" "^4.2.5" @@ -288,13 +288,13 @@ "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-login@3.946.0": - version "3.946.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-login/-/credential-provider-login-3.946.0.tgz#da3eb3f59d9d09ae9c2a2a07d7c4eca00b10929e" - integrity sha512-5iqLNc15u2Zx+7jOdQkIbP62N7n2031tw5hkmIG0DLnozhnk64osOh2CliiOE9x3c4P9Pf4frAwgyy9GzNTk2g== +"@aws-sdk/credential-provider-login@3.952.0": + version "3.952.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-login/-/credential-provider-login-3.952.0.tgz#e5b5a7dfee31332594978c6a82192668f28deb7f" + integrity sha512-jL9zc+e+7sZeJrHzYKK9GOjl1Ktinh0ORU3cM2uRBi7fuH/0zV9pdMN8PQnGXz0i4tJaKcZ1lrE4V0V6LB9NQg== dependencies: - "@aws-sdk/core" "3.946.0" - "@aws-sdk/nested-clients" "3.946.0" + "@aws-sdk/core" "3.947.0" + "@aws-sdk/nested-clients" "3.952.0" "@aws-sdk/types" "3.936.0" "@smithy/property-provider" "^4.2.5" "@smithy/protocol-http" "^5.3.5" @@ -302,17 +302,17 @@ "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-node@3.946.0": - version "3.946.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.946.0.tgz#c544df6010abf2c609ab7e44de872dc663e7db02" - integrity sha512-I7URUqnBPng1a5y81OImxrwERysZqMBREG6svhhGeZgxmqcpAZ8z5ywILeQXdEOCuuES8phUp/ojzxFjPXp/eA== - dependencies: - "@aws-sdk/credential-provider-env" "3.946.0" - "@aws-sdk/credential-provider-http" "3.946.0" - "@aws-sdk/credential-provider-ini" "3.946.0" - "@aws-sdk/credential-provider-process" "3.946.0" - "@aws-sdk/credential-provider-sso" "3.946.0" - "@aws-sdk/credential-provider-web-identity" "3.946.0" +"@aws-sdk/credential-provider-node@3.952.0": + version "3.952.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.952.0.tgz#d8091af4761173900b77e681b382d45f7e1e006b" + integrity sha512-pj7nidLrb3Dz9llcUPh6N0Yv1dBYTS9xJqi8u0kI8D5sn72HJMB+fIOhcDQVXXAw/dpVolOAH9FOAbog5JDAMg== + dependencies: + "@aws-sdk/credential-provider-env" "3.947.0" + "@aws-sdk/credential-provider-http" "3.947.0" + "@aws-sdk/credential-provider-ini" "3.952.0" + "@aws-sdk/credential-provider-process" "3.947.0" + "@aws-sdk/credential-provider-sso" "3.952.0" + "@aws-sdk/credential-provider-web-identity" "3.952.0" "@aws-sdk/types" "3.936.0" "@smithy/credential-provider-imds" "^4.2.5" "@smithy/property-provider" "^4.2.5" @@ -320,39 +320,39 @@ "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-process@3.946.0": - version "3.946.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.946.0.tgz#d9b1d78215a53deb1da34fc208f9a471800f202f" - integrity sha512-GtGHX7OGqIeVQ3DlVm5RRF43Qmf3S1+PLJv9svrdvAhAdy2bUb044FdXXqrtSsIfpzTKlHgQUiRo5MWLd35Ntw== +"@aws-sdk/credential-provider-process@3.947.0": + version "3.947.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.947.0.tgz#7476d97d16472e868ea670799f65e92fdec1addc" + integrity sha512-WpanFbHe08SP1hAJNeDdBDVz9SGgMu/gc0XJ9u3uNpW99nKZjDpvPRAdW7WLA4K6essMjxWkguIGNOpij6Do2Q== dependencies: - "@aws-sdk/core" "3.946.0" + "@aws-sdk/core" "3.947.0" "@aws-sdk/types" "3.936.0" "@smithy/property-provider" "^4.2.5" "@smithy/shared-ini-file-loader" "^4.4.0" "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-sso@3.946.0": - version "3.946.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.946.0.tgz#b76c057b91b9c6779516dde03e61467fb1cd67f1" - integrity sha512-LeGSSt2V5iwYey1ENGY75RmoDP3bA2iE/py8QBKW8EDA8hn74XBLkprhrK5iccOvU3UGWY8WrEKFAFGNjJOL9g== +"@aws-sdk/credential-provider-sso@3.952.0": + version "3.952.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.952.0.tgz#530568287d8a8fa5c55bc6d3e921677537bd53e6" + integrity sha512-1CQdP5RzxeXuEfytbAD5TgreY1c9OacjtCdO8+n9m05tpzBABoNBof0hcjzw1dtrWFH7deyUgfwCl1TAN3yBWQ== dependencies: - "@aws-sdk/client-sso" "3.946.0" - "@aws-sdk/core" "3.946.0" - "@aws-sdk/token-providers" "3.946.0" + "@aws-sdk/client-sso" "3.948.0" + "@aws-sdk/core" "3.947.0" + "@aws-sdk/token-providers" "3.952.0" "@aws-sdk/types" "3.936.0" "@smithy/property-provider" "^4.2.5" "@smithy/shared-ini-file-loader" "^4.4.0" "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-web-identity@3.946.0": - version "3.946.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.946.0.tgz#ff8a600d3fdc25ed446e1af8993f2800b2fccbe3" - integrity sha512-ocBCvjWfkbjxElBI1QUxOnHldsNhoU0uOICFvuRDAZAoxvypJHN3m5BJkqb7gqorBbcv3LRgmBdEnWXOAvq+7Q== +"@aws-sdk/credential-provider-web-identity@3.952.0": + version "3.952.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.952.0.tgz#3c5c7619dd914f9384c2bf9a87a768d8a8fbeaab" + integrity sha512-5hJbfaZdHDAP8JlwplNbXJAat9Vv7L0AbTZzkbPIgjHhC3vrMf5r3a6I1HWFp5i5pXo7J45xyuf5uQGZJxJlCg== dependencies: - "@aws-sdk/core" "3.946.0" - "@aws-sdk/nested-clients" "3.946.0" + "@aws-sdk/core" "3.947.0" + "@aws-sdk/nested-clients" "3.952.0" "@aws-sdk/types" "3.936.0" "@smithy/property-provider" "^4.2.5" "@smithy/shared-ini-file-loader" "^4.4.0" @@ -382,15 +382,15 @@ "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/middleware-flexible-checksums@3.946.0": - version "3.946.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.946.0.tgz#a2b99eac1223286fffee418e2b5bc907a65718b1" - integrity sha512-HJA7RIWsnxcChyZ1hNF/3JICkYCqDonxoeG8FkrmLRBknZ8WVdJiPD420/UwrWaa5F2MuTDA92jxk77rI09h1w== +"@aws-sdk/middleware-flexible-checksums@3.947.0": + version "3.947.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.947.0.tgz#8d92328a9fc623075262047497724b3cbbf34ba7" + integrity sha512-kXXxS2raNESNO+zR0L4YInVjhcGGNI2Mx0AE1ThRhDkAt2se3a+rGf9equ9YvOqA1m8Jl/GSI8cXYvSxXmS9Ag== dependencies: "@aws-crypto/crc32" "5.2.0" "@aws-crypto/crc32c" "5.2.0" "@aws-crypto/util" "5.2.0" - "@aws-sdk/core" "3.946.0" + "@aws-sdk/core" "3.947.0" "@aws-sdk/types" "3.936.0" "@smithy/is-array-buffer" "^4.2.0" "@smithy/node-config-provider" "^4.3.5" @@ -429,23 +429,23 @@ "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/middleware-recursion-detection@3.936.0": - version "3.936.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.936.0.tgz#141b6c92c1aa42bcd71aa854e0783b4f28e87a30" - integrity sha512-l4aGbHpXM45YNgXggIux1HgsCVAvvBoqHPkqLnqMl9QVapfuSTjJHfDYDsx1Xxct6/m7qSMUzanBALhiaGO2fA== +"@aws-sdk/middleware-recursion-detection@3.948.0": + version "3.948.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.948.0.tgz#869dce8a9ad2934deb885602e6f9c905017afd6b" + integrity sha512-Qa8Zj+EAqA0VlAVvxpRnpBpIWJI9KUwaioY1vkeNVwXPlNaz9y9zCKVM9iU9OZ5HXpoUg6TnhATAHXHAE8+QsQ== dependencies: "@aws-sdk/types" "3.936.0" - "@aws/lambda-invoke-store" "^0.2.0" + "@aws/lambda-invoke-store" "^0.2.2" "@smithy/protocol-http" "^5.3.5" "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/middleware-sdk-s3@3.946.0": - version "3.946.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.946.0.tgz#1157eb981519aa2d7ace5df21163d7c20b5b27df" - integrity sha512-0UTFmFd8PX2k/jLu/DBmR+mmLQWAtUGHYps9Rjx3dcXNwaMLaa/39NoV3qn7Dwzfpqc6JZlZzBk+NDOCJIHW9g== +"@aws-sdk/middleware-sdk-s3@3.947.0": + version "3.947.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.947.0.tgz#73cc391e8a0cb4775f4e1da91bd33eddc45f071e" + integrity sha512-DS2tm5YBKhPW2PthrRBDr6eufChbwXe0NjtTZcYDfUCXf0OR+W6cIqyKguwHMJ+IyYdey30AfVw9/Lb5KB8U8A== dependencies: - "@aws-sdk/core" "3.946.0" + "@aws-sdk/core" "3.947.0" "@aws-sdk/types" "3.936.0" "@aws-sdk/util-arn-parser" "3.893.0" "@smithy/core" "^3.18.7" @@ -469,12 +469,12 @@ "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/middleware-user-agent@3.946.0": - version "3.946.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.946.0.tgz#520e977ff528306e5587af648d9f08fe8021afcf" - integrity sha512-7QcljCraeaWQNuqmOoAyZs8KpZcuhPiqdeeKoRd397jVGNRehLFsZbIMOvwaluUDFY11oMyXOkQEERe1Zo2fCw== +"@aws-sdk/middleware-user-agent@3.947.0": + version "3.947.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.947.0.tgz#2cb484c9af8334504a9ebf7e24a4ca0175aaf3f5" + integrity sha512-7rpKV8YNgCP2R4F9RjWZFcD2R+SO/0R4VHIbY9iZJdH2MzzJ8ZG7h8dZ2m8QkQd1fjx4wrFJGGPJUTYXPV3baA== dependencies: - "@aws-sdk/core" "3.946.0" + "@aws-sdk/core" "3.947.0" "@aws-sdk/types" "3.936.0" "@aws-sdk/util-endpoints" "3.936.0" "@smithy/core" "^3.18.7" @@ -482,23 +482,23 @@ "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/nested-clients@3.946.0": - version "3.946.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.946.0.tgz#30c4c0da0f14450cf6512f061c141406c480501d" - integrity sha512-rjAtEguukeW8mlyEQMQI56vxFoyWlaNwowmz1p1rav948SUjtrzjHAp4TOQWhibb7AR7BUTHBCgIcyCRjBEf4g== +"@aws-sdk/nested-clients@3.952.0": + version "3.952.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.952.0.tgz#770c42a1661cd1767716167d865f298584aa3d66" + integrity sha512-OtuirjxuOqZyDcI0q4WtoyWfkq3nSnbH41JwJQsXJefduWcww1FQe5TL1JfYCU7seUxHzK8rg2nFxUBuqUlZtg== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.946.0" + "@aws-sdk/core" "3.947.0" "@aws-sdk/middleware-host-header" "3.936.0" "@aws-sdk/middleware-logger" "3.936.0" - "@aws-sdk/middleware-recursion-detection" "3.936.0" - "@aws-sdk/middleware-user-agent" "3.946.0" + "@aws-sdk/middleware-recursion-detection" "3.948.0" + "@aws-sdk/middleware-user-agent" "3.947.0" "@aws-sdk/region-config-resolver" "3.936.0" "@aws-sdk/types" "3.936.0" "@aws-sdk/util-endpoints" "3.936.0" "@aws-sdk/util-user-agent-browser" "3.936.0" - "@aws-sdk/util-user-agent-node" "3.946.0" + "@aws-sdk/util-user-agent-node" "3.947.0" "@smithy/config-resolver" "^4.4.3" "@smithy/core" "^3.18.7" "@smithy/fetch-http-handler" "^5.3.6" @@ -537,25 +537,25 @@ "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/signature-v4-multi-region@3.946.0": - version "3.946.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.946.0.tgz#616dc86ced2e5c36530d46a94f0c2f943053b249" - integrity sha512-61FZ685lKiJuQ06g6U7K3PL9EwKCxNm51wNlxyKV57nnl1GrLD0NC8O3/hDNkCQLNBArT9y3IXl2H7TtIxP8Jg== +"@aws-sdk/signature-v4-multi-region@3.947.0": + version "3.947.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.947.0.tgz#50d01b664fe19367f79482e77af8aab7c614873c" + integrity sha512-UaYmzoxf9q3mabIA2hc4T6x5YSFUG2BpNjAZ207EA1bnQMiK+d6vZvb83t7dIWL/U1de1sGV19c1C81Jf14rrA== dependencies: - "@aws-sdk/middleware-sdk-s3" "3.946.0" + "@aws-sdk/middleware-sdk-s3" "3.947.0" "@aws-sdk/types" "3.936.0" "@smithy/protocol-http" "^5.3.5" "@smithy/signature-v4" "^5.3.5" "@smithy/types" "^4.9.0" tslib "^2.6.2" -"@aws-sdk/token-providers@3.946.0": - version "3.946.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.946.0.tgz#4f0e1f7c6fdcab7a6b1cd9aec84fbcccee2260af" - integrity sha512-a5c+rM6CUPX2ExmUZ3DlbLlS5rQr4tbdoGcgBsjnAHiYx8MuMNAI+8M7wfjF13i2yvUQj5WEIddvLpayfEZj9g== +"@aws-sdk/token-providers@3.952.0": + version "3.952.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.952.0.tgz#99864bf3dd07ed51d63d0317a71259923bb8b44f" + integrity sha512-IpQVC9WOeXQlCEcFVNXWDIKy92CH1Az37u9K0H3DF/HT56AjhyDVKQQfHUy00nt7bHFe3u0K5+zlwErBeKy5ZA== dependencies: - "@aws-sdk/core" "3.946.0" - "@aws-sdk/nested-clients" "3.946.0" + "@aws-sdk/core" "3.947.0" + "@aws-sdk/nested-clients" "3.952.0" "@aws-sdk/types" "3.936.0" "@smithy/property-provider" "^4.2.5" "@smithy/shared-ini-file-loader" "^4.4.0" @@ -613,12 +613,12 @@ bowser "^2.11.0" tslib "^2.6.2" -"@aws-sdk/util-user-agent-node@3.946.0": - version "3.946.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.946.0.tgz#97504220643572b2cd05ad705cb640a85a4e5831" - integrity sha512-a2UwwvzbK5AxHKUBupfg4s7VnkqRAHjYsuezHnKCniczmT4HZfP1NnfwwvLKEH8qaTrwenxjKSfq4UWmWkvG+Q== +"@aws-sdk/util-user-agent-node@3.947.0": + version "3.947.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.947.0.tgz#1f1f6792262d9bf7dcd7eeef807b3028c7bb486b" + integrity sha512-+vhHoDrdbb+zerV4noQk1DHaUMNzWFWPpPYjVTwW2186k5BEJIecAMChYkghRrBVJ3KPWP1+JnZwOd72F3d4rQ== dependencies: - "@aws-sdk/middleware-user-agent" "3.946.0" + "@aws-sdk/middleware-user-agent" "3.947.0" "@aws-sdk/types" "3.936.0" "@smithy/node-config-provider" "^4.3.5" "@smithy/types" "^4.9.0" @@ -633,10 +633,10 @@ fast-xml-parser "5.2.5" tslib "^2.6.2" -"@aws/lambda-invoke-store@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@aws/lambda-invoke-store/-/lambda-invoke-store-0.2.0.tgz#882361fdad8d8ced383639da72496c26a4bb9377" - integrity sha512-D1jAmAZQYMoPiacfgNf7AWhg3DFN3Wq/vQv3WINt9znwjzHp2x+WzdJFxxj7xZL7V1U79As6G8f7PorMYWBKsQ== +"@aws/lambda-invoke-store@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@aws/lambda-invoke-store/-/lambda-invoke-store-0.2.2.tgz#b00f7d6aedfe832ef6c84488f3a422cce6a47efa" + integrity sha512-C0NBLsIqzDIae8HFw9YIrIBsbc0xTiOtt7fAukGPnqQ/+zZNaq+4jhuccltK0QuWHBnNm/a6kLIRA6GFiM10eg== "@babel/code-frame@^7.27.1": version "7.27.1" @@ -1014,10 +1014,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@9.39.1": - version "9.39.1" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.39.1.tgz#0dd59c3a9f40e3f1882975c321470969243e0164" - integrity sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw== +"@eslint/js@9.39.2": + version "9.39.2" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.39.2.tgz#2d4b8ec4c3ea13c1b3748e0c97ecd766bdd80599" + integrity sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA== "@eslint/object-schema@^2.1.7": version "2.1.7" @@ -1212,6 +1212,11 @@ resolved "https://registry.yarnpkg.com/@inquirer/ansi/-/ansi-1.0.2.tgz#674a4c4d81ad460695cb2a1fc69d78cd187f337e" integrity sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ== +"@inquirer/ansi@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@inquirer/ansi/-/ansi-2.0.2.tgz#c06d511455f12b0ac22d090135008c1b0cc5eb37" + integrity sha512-SYLX05PwJVnW+WVegZt1T4Ip1qba1ik+pNJPDiqvk6zS5Y/i8PhRzLpGEtVd7sW0G8cMtkD8t4AZYhQwm8vnww== + "@inquirer/checkbox@^4.3.2": version "4.3.2" resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-4.3.2.tgz#e1483e6519d6ffef97281a54d2a5baa0d81b3f3b" @@ -1223,6 +1228,16 @@ "@inquirer/type" "^3.0.10" yoctocolors-cjs "^2.1.3" +"@inquirer/checkbox@^5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-5.0.3.tgz#5a7de280059b235f08db41877a463e619672e146" + integrity sha512-xtQP2eXMFlOcAhZ4ReKP2KZvDIBb1AnCfZ81wWXG3DXLVH0f0g4obE0XDPH+ukAEMRcZT0kdX2AS1jrWGXbpxw== + dependencies: + "@inquirer/ansi" "^2.0.2" + "@inquirer/core" "^11.1.0" + "@inquirer/figures" "^2.0.2" + "@inquirer/type" "^4.0.2" + "@inquirer/confirm@^3.1.22": version "3.2.0" resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-3.2.0.tgz#6af1284670ea7c7d95e3f1253684cfbd7228ad6a" @@ -1239,6 +1254,14 @@ "@inquirer/core" "^10.3.2" "@inquirer/type" "^3.0.10" +"@inquirer/confirm@^6.0.3": + version "6.0.3" + resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-6.0.3.tgz#1636ee1b7364dc15a5eb369db4a83a37f9a0732a" + integrity sha512-lyEvibDFL+NA5R4xl8FUmNhmu81B+LDL9L/MpKkZlQDJZXzG8InxiqYxiAlQYa9cqLLhYqKLQwZqXmSTqCLjyw== + dependencies: + "@inquirer/core" "^11.1.0" + "@inquirer/type" "^4.0.2" + "@inquirer/core@^10.3.2": version "10.3.2" resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-10.3.2.tgz#535979ff3ff4fe1e7cc4f83e2320504c743b7e20" @@ -1253,6 +1276,19 @@ wrap-ansi "^6.2.0" yoctocolors-cjs "^2.1.3" +"@inquirer/core@^11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-11.1.0.tgz#b2e17d4e44baa6f2057310529a9b3852fc828860" + integrity sha512-+jD/34T1pK8M5QmZD/ENhOfXdl9Zr+BrQAUc5h2anWgi7gggRq15ZbiBeLoObj0TLbdgW7TAIQRU2boMc9uOKQ== + dependencies: + "@inquirer/ansi" "^2.0.2" + "@inquirer/figures" "^2.0.2" + "@inquirer/type" "^4.0.2" + cli-width "^4.1.0" + mute-stream "^3.0.0" + signal-exit "^4.1.0" + wrap-ansi "^9.0.2" + "@inquirer/core@^9.1.0": version "9.2.1" resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-9.2.1.tgz#677c49dee399c9063f31e0c93f0f37bddc67add1" @@ -1280,6 +1316,15 @@ "@inquirer/external-editor" "^1.0.3" "@inquirer/type" "^3.0.10" +"@inquirer/editor@^5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-5.0.3.tgz#570f7bd6f32cd2b0f6172bc9387eb913fcf40cfd" + integrity sha512-wYyQo96TsAqIciP/r5D3cFeV8h4WqKQ/YOvTg5yOfP2sqEbVVpbxPpfV3LM5D0EP4zUI3EZVHyIUIllnoIa8OQ== + dependencies: + "@inquirer/core" "^11.1.0" + "@inquirer/external-editor" "^2.0.2" + "@inquirer/type" "^4.0.2" + "@inquirer/expand@^4.0.23": version "4.0.23" resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-4.0.23.tgz#a38b5f32226d75717c370bdfed792313b92bdc05" @@ -1289,6 +1334,14 @@ "@inquirer/type" "^3.0.10" yoctocolors-cjs "^2.1.3" +"@inquirer/expand@^5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-5.0.3.tgz#1ed7d2994b415610dfaf8ae5a390f5b097d852ea" + integrity sha512-2oINvuL27ujjxd95f6K2K909uZOU2x1WiAl7Wb1X/xOtL8CgQ1kSxzykIr7u4xTkXkXOAkCuF45T588/YKee7w== + dependencies: + "@inquirer/core" "^11.1.0" + "@inquirer/type" "^4.0.2" + "@inquirer/external-editor@^1.0.3": version "1.0.3" resolved "https://registry.yarnpkg.com/@inquirer/external-editor/-/external-editor-1.0.3.tgz#c23988291ee676290fdab3fd306e64010a6d13b8" @@ -1297,6 +1350,14 @@ chardet "^2.1.1" iconv-lite "^0.7.0" +"@inquirer/external-editor@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@inquirer/external-editor/-/external-editor-2.0.2.tgz#62e51bf0b7e40fa6275f20dcec4deafb8c558c88" + integrity sha512-X/fMXK7vXomRWEex1j8mnj7s1mpnTeP4CO/h2gysJhHLT2WjBnLv4ZQEGpm/kcYI8QfLZ2fgW+9kTKD+jeopLg== + dependencies: + chardet "^2.1.1" + iconv-lite "^0.7.0" + "@inquirer/figures@^1.0.15": version "1.0.15" resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.15.tgz#dbb49ed80df11df74268023b496ac5d9acd22b3a" @@ -1307,6 +1368,11 @@ resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.13.tgz#ad0afd62baab1c23175115a9b62f511b6a751e45" integrity sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw== +"@inquirer/figures@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-2.0.2.tgz#81136386671af0c014eb5af0b18080554505ea12" + integrity sha512-qXm6EVvQx/FmnSrCWCIGtMHwqeLgxABP8XgcaAoywsL0NFga9gD5kfG0gXiv80GjK9Hsoz4pgGwF/+CjygyV9A== + "@inquirer/input@^2.2.4": version "2.3.0" resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-2.3.0.tgz#9b99022f53780fecc842908f3f319b52a5a16865" @@ -1323,6 +1389,14 @@ "@inquirer/core" "^10.3.2" "@inquirer/type" "^3.0.10" +"@inquirer/input@^5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-5.0.3.tgz#37f5a73e06dbda3658bdaf3ba5296ab30e3db6fc" + integrity sha512-4R0TdWl53dtp79Vs6Df2OHAtA2FVNqya1hND1f5wjHWxZJxwDMSNB1X5ADZJSsQKYAJ5JHCTO+GpJZ42mK0Otw== + dependencies: + "@inquirer/core" "^11.1.0" + "@inquirer/type" "^4.0.2" + "@inquirer/number@^3.0.23": version "3.0.23" resolved "https://registry.yarnpkg.com/@inquirer/number/-/number-3.0.23.tgz#3fdec2540d642093fd7526818fd8d4bdc7335094" @@ -1331,6 +1405,14 @@ "@inquirer/core" "^10.3.2" "@inquirer/type" "^3.0.10" +"@inquirer/number@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@inquirer/number/-/number-4.0.3.tgz#30ddef1e65d1830f211687d59e5e9240ef5c6fa0" + integrity sha512-TjQLe93GGo5snRlu83JxE38ZPqj5ZVggL+QqqAF2oBA5JOJoxx25GG3EGH/XN/Os5WOmKfO8iLVdCXQxXRZIMQ== + dependencies: + "@inquirer/core" "^11.1.0" + "@inquirer/type" "^4.0.2" + "@inquirer/password@^4.0.23": version "4.0.23" resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-4.0.23.tgz#b9f5187c8c92fd7aa9eceb9d8f2ead0d7e7b000d" @@ -1340,7 +1422,32 @@ "@inquirer/core" "^10.3.2" "@inquirer/type" "^3.0.10" -"@inquirer/prompts@7.10.1", "@inquirer/prompts@^7.10.1": +"@inquirer/password@^5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-5.0.3.tgz#078fa035cac1687ca71d580ed076fa993a779b70" + integrity sha512-rCozGbUMAHedTeYWEN8sgZH4lRCdgG/WinFkit6ZPsp8JaNg2T0g3QslPBS5XbpORyKP/I+xyBO81kFEvhBmjA== + dependencies: + "@inquirer/ansi" "^2.0.2" + "@inquirer/core" "^11.1.0" + "@inquirer/type" "^4.0.2" + +"@inquirer/prompts@8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-8.1.0.tgz#ad140b4db9e23f13c07a2f14578807dba0e36522" + integrity sha512-LsZMdKcmRNF5LyTRuZE5nWeOjganzmN3zwbtNfcs6GPh3I2TsTtF1UYZlbxVfhxd+EuUqLGs/Lm3Xt4v6Az1wA== + dependencies: + "@inquirer/checkbox" "^5.0.3" + "@inquirer/confirm" "^6.0.3" + "@inquirer/editor" "^5.0.3" + "@inquirer/expand" "^5.0.3" + "@inquirer/input" "^5.0.3" + "@inquirer/number" "^4.0.3" + "@inquirer/password" "^5.0.3" + "@inquirer/rawlist" "^5.1.0" + "@inquirer/search" "^4.0.3" + "@inquirer/select" "^5.0.3" + +"@inquirer/prompts@^7.10.1": version "7.10.1" resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-7.10.1.tgz#e1436c0484cf04c22548c74e2cd239e989d5f847" integrity sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg== @@ -1365,6 +1472,14 @@ "@inquirer/type" "^3.0.10" yoctocolors-cjs "^2.1.3" +"@inquirer/rawlist@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-5.1.0.tgz#e374da2715267fbbd27769579212964b47049fdf" + integrity sha512-yUCuVh0jW026Gr2tZlG3kHignxcrLKDR3KBp+eUgNz+BAdSeZk0e18yt2gyBr+giYhj/WSIHCmPDOgp1mT2niQ== + dependencies: + "@inquirer/core" "^11.1.0" + "@inquirer/type" "^4.0.2" + "@inquirer/search@^3.2.2": version "3.2.2" resolved "https://registry.yarnpkg.com/@inquirer/search/-/search-3.2.2.tgz#4cc6fd574dcd434e4399badc37c742c3fd534ac8" @@ -1375,6 +1490,15 @@ "@inquirer/type" "^3.0.10" yoctocolors-cjs "^2.1.3" +"@inquirer/search@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@inquirer/search/-/search-4.0.3.tgz#c4a62b328cb0345d11c8e353fa63b1c59fdbd833" + integrity sha512-lzqVw0YwuKYetk5VwJ81Ba+dyVlhseHPx9YnRKQgwXdFS0kEavCz2gngnNhnMIxg8+j1N/rUl1t5s1npwa7bqg== + dependencies: + "@inquirer/core" "^11.1.0" + "@inquirer/figures" "^2.0.2" + "@inquirer/type" "^4.0.2" + "@inquirer/select@^2.5.0": version "2.5.0" resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-2.5.0.tgz#345c6908ecfaeef3d84ddd2f9feb2f487c558efb" @@ -1397,6 +1521,16 @@ "@inquirer/type" "^3.0.10" yoctocolors-cjs "^2.1.3" +"@inquirer/select@^5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-5.0.3.tgz#6d3529f9bf2d42a7d4de7f5918a5c0b6b0d6ccb0" + integrity sha512-M+ynbwS0ecQFDYMFrQrybA0qL8DV0snpc4kKevCCNaTpfghsRowRY7SlQBeIYNzHqXtiiz4RG9vTOeb/udew7w== + dependencies: + "@inquirer/ansi" "^2.0.2" + "@inquirer/core" "^11.1.0" + "@inquirer/figures" "^2.0.2" + "@inquirer/type" "^4.0.2" + "@inquirer/type@^1.5.3": version "1.5.5" resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-1.5.5.tgz#303ea04ce7ad2e585b921b662b3be36ef7b4f09b" @@ -1416,6 +1550,11 @@ resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-3.0.10.tgz#11ed564ec78432a200ea2601a212d24af8150d50" integrity sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA== +"@inquirer/type@^4.0.2": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-4.0.2.tgz#e494f1b6c29f6f57a88dd00ef26e99eebebec42a" + integrity sha512-cae7mzluplsjSdgFA6ACLygb5jC8alO0UUnFPyu0E7tNRPrL+q/f8VcSXp+cjZQ7l5CMpDpi2G1+IQvkOiL1Lw== + "@internxt/eslint-config-internxt@2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@internxt/eslint-config-internxt/-/eslint-config-internxt-2.0.1.tgz#0d4c4f085245f10937a3b1914ba091811dba9d05" @@ -1461,10 +1600,10 @@ axios "^1.12.2" uuid "11.1.0" -"@internxt/sdk@1.11.17": - version "1.11.17" - resolved "https://registry.yarnpkg.com/@internxt/sdk/-/sdk-1.11.17.tgz#2f5bdada5d3cbf5cfc685a21c24b5df3ff51d8c8" - integrity sha512-91iEUvZizlwX6KBEFJ3JdFiGrhMBQ9R54sTc3Pei9QtV2FYTU8nTVEPYAg39tLOGzT/kVuplYOtBxfk6wFtSDA== +"@internxt/sdk@1.11.23": + version "1.11.23" + resolved "https://registry.yarnpkg.com/@internxt/sdk/-/sdk-1.11.23.tgz#dab99a44d9d02aa3adac5ce2cda0bd3a56331b76" + integrity sha512-fKmyBiTslgVhFY3CpQdc+7lujIHr4cIVU7RLoZ83ju4go+68/pCUqMHlMSDskHEwo8e7q6Pua23UqgejZUzrMQ== dependencies: axios "1.13.2" uuid "11.1.0" @@ -1670,7 +1809,7 @@ extrareqp2 "^1.0.0" ws "^7.0.0" -"@pm2/pm2-version-check@latest": +"@pm2/pm2-version-check@^1.0.4": version "1.0.4" resolved "https://registry.yarnpkg.com/@pm2/pm2-version-check/-/pm2-version-check-1.0.4.tgz#cf97fbb14b0eca95430ca05eedccbd2683806e43" integrity sha512-SXsM27SGH3yTWKc2fKR4SYNxsmnvuBQ9dd6QHtEWmiZ/VqaOYPAIlS8+vMcn27YLtAEBGvNRSh3TPNvtjZgfqA== @@ -2419,14 +2558,14 @@ "@types/range-parser" "*" "@types/send" "*" -"@types/express@5.0.5": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.5.tgz#3ba069177caa34ab96585ca23b3984d752300cdc" - integrity sha512-LuIQOcb6UmnF7C1PCFmEU1u2hmiHL43fgFQX67sN3H4Z+0Yk0Neo++mFsBjhOAuLzvlQeqAAkeDOZrJs9rzumQ== +"@types/express@5.0.6": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.6.tgz#2d724b2c990dcb8c8444063f3580a903f6d500cc" + integrity sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^5.0.0" - "@types/serve-static" "^1" + "@types/serve-static" "^2" "@types/express@^4.17.21": version "4.17.23" @@ -2502,14 +2641,6 @@ "@types/mime" "^1" "@types/node" "*" -"@types/send@<1": - version "0.17.6" - resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.6.tgz#aeb5385be62ff58a52cd5459daa509ae91651d25" - integrity sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og== - dependencies: - "@types/mime" "^1" - "@types/node" "*" - "@types/serve-static@*": version "1.15.8" resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.8.tgz#8180c3fbe4a70e8f00b9f70b9ba7f08f35987877" @@ -2519,14 +2650,13 @@ "@types/node" "*" "@types/send" "*" -"@types/serve-static@^1": - version "1.15.10" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.10.tgz#768169145a778f8f5dfcb6360aead414a3994fee" - integrity sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw== +"@types/serve-static@^2": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-2.2.0.tgz#d4a447503ead0d1671132d1ab6bd58b805d8de6a" + integrity sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ== dependencies: "@types/http-errors" "*" "@types/node" "*" - "@types/send" "<1" "@types/triple-beam@^1.3.2": version "1.3.5" @@ -2636,10 +2766,10 @@ "@typescript-eslint/types" "8.43.0" eslint-visitor-keys "^4.2.1" -"@vitest/coverage-istanbul@4.0.15": - version "4.0.15" - resolved "https://registry.yarnpkg.com/@vitest/coverage-istanbul/-/coverage-istanbul-4.0.15.tgz#58ac6751e9c8a45ea80949a7d2932b7e76c2ea45" - integrity sha512-KR2Nyb/wZYEDkpnOoF4O5tqK0nwrratk5i538a+8vOWXAMRKBdz3Kkmggq6tmh1tdecty/g68NHstKh03a4Jog== +"@vitest/coverage-istanbul@4.0.16": + version "4.0.16" + resolved "https://registry.yarnpkg.com/@vitest/coverage-istanbul/-/coverage-istanbul-4.0.16.tgz#b22e6bd20d94ea3df008583ab21ab36ecba0c1b4" + integrity sha512-CLyueXIHewDzmov97rGW/RNtg++UBwdtY/F9PZbEDvHlX16JWVyolg7OeGXZS3xkuuoaZMheef7luDFCoC6vsQ== dependencies: "@istanbuljs/schema" "^0.1.3" "@jridgewell/gen-mapping" "^0.3.13" @@ -2653,67 +2783,62 @@ obug "^2.1.1" tinyrainbow "^3.0.3" -"@vitest/expect@4.0.15": - version "4.0.15" - resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-4.0.15.tgz#8e7e1daf54b7bc9ef6db4d989563c1d55ce424f5" - integrity sha512-Gfyva9/GxPAWXIWjyGDli9O+waHDC0Q0jaLdFP1qPAUUfo1FEXPXUfUkp3eZA0sSq340vPycSyOlYUeM15Ft1w== +"@vitest/expect@4.0.16": + version "4.0.16" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-4.0.16.tgz#3cb324c35f59ae72a9e1fb3b4f7b92e596628151" + integrity sha512-eshqULT2It7McaJkQGLkPjPjNph+uevROGuIMJdG3V+0BSR2w9u6J9Lwu+E8cK5TETlfou8GRijhafIMhXsimA== dependencies: "@standard-schema/spec" "^1.0.0" "@types/chai" "^5.2.2" - "@vitest/spy" "4.0.15" - "@vitest/utils" "4.0.15" + "@vitest/spy" "4.0.16" + "@vitest/utils" "4.0.16" chai "^6.2.1" tinyrainbow "^3.0.3" -"@vitest/mocker@4.0.15": - version "4.0.15" - resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-4.0.15.tgz#5aca5f9c4691efdd2397763efcbde9c680f79caf" - integrity sha512-CZ28GLfOEIFkvCFngN8Sfx5h+Se0zN+h4B7yOsPVCcgtiO7t5jt9xQh2E1UkFep+eb9fjyMfuC5gBypwb07fvQ== +"@vitest/mocker@4.0.16": + version "4.0.16" + resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-4.0.16.tgz#0351f17f5843b226f237f86cad7fc6dd7fd5b36d" + integrity sha512-yb6k4AZxJTB+q9ycAvsoxGn+j/po0UaPgajllBgt1PzoMAAmJGYFdDk0uCcRcxb3BrME34I6u8gHZTQlkqSZpg== dependencies: - "@vitest/spy" "4.0.15" + "@vitest/spy" "4.0.16" estree-walker "^3.0.3" magic-string "^0.30.21" -"@vitest/pretty-format@4.0.15": - version "4.0.15" - resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-4.0.15.tgz#2cd8e1bcb4fc8e24124d889a23d1140aecca5744" - integrity sha512-SWdqR8vEv83WtZcrfLNqlqeQXlQLh2iilO1Wk1gv4eiHKjEzvgHb2OVc3mIPyhZE6F+CtfYjNlDJwP5MN6Km7A== +"@vitest/pretty-format@4.0.16": + version "4.0.16" + resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-4.0.16.tgz#91893e0337dbdd6f80a89bcc9710c0d03650f090" + integrity sha512-eNCYNsSty9xJKi/UdVD8Ou16alu7AYiS2fCPRs0b1OdhJiV89buAXQLpTbe+X8V9L6qrs9CqyvU7OaAopJYPsA== dependencies: tinyrainbow "^3.0.3" -"@vitest/runner@4.0.15": - version "4.0.15" - resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-4.0.15.tgz#fdd4e5d05a4c6b73be9746845d29c7329c37ae3b" - integrity sha512-+A+yMY8dGixUhHmNdPUxOh0la6uVzun86vAbuMT3hIDxMrAOmn5ILBHm8ajrqHE0t8R9T1dGnde1A5DTnmi3qw== +"@vitest/runner@4.0.16": + version "4.0.16" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-4.0.16.tgz#a9eb6786545727436e53eb51308abd6af8154323" + integrity sha512-VWEDm5Wv9xEo80ctjORcTQRJ539EGPB3Pb9ApvVRAY1U/WkHXmmYISqU5E79uCwcW7xYUV38gwZD+RV755fu3Q== dependencies: - "@vitest/utils" "4.0.15" + "@vitest/utils" "4.0.16" pathe "^2.0.3" -"@vitest/snapshot@4.0.15": - version "4.0.15" - resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-4.0.15.tgz#52f686d7f314bae53657c1404f8ce7b0b99d2cec" - integrity sha512-A7Ob8EdFZJIBjLjeO0DZF4lqR6U7Ydi5/5LIZ0xcI+23lYlsYJAfGn8PrIWTYdZQRNnSRlzhg0zyGu37mVdy5g== +"@vitest/snapshot@4.0.16": + version "4.0.16" + resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-4.0.16.tgz#6a7e41bdd3a60206c167720042c836c30dc50f3a" + integrity sha512-sf6NcrYhYBsSYefxnry+DR8n3UV4xWZwWxYbCJUt2YdvtqzSPR7VfGrY0zsv090DAbjFZsi7ZaMi1KnSRyK1XA== dependencies: - "@vitest/pretty-format" "4.0.15" + "@vitest/pretty-format" "4.0.16" magic-string "^0.30.21" pathe "^2.0.3" -"@vitest/spy@4.0.14": - version "4.0.14" - resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-4.0.14.tgz#b13c50b1a34a0bdc63ad4a3162b4e16b61960638" - integrity sha512-JmAZT1UtZooO0tpY3GRyiC/8W7dCs05UOq9rfsUUgEZEdq+DuHLmWhPsrTt0TiW7WYeL/hXpaE07AZ2RCk44hg== +"@vitest/spy@4.0.16": + version "4.0.16" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-4.0.16.tgz#3ac2e63e3e0cf304f1a84ec086d8e36cd185fbbd" + integrity sha512-4jIOWjKP0ZUaEmJm00E0cOBLU+5WE0BpeNr3XN6TEF05ltro6NJqHWxXD0kA8/Zc8Nh23AT8WQxwNG+WeROupw== -"@vitest/spy@4.0.15": - version "4.0.15" - resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-4.0.15.tgz#57987c857c3f1bcea5513b379e8dfc8f06b37b8f" - integrity sha512-+EIjOJmnY6mIfdXtE/bnozKEvTC4Uczg19yeZ2vtCz5Yyb0QQ31QWVQ8hswJ3Ysx/K2EqaNsVanjr//2+P3FHw== - -"@vitest/utils@4.0.15": - version "4.0.15" - resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-4.0.15.tgz#2e36d5c34656a1ce1a057d8595a835bff524f1bc" - integrity sha512-HXjPW2w5dxhTD0dLwtYHDnelK3j8sR8cWIaLxr22evTyY6q8pRCjZSmhRWVjBaOVXChQd6AwMzi9pucorXCPZA== +"@vitest/utils@4.0.16": + version "4.0.16" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-4.0.16.tgz#f789a4ef5c5b2e8eef90a4c3304678dbc6c92599" + integrity sha512-h8z9yYhV3e1LEfaQ3zdypIrnAg/9hguReGZoS7Gl0aBG5xgA410zBqECqmaF/+RkTggRsfnzc1XaAHA6bmUufA== dependencies: - "@vitest/pretty-format" "4.0.15" + "@vitest/pretty-format" "4.0.16" tinyrainbow "^3.0.3" accepts@^2.0.0: @@ -3875,10 +4000,10 @@ eslint-visitor-keys@^4.2.1: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz#4cfea60fe7dd0ad8e816e1ed026c1d5251b512c1" integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ== -eslint@9.39.1: - version "9.39.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.39.1.tgz#be8bf7c6de77dcc4252b5a8dcb31c2efff74a6e5" - integrity sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g== +eslint@9.39.2: + version "9.39.2" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.39.2.tgz#cb60e6d16ab234c0f8369a3fe7cc87967faf4b6c" + integrity sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw== dependencies: "@eslint-community/eslint-utils" "^4.8.0" "@eslint-community/regexpp" "^4.12.1" @@ -3886,7 +4011,7 @@ eslint@9.39.1: "@eslint/config-helpers" "^0.4.2" "@eslint/core" "^0.17.0" "@eslint/eslintrc" "^3.3.1" - "@eslint/js" "9.39.1" + "@eslint/js" "9.39.2" "@eslint/plugin-kit" "^0.4.1" "@humanfs/node" "^0.16.6" "@humanwhocodes/module-importer" "^1.0.1" @@ -3990,10 +4115,10 @@ express-async-handler@1.2.0: resolved "https://registry.yarnpkg.com/express-async-handler/-/express-async-handler-1.2.0.tgz#ffc9896061d90f8d2e71a2d2b8668db5b0934391" integrity sha512-rCSVtPXRmQSW8rmik/AIb2P0op6l7r1fMW538yyvTMltCO4xQEWMmobfrIxN2V1/mVrgxB8Az3reYF6yUZw37w== -express@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/express/-/express-5.2.0.tgz#d4101c16807a1a061c6e9adc7ce617473b4afeb9" - integrity sha512-XdpJDLxfztVY59X0zPI6sibRiGcxhTPXRD3IhJmjKf2jwMvkRGV1j7loB8U+heeamoU3XvihAaGRTR4aXXUN3A== +express@5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/express/-/express-5.2.1.tgz#8f21d15b6d327f92b4794ecf8cb08a72f956ac04" + integrity sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw== dependencies: accepts "^2.0.0" body-parser "^2.2.1" @@ -4076,10 +4201,10 @@ fast-xml-parser@5.2.5: dependencies: strnum "^2.1.0" -fast-xml-parser@5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-5.3.2.tgz#78a51945fbf7312e1ff6726cb173f515b4ea11d8" - integrity sha512-n8v8b6p4Z1sMgqRmqLJm3awW4NX7NkaKPfb3uJIBTSH7Pdvufi3PQ3/lJLQrvxcMYl7JI2jnDO90siPEpD8JBA== +fast-xml-parser@5.3.3: + version "5.3.3" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-5.3.3.tgz#84b678e44eb81207c8585795152b4b1c94738b4d" + integrity sha512-2O3dkPAAC6JavuMm8+4+pgTk+5hoAs+CjZ+sWcQLkX9+/tHRuTkQh/Oaifr8qDmZ8iEHb771Ea6G8CdwkrgvYA== dependencies: strnum "^2.1.0" @@ -4972,7 +5097,14 @@ js-tokens@^4.0.0: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@4.1.0, js-yaml@^4.1.0: +js-yaml@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" + integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== + dependencies: + argparse "^2.0.1" + +js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== @@ -5322,6 +5454,11 @@ mute-stream@^2.0.0: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-2.0.0.tgz#a5446fc0c512b71c83c44d908d5c7b7b4c493b2b" integrity sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA== +mute-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-3.0.0.tgz#cd8014dd2acb72e1e91bb67c74f0019e620ba2d1" + integrity sha512-dkEJPVvun4FryqBmZ5KhDo0K9iDXAwn08tMLDinNdRBNPcYEDiWYysLcc6k3mjTMlbP9KyylvRpd4wFtwrT9rw== + mute-stream@~0.0.4: version "0.0.8" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" @@ -5441,13 +5578,13 @@ obug@^2.1.1: resolved "https://registry.yarnpkg.com/obug/-/obug-2.1.1.tgz#2cba74ff241beb77d63055ddf4cd1e9f90b538be" integrity sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ== -oclif@4.22.52: - version "4.22.52" - resolved "https://registry.yarnpkg.com/oclif/-/oclif-4.22.52.tgz#9a5d30706516c8b015b6bbc95c016aa4fe74165b" - integrity sha512-Rl7UX1q9m7mAdCLyRWA1VY6O3AeDLmCTRe2wzbQU/teDK+gvERGdvZfb9est96MM+mBjRVoX5EesoBFOVVee+w== +oclif@4.22.57: + version "4.22.57" + resolved "https://registry.yarnpkg.com/oclif/-/oclif-4.22.57.tgz#105d49b46be85541affa424cb2ef4946ddfbb669" + integrity sha512-qJOdY71q5wdC65AkcyDaVKKGjD40lj4s+OvzJK4tl/u1PR3dNRPPT/shXqTTB+S7KT98PUmv9DUAxriQ7SFhjg== dependencies: - "@aws-sdk/client-cloudfront" "^3.940.0" - "@aws-sdk/client-s3" "^3.940.0" + "@aws-sdk/client-cloudfront" "^3.948.0" + "@aws-sdk/client-s3" "^3.948.0" "@inquirer/confirm" "^3.1.22" "@inquirer/input" "^2.2.4" "@inquirer/select" "^2.5.0" @@ -5768,16 +5905,16 @@ pm2-sysmonit@^1.2.8: systeminformation "^5.7" tx2 "~1.0.4" -pm2@6.0.13: - version "6.0.13" - resolved "https://registry.yarnpkg.com/pm2/-/pm2-6.0.13.tgz#0ef1da610cdd513e186f4edf7378d2cd732c1df1" - integrity sha512-1hS/adMgKoDpX4S1ichJW8SiGpex+oBSZK31dP1FSYOOGtaeuemXzhXPOCefmddgIY4K6v7uu+7xNPnmEnK3ag== +pm2@6.0.14: + version "6.0.14" + resolved "https://registry.yarnpkg.com/pm2/-/pm2-6.0.14.tgz#c606444e2d3259b25643527f4c75136f6c003ac7" + integrity sha512-wX1FiFkzuT2H/UUEA8QNXDAA9MMHDsK/3UHj6Dkd5U7kxyigKDA5gyDw78ycTQZAuGCLWyUX5FiXEuVQWafukA== dependencies: "@pm2/agent" "~2.1.1" "@pm2/blessed" "0.1.81" "@pm2/io" "~6.1.0" "@pm2/js-api" "~0.8.0" - "@pm2/pm2-version-check" latest + "@pm2/pm2-version-check" "^1.0.4" ansis "4.0.0-node10" async "3.2.6" chokidar "3.6.0" @@ -5789,7 +5926,7 @@ pm2@6.0.13: enquirer "2.3.6" eventemitter2 "5.0.1" fclone "1.0.11" - js-yaml "4.1.0" + js-yaml "4.1.1" mkdirp "1.0.4" needle "2.4.0" pidusage "3.0.2" @@ -6984,18 +7121,18 @@ vitest-mock-express@2.2.0: dependencies: "@types/express" "^4.17.21" -vitest@4.0.15: - version "4.0.15" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-4.0.15.tgz#bb65e8289d49c89bc3c1dba8e1bf9c13f039c6b0" - integrity sha512-n1RxDp8UJm6N0IbJLQo+yzLZ2sQCDyl1o0LeugbPWf8+8Fttp29GghsQBjYJVmWq3gBFfe9Hs1spR44vovn2wA== - dependencies: - "@vitest/expect" "4.0.15" - "@vitest/mocker" "4.0.15" - "@vitest/pretty-format" "4.0.15" - "@vitest/runner" "4.0.15" - "@vitest/snapshot" "4.0.15" - "@vitest/spy" "4.0.15" - "@vitest/utils" "4.0.15" +vitest@4.0.16: + version "4.0.16" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-4.0.16.tgz#7ceaecd4612fa6351923e842a0723c48cdfb6719" + integrity sha512-E4t7DJ9pESL6E3I8nFjPa4xGUd3PmiWDLsDztS2qXSJWfHtbQnwAWylaBvSNY48I3vr8PTqIZlyK8TE3V3CA4Q== + dependencies: + "@vitest/expect" "4.0.16" + "@vitest/mocker" "4.0.16" + "@vitest/pretty-format" "4.0.16" + "@vitest/runner" "4.0.16" + "@vitest/snapshot" "4.0.16" + "@vitest/spy" "4.0.16" + "@vitest/utils" "4.0.16" es-module-lexer "^1.7.0" expect-type "^1.2.2" magic-string "^0.30.21" @@ -7133,10 +7270,10 @@ winston@3.17.0: triple-beam "^1.3.0" winston-transport "^4.9.0" -winston@3.18.3: - version "3.18.3" - resolved "https://registry.yarnpkg.com/winston/-/winston-3.18.3.tgz#93ac10808c8e1081d723bc8811cd2f445ddfdcd1" - integrity sha512-NoBZauFNNWENgsnC9YpgyYwOVrl2m58PpQ8lNHjV3kosGs7KJ7Npk9pCUE+WJlawVSe8mykWDKWFSVfs3QO9ww== +winston@3.19.0: + version "3.19.0" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.19.0.tgz#cc1d1262f5f45946904085cfffe73efb4b7a581d" + integrity sha512-LZNJgPzfKR+/J3cHkxcpHKpKKvGfDZVPS4hfJCc4cCG0CgYzvlD6yE/S3CIL/Yt91ak327YCpiF/0MyeZHEHKA== dependencies: "@colors/colors" "^1.6.0" "@dabh/diagnostics" "^2.0.8" @@ -7178,7 +7315,7 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^9.0.0: +wrap-ansi@^9.0.0, wrap-ansi@^9.0.2: version "9.0.2" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-9.0.2.tgz#956832dea9494306e6d209eb871643bb873d7c98" integrity sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==