diff --git a/package.json b/package.json index ed87c310..d5c80bd6 100644 --- a/package.json +++ b/package.json @@ -37,13 +37,14 @@ ], "dependencies": { "@dashlane/pqc-kem-kyber512-node": "1.0.0", - "@inquirer/prompts": "8.2.0", - "@internxt/inxt-js": "2.2.9", + "@inquirer/prompts": "8.3.0", + "@internxt/inxt-js": "2.3.0", "@internxt/lib": "1.4.1", - "@internxt/sdk": "1.13.1", - "@oclif/core": "4.8.0", + "@internxt/sdk": "1.15.0", + "@oclif/core": "4.8.1", "@oclif/plugin-autocomplete": "3.2.40", "axios": "1.13.5", + "better-sqlite3": "12.6.2", "bip39": "3.1.0", "body-parser": "2.2.2", "cli-progress": "3.12.0", @@ -51,7 +52,7 @@ "dotenv": "17.3.1", "express": "5.2.1", "express-async-handler": "1.2.0", - "fast-xml-parser": "5.3.6", + "fast-xml-parser": "5.4.1", "hash-wasm": "4.12.0", "mime-types": "3.0.2", "open": "11.0.0", @@ -61,6 +62,7 @@ "range-parser": "1.2.1", "selfsigned": "5.5.0", "tty-table": "5.0.0", + "typeorm": "0.3.28", "winston": "3.19.0" }, "devDependencies": { @@ -70,17 +72,18 @@ "@types/cli-progress": "3.11.6", "@types/express": "5.0.6", "@types/mime-types": "3.0.1", - "@types/node": "25.2.3", + "@types/node": "25.3.1", "@types/range-parser": "1.2.7", "@vitest/coverage-istanbul": "4.0.18", "@vitest/spy": "4.0.18", "eslint": "9.39.2", "husky": "9.1.7", "lint-staged": "16.2.7", - "nodemon": "3.1.11", - "oclif": "4.22.77", + "nodemon": "3.1.14", + "oclif": "4.22.81", "prettier": "3.8.1", - "rimraf": "6.1.2", + "rimraf": "6.1.3", + "sql.js": "1.14.0", "ts-node": "10.9.2", "typescript": "5.9.3", "vitest": "4.0.18", diff --git a/src/commands/create-folder.ts b/src/commands/create-folder.ts index cb5679db..f32b9ab3 100644 --- a/src/commands/create-folder.ts +++ b/src/commands/create-folder.ts @@ -38,7 +38,7 @@ export default class CreateFolder extends Command { const folderName = await this.getFolderName(flags['name'], nonInteractive); const folderUuidFromFlag = await this.getFolderUuid(flags['id'], nonInteractive); - const folderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty(folderUuidFromFlag, userCredentials); + const folderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty(folderUuidFromFlag); CLIUtils.doing('Creating folder...', flags['json']); const [createNewFolder, requestCanceler] = await DriveFolderService.instance.createFolder({ diff --git a/src/commands/list.ts b/src/commands/list.ts index b0428472..43541610 100644 --- a/src/commands/list.ts +++ b/src/commands/list.ts @@ -36,7 +36,7 @@ export default class List extends Command { if (!userCredentials) throw new MissingCredentialsError(); const folderUuidFromFlag = await this.getFolderUuid(flags['id'], nonInteractive); - const folderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty(folderUuidFromFlag, userCredentials); + const folderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty(folderUuidFromFlag); const { folders, files } = await DriveFolderService.instance.getFolderContent(folderUuid); diff --git a/src/commands/move-file.ts b/src/commands/move-file.ts index b6a01f7e..62a9626f 100644 --- a/src/commands/move-file.ts +++ b/src/commands/move-file.ts @@ -41,10 +41,7 @@ export default class MoveFile extends Command { nonInteractive, reporter: this.log.bind(this), }); - const destinationFolderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty( - destinationFolderUuidFromFlag, - userCredentials, - ); + const destinationFolderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty(destinationFolderUuidFromFlag); const newFile = await DriveFileService.instance.moveFile(fileUuid, { destinationFolder: destinationFolderUuid }); const message = `File moved successfully to: ${destinationFolderUuid}`; diff --git a/src/commands/move-folder.ts b/src/commands/move-folder.ts index d0b9de07..c73706b4 100644 --- a/src/commands/move-folder.ts +++ b/src/commands/move-folder.ts @@ -41,10 +41,7 @@ export default class MoveFolder extends Command { nonInteractive, reporter: this.log.bind(this), }); - const destinationFolderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty( - destinationFolderUuidFromFlag, - userCredentials, - ); + const destinationFolderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty(destinationFolderUuidFromFlag); const newFolder = await DriveFolderService.instance.moveFolder(folderUuid, { destinationFolder: destinationFolderUuid, diff --git a/src/commands/trash-restore-file.ts b/src/commands/trash-restore-file.ts index b6945956..0b622aa3 100644 --- a/src/commands/trash-restore-file.ts +++ b/src/commands/trash-restore-file.ts @@ -42,10 +42,7 @@ export default class TrashRestoreFile extends Command { nonInteractive, reporter: this.log.bind(this), }); - const destinationFolderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty( - destinationFolderUuidFromFlag, - userCredentials, - ); + const destinationFolderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty(destinationFolderUuidFromFlag); const file = await DriveFileService.instance.moveFile(fileUuid, { destinationFolder: destinationFolderUuid }); const message = `File restored successfully to: ${destinationFolderUuid}`; diff --git a/src/commands/trash-restore-folder.ts b/src/commands/trash-restore-folder.ts index 532549cc..ab5a0aa0 100644 --- a/src/commands/trash-restore-folder.ts +++ b/src/commands/trash-restore-folder.ts @@ -42,10 +42,7 @@ export default class TrashRestoreFolder extends Command { nonInteractive, reporter: this.log.bind(this), }); - const destinationFolderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty( - destinationFolderUuidFromFlag, - userCredentials, - ); + const destinationFolderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty(destinationFolderUuidFromFlag); const folder = await DriveFolderService.instance.moveFolder(folderUuid, { destinationFolder: destinationFolderUuid, diff --git a/src/commands/upload-file.ts b/src/commands/upload-file.ts index d671e985..441eeb5d 100644 --- a/src/commands/upload-file.ts +++ b/src/commands/upload-file.ts @@ -55,10 +55,7 @@ export default class UploadFile extends Command { nonInteractive, reporter: this.log.bind(this), }); - const destinationFolderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty( - destinationFolderUuidFromFlag, - userCredentials, - ); + const destinationFolderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty(destinationFolderUuidFromFlag); const timings = { networkUpload: 0, @@ -138,7 +135,7 @@ export default class UploadFile extends Command { const thumbnailTimer = CLIUtils.timer(); if (fileSize > 0 && isThumbnailable && bufferStream) { - void ThumbnailService.instance.tryUploadThumbnail({ + await ThumbnailService.instance.tryUploadThumbnail({ bufferStream, fileType, bucket, diff --git a/src/commands/upload-folder.ts b/src/commands/upload-folder.ts index a7061374..de1ef530 100644 --- a/src/commands/upload-folder.ts +++ b/src/commands/upload-folder.ts @@ -40,10 +40,7 @@ export default class UploadFolder extends Command { nonInteractive: flags['non-interactive'], reporter: this.log.bind(this), }); - const destinationFolderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty( - destinationFolderUuidFromFlag, - userCredentials, - ); + const destinationFolderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty(destinationFolderUuidFromFlag); const progressBar = CLIUtils.progress( { diff --git a/src/commands/workspaces-unset.ts b/src/commands/workspaces-unset.ts index 285e67b9..468383f4 100644 --- a/src/commands/workspaces-unset.ts +++ b/src/commands/workspaces-unset.ts @@ -8,7 +8,7 @@ export default class WorkspacesUnset extends Command { static readonly args = {}; static readonly description = 'Unset the active workspace context for the current user session. ' + - 'Once a workspace is unset, all subsequent commands (list, upload, download, etc.) ' + + 'Once a workspace is unset, WebDAV and all of the subsequent CLI commands ' + 'will operate within the personal drive space until it is changed or set again.'; static readonly aliases = ['workspaces:unset']; static readonly examples = ['<%= config.bin %> <%= command.id %>']; diff --git a/src/commands/workspaces-use.ts b/src/commands/workspaces-use.ts index a6a5fed8..66de3091 100644 --- a/src/commands/workspaces-use.ts +++ b/src/commands/workspaces-use.ts @@ -12,7 +12,7 @@ export default class WorkspacesUse extends Command { static readonly args = {}; static readonly description = 'Set the active workspace context for the current user session. ' + - 'Once a workspace is selected, all subsequent commands (list, upload, download, etc.) ' + + 'Once a workspace is selected, WebDAV and all of the subsequent CLI commands ' + 'will operate within that workspace until it is changed or unset.'; static readonly aliases = ['workspaces:use']; static readonly examples = ['<%= config.bin %> <%= command.id %>']; @@ -75,7 +75,7 @@ export default class WorkspacesUse extends Command { }); const message = - `Workspace ${workspaceUuid} selected successfully. Now all drive commands (list, upload, download, etc.) ` + + `Workspace ${workspaceUuid} selected successfully. Now WebDAV and all of the CLI commands ` + 'will operate within this workspace until it is changed or unset.'; CLIUtils.success(this.log.bind(this), message); diff --git a/src/constants/configs.ts b/src/constants/configs.ts index a66061a6..726acc4c 100644 --- a/src/constants/configs.ts +++ b/src/constants/configs.ts @@ -3,9 +3,8 @@ import os from 'node:os'; export const INTERNXT_CLI_DATA_DIR = path.join(os.homedir(), '.internxt-cli'); export const INTERNXT_CLI_LOGS_DIR = path.join(INTERNXT_CLI_DATA_DIR, 'logs'); -export const INTERNXT_TMP_DIR = os.tmpdir(); export const CREDENTIALS_FILE = path.join(INTERNXT_CLI_DATA_DIR, '.inxtcli'); -export const DRIVE_SQLITE_FILE = path.join(INTERNXT_CLI_DATA_DIR, 'internxt-cli-drive.sqlite'); +export const DRIVE_SQLITE_FILE = path.join(INTERNXT_CLI_DATA_DIR, 'internxt-cli-drive.db'); export const WEBDAV_SSL_CERTS_DIR = path.join(INTERNXT_CLI_DATA_DIR, 'certs'); export const WEBDAV_CONFIGS_FILE = path.join(INTERNXT_CLI_DATA_DIR, 'config.webdav.inxt'); export const WEBDAV_DEFAULT_HOST = '127.0.0.1'; diff --git a/src/hooks/prerun/auth_check.ts b/src/hooks/prerun/auth_check.ts index ad2a071a..32ea793b 100644 --- a/src/hooks/prerun/auth_check.ts +++ b/src/hooks/prerun/auth_check.ts @@ -9,6 +9,7 @@ import { SdkManager } from '../../services/sdk-manager.service'; import { AuthService } from '../../services/auth.service'; import Webdav from '../../commands/webdav'; import WebDAVConfig from '../../commands/webdav-config'; +import { DatabaseService } from '../../services/database/database.service'; const CommandsToSkip = [Whoami, Login, LoginLegacy, Logout, Logs, Webdav, WebDAVConfig]; const hook: Hook<'prerun'> = async function (opts) { @@ -22,6 +23,7 @@ const hook: Hook<'prerun'> = async function (opts) { SdkManager.init({ token, workspaceToken: workspace?.workspaceCredentials.token }); CLIUtils.done(jsonFlag); CLIUtils.clearPreviousLine(jsonFlag); + await DatabaseService.instance.initialize(); } catch (error) { const err = error as Error; CLIUtils.catchError({ diff --git a/src/services/auth.service.ts b/src/services/auth.service.ts index 7d8716d8..c9092c07 100644 --- a/src/services/auth.service.ts +++ b/src/services/auth.service.ts @@ -173,6 +173,14 @@ export class AuthService { return loginCreds.workspace; }; + public getCurrentRootFolder = async (): Promise => { + const loginCreds = await ConfigService.instance.readUser(); + if (!loginCreds?.token || !loginCreds?.user?.mnemonic) { + throw new MissingCredentialsError(); + } + return loginCreds.workspace?.workspaceData?.workspaceUser?.rootFolderId ?? loginCreds.user.rootFolderId; + }; + /** * Logs the user out of the application by invoking the logout method * from the authentication client. This will terminate the user's session diff --git a/src/services/config.service.ts b/src/services/config.service.ts index 835fafbe..1d625267 100644 --- a/src/services/config.service.ts +++ b/src/services/config.service.ts @@ -22,13 +22,14 @@ export class ConfigService { /** * Gets the value from an environment key * @param key The environment key to retrieve - * @throws {Error} If key is not found in process.env + * @param throwIfNotFound If true, throws an error if the key is not found + * @throws {Error} If key is not found in process.env and throwIfNotFound is true * @returns The value from the environment variable **/ - public get = (key: keyof ConfigKeys): string => { + public get = (key: keyof ConfigKeys, throwIfNotFound = true): string => { const value = process.env[key]; - if (!value) throw new Error(`Config key ${key} was not found in process.env`); - return value; + if (!value && throwIfNotFound) throw new Error(`Config key ${key} was not found in process.env`); + return value ?? ''; }; /** diff --git a/src/services/database/database.service.ts b/src/services/database/database.service.ts new file mode 100644 index 00000000..43325ac3 --- /dev/null +++ b/src/services/database/database.service.ts @@ -0,0 +1,43 @@ +import { DataSource } from 'typeorm'; +import { DriveFileModel } from './drive-file/drive-file.model'; +import { DriveFolderModel } from './drive-folder/drive-folder.model'; +import { DRIVE_SQLITE_FILE } from '../../constants/configs'; +import { ConfigService } from '../config.service'; + +export class DatabaseService { + public static readonly instance = new DatabaseService(); + + public dataSource = new DataSource( + ConfigService.instance.get('NODE_ENV', false) === 'test' + ? { + type: 'sqljs', + autoSave: false, + logging: false, + synchronize: true, + entities: [DriveFileModel, DriveFolderModel], + } + : { + type: 'better-sqlite3', + database: DRIVE_SQLITE_FILE, + logging: false, + synchronize: true, + entities: [DriveFileModel, DriveFolderModel], + }, + ); + + public initialize = () => { + return this.dataSource.initialize(); + }; + + public destroy = () => { + return this.dataSource.destroy(); + }; + + public clear = () => { + return this.dataSource.synchronize(true); + }; + + public drop = () => { + return this.dataSource.dropDatabase(); + }; +} diff --git a/src/services/database/drive-file/drive-file.attributes.ts b/src/services/database/drive-file/drive-file.attributes.ts index 81da5b72..c06719de 100644 --- a/src/services/database/drive-file/drive-file.attributes.ts +++ b/src/services/database/drive-file/drive-file.attributes.ts @@ -1,13 +1,10 @@ export interface DriveFileAttributes { - id: number; - name: string; - type?: string; uuid: string; - fileId: string; - folderId: number; + name: string; + type: string | null; + fileId: string | null; folderUuid: string; bucket: string; - relativePath: string; createdAt: Date; updatedAt: Date; size: number; diff --git a/src/services/database/drive-file/drive-file.domain.ts b/src/services/database/drive-file/drive-file.domain.ts index 55044886..a1ceaa51 100644 --- a/src/services/database/drive-file/drive-file.domain.ts +++ b/src/services/database/drive-file/drive-file.domain.ts @@ -2,15 +2,12 @@ import { DriveFileItem } from '../../../types/drive.types'; import { DriveFileAttributes } from './drive-file.attributes'; export class DriveFile implements DriveFileAttributes { - id: number; name: string; - type?: string; + type: string | null; uuid: string; - fileId: string; - folderId: number; + fileId: string | null; folderUuid: string; bucket: string; - relativePath: string; createdAt: Date; updatedAt: Date; size: number; @@ -19,15 +16,12 @@ export class DriveFile implements DriveFileAttributes { modificationTime: Date; constructor({ - id, name, type, uuid, fileId, - folderId, folderUuid, bucket, - relativePath, createdAt, updatedAt, size, @@ -35,15 +29,12 @@ export class DriveFile implements DriveFileAttributes { creationTime, modificationTime, }: DriveFileAttributes) { - this.id = id; this.name = name; this.type = type; this.uuid = uuid; this.fileId = fileId; - this.folderId = folderId; this.folderUuid = folderUuid; this.bucket = bucket; - this.relativePath = relativePath; this.createdAt = createdAt; this.updatedAt = updatedAt; this.size = size; @@ -58,15 +49,12 @@ export class DriveFile implements DriveFileAttributes { public toJSON(): DriveFileAttributes { return { - id: this.id, name: this.name, type: this.type, uuid: this.uuid, fileId: this.fileId, - folderId: this.folderId, folderUuid: this.folderUuid, bucket: this.bucket, - relativePath: this.relativePath, createdAt: this.createdAt, updatedAt: this.updatedAt, size: this.size, @@ -79,12 +67,10 @@ export class DriveFile implements DriveFileAttributes { public toItem(): DriveFileItem { return { itemType: 'file', - id: this.id, name: this.name, type: this.type, uuid: this.uuid, fileId: this.fileId, - folderId: this.folderId, folderUuid: this.folderUuid, bucket: this.bucket, createdAt: this.createdAt, diff --git a/src/services/database/drive-file/drive-file.model.ts b/src/services/database/drive-file/drive-file.model.ts new file mode 100644 index 00000000..5c3b25e3 --- /dev/null +++ b/src/services/database/drive-file/drive-file.model.ts @@ -0,0 +1,41 @@ +import { DriveFileAttributes } from './drive-file.attributes'; +import { Column, Entity, PrimaryColumn } from 'typeorm'; + +@Entity('drive_file') +export class DriveFileModel implements DriveFileAttributes { + @PrimaryColumn({ nullable: false, type: 'varchar' }) + declare uuid: string; + + @Column({ nullable: false, type: 'varchar' }) + declare name: string; + + @Column({ nullable: true, type: 'varchar' }) + declare type: string | null; + + @Column({ nullable: true, type: 'varchar' }) + declare fileId: string | null; + + @Column({ nullable: false, type: 'varchar' }) + declare folderUuid: string; + + @Column({ nullable: false, type: 'varchar' }) + declare bucket: string; + + @Column({ nullable: false, type: 'varchar' }) + declare createdAt: Date; + + @Column({ nullable: false, type: 'varchar' }) + declare updatedAt: Date; + + @Column({ nullable: false, type: 'bigint' }) + declare size: number; + + @Column({ nullable: false, type: 'varchar' }) + declare status: 'EXISTS' | 'TRASHED' | 'DELETED'; + + @Column({ nullable: false, type: 'varchar' }) + declare creationTime: Date; + + @Column({ nullable: false, type: 'varchar' }) + declare modificationTime: Date; +} diff --git a/src/services/database/drive-file/drive-file.repository.ts b/src/services/database/drive-file/drive-file.repository.ts new file mode 100644 index 00000000..6768e190 --- /dev/null +++ b/src/services/database/drive-file/drive-file.repository.ts @@ -0,0 +1,67 @@ +import { IsNull } from 'typeorm'; +import { DatabaseUtils } from '../../../utils/database.utils'; +import { ErrorUtils } from '../../../utils/errors.utils'; +import { DatabaseService } from '../database.service'; +import { DriveFile } from './drive-file.domain'; +import { DriveFileModel } from './drive-file.model'; + +export class FileRepository { + public static readonly instance = new FileRepository(); + + private readonly fileRepository = DatabaseService.instance.dataSource.getRepository(DriveFileModel); + + public createOrUpdate = async (files: DriveFileModel[]): Promise => { + try { + for (let i = 0; i < files.length; i += DatabaseUtils.CREATE_BATCH_SIZE) { + const chunk = files.slice(i, i + DatabaseUtils.CREATE_BATCH_SIZE); + + await this.fileRepository.upsert(chunk, { conflictPaths: ['uuid'] }); + } + + return files.map((file) => DriveFile.build(file)); + } catch (error) { + ErrorUtils.report(error, { createOrUpdate: files }); + } + }; + + public updateByUuid = async (uuid: string, update: Partial) => { + try { + return await this.fileRepository.update({ uuid }, update); + } catch (error) { + ErrorUtils.report(error, { updateByUuid: uuid }); + } + }; + + public delete = async (uuids: string[]) => { + try { + return await this.fileRepository.delete(uuids); + } catch (error) { + ErrorUtils.report(error, { delete: uuids }); + } + }; + + public deleteByParentUuid = async (parentUuid: string) => { + try { + return await this.fileRepository.delete({ folderUuid: parentUuid }); + } catch (error) { + ErrorUtils.report(error, { deleteByParentUuid: parentUuid }); + } + }; + + public getByParentUuidNameAndType = async ( + parentUuid: string, + name: string, + type: string | null, + ): Promise => { + try { + const typeCondition = type ?? IsNull(); + const file = await this.fileRepository.findOneBy({ folderUuid: parentUuid, name, type: typeCondition }); + if (!file) { + return; + } + return DriveFile.build(file); + } catch (error) { + ErrorUtils.report(error, { getByParentuuidAndName: { parentUuid, name, type } }); + } + }; +} diff --git a/src/services/database/drive-folder/drive-folder.attributes.ts b/src/services/database/drive-folder/drive-folder.attributes.ts index 83f73833..425babef 100644 --- a/src/services/database/drive-folder/drive-folder.attributes.ts +++ b/src/services/database/drive-folder/drive-folder.attributes.ts @@ -1,11 +1,10 @@ export interface DriveFolderAttributes { - id: number; - name: string; uuid: string; + name: string; status: 'EXISTS' | 'TRASHED'; - relativePath: string; - parentId: number | null; parentUuid: string | null; createdAt: Date; updatedAt: Date; + creationTime: Date; + modificationTime: Date; } diff --git a/src/services/database/drive-folder/drive-folder.domain.ts b/src/services/database/drive-folder/drive-folder.domain.ts index 8974f47a..719b8faf 100644 --- a/src/services/database/drive-folder/drive-folder.domain.ts +++ b/src/services/database/drive-folder/drive-folder.domain.ts @@ -2,36 +2,33 @@ import { DriveFolderItem } from '../../../types/drive.types'; import { DriveFolderAttributes } from './drive-folder.attributes'; export class DriveFolder implements DriveFolderAttributes { - id: number; name: string; uuid: string; - relativePath: string; - parentId: number | null; parentUuid: string | null; + status: DriveFolderAttributes['status']; createdAt: Date; updatedAt: Date; - status: DriveFolderAttributes['status']; + creationTime: Date; + modificationTime: Date; constructor({ - id, name, uuid, - relativePath, - parentId, parentUuid, createdAt, updatedAt, status, + creationTime, + modificationTime, }: DriveFolderAttributes) { - this.id = id; this.name = name; this.uuid = uuid; - this.relativePath = relativePath; - this.parentId = parentId; this.parentUuid = parentUuid; + this.status = status; this.createdAt = createdAt; this.updatedAt = updatedAt; - this.status = status; + this.creationTime = creationTime; + this.modificationTime = modificationTime; } static build(folder: DriveFolderAttributes): DriveFolder { @@ -40,30 +37,28 @@ export class DriveFolder implements DriveFolderAttributes { public toJSON(): DriveFolderAttributes { return { - id: this.id, name: this.name, uuid: this.uuid, status: this.status, - relativePath: this.relativePath, - parentId: this.parentId, parentUuid: this.parentUuid, createdAt: this.createdAt, updatedAt: this.updatedAt, + creationTime: this.creationTime, + modificationTime: this.modificationTime, }; } public toItem(): DriveFolderItem { return { itemType: 'folder', - id: this.id, name: this.name, uuid: this.uuid, status: this.status, - parentId: this.parentId, parentUuid: this.parentUuid, createdAt: this.createdAt, updatedAt: this.updatedAt, - encryptedName: '', + creationTime: this.creationTime, + modificationTime: this.modificationTime, bucket: null, }; } diff --git a/src/services/database/drive-folder/drive-folder.model.ts b/src/services/database/drive-folder/drive-folder.model.ts new file mode 100644 index 00000000..3106a7d7 --- /dev/null +++ b/src/services/database/drive-folder/drive-folder.model.ts @@ -0,0 +1,29 @@ +import { Column, Entity, PrimaryColumn } from 'typeorm'; +import { DriveFolderAttributes } from './drive-folder.attributes'; + +@Entity('drive_folder') +export class DriveFolderModel implements DriveFolderAttributes { + @PrimaryColumn({ nullable: false, type: 'varchar' }) + declare uuid: string; + + @Column({ nullable: false, type: 'varchar' }) + declare name: string; + + @Column({ nullable: false, type: 'varchar' }) + declare status: 'EXISTS' | 'TRASHED'; + + @Column({ nullable: true, type: 'varchar' }) + declare parentUuid: string | null; + + @Column({ nullable: false, type: 'varchar' }) + declare createdAt: Date; + + @Column({ nullable: false, type: 'varchar' }) + declare updatedAt: Date; + + @Column({ nullable: false, type: 'varchar' }) + declare creationTime: Date; + + @Column({ nullable: false, type: 'varchar' }) + declare modificationTime: Date; +} diff --git a/src/services/database/drive-folder/drive-folder.repository.ts b/src/services/database/drive-folder/drive-folder.repository.ts new file mode 100644 index 00000000..7f83a351 --- /dev/null +++ b/src/services/database/drive-folder/drive-folder.repository.ts @@ -0,0 +1,100 @@ +import { ErrorUtils } from '../../../utils/errors.utils'; +import { DatabaseService } from '../database.service'; +import { DriveFolder } from './drive-folder.domain'; +import { DriveFolderModel } from './drive-folder.model'; +import { DatabaseUtils } from '../../../utils/database.utils'; + +export class FolderRepository { + public static readonly instance = new FolderRepository(); + + private readonly folderRepository = DatabaseService.instance.dataSource.getRepository(DriveFolderModel); + + public getByUuid = async (uuid: string): Promise => { + try { + const folder = await this.folderRepository.findOneBy({ uuid }); + if (!folder) { + return; + } + return DriveFolder.build(folder); + } catch (error) { + ErrorUtils.report(error, { getByUuid: uuid }); + } + }; + + public getAllByParentUuid = async (parentUuid?: string): Promise => { + try { + const folders = await this.folderRepository.findBy({ parentUuid }); + if (!folders) { + return; + } + return folders.map((folder) => DriveFolder.build(folder)); + } catch (error) { + ErrorUtils.report(error, { getAllByParentUuid: parentUuid }); + } + }; + + public getByParentUuidAndName = async (parentUuid: string, name: string): Promise => { + try { + const folder = await this.folderRepository.findOneBy({ parentUuid, name }); + if (!folder) { + return; + } + return DriveFolder.build(folder); + } catch (error) { + ErrorUtils.report(error, { getByParentuuidAndName: { parentUuid, name } }); + } + }; + + public getByPath = async (path: string, parentUuid: string): Promise => { + try { + const onFound = async (uuid: string) => { + const folder = await this.folderRepository.findOneBy({ uuid }); + if (!folder) { + return; + } + return DriveFolder.build(folder); + }; + + return DatabaseUtils.getFolderByPathGeneric({ + path, + parentUuid, + onFound, + getByParentAndName: this.getByParentUuidAndName.bind(this), + }); + } catch (error) { + ErrorUtils.report(error, { getByPath: path }); + } + }; + + public createOrUpdate = async (files: DriveFolderModel[]) => { + if (files.length === 0) return; + + try { + for (let i = 0; i < files.length; i += DatabaseUtils.CREATE_BATCH_SIZE) { + const chunk = files.slice(i, i + DatabaseUtils.CREATE_BATCH_SIZE); + + await this.folderRepository.upsert(chunk, { conflictPaths: ['uuid'] }); + } + + return files.map((file) => DriveFolder.build(file)); + } catch (error) { + ErrorUtils.report(error, { createOrUpdate: files }); + } + }; + + public updateByUuid = async (uuid: string, update: Partial) => { + try { + return await this.folderRepository.update({ uuid }, update); + } catch (error) { + ErrorUtils.report(error, { updateByUuid: uuid }); + } + }; + + public delete = async (uuids: string[]) => { + try { + return await this.folderRepository.delete(uuids); + } catch (error) { + ErrorUtils.report(error, { delete: uuids }); + } + }; +} diff --git a/src/services/drive/drive-file.service.ts b/src/services/drive/drive-file.service.ts index b44e0c77..d63f0c17 100644 --- a/src/services/drive/drive-file.service.ts +++ b/src/services/drive/drive-file.service.ts @@ -3,6 +3,11 @@ import { SdkManager } from '../sdk-manager.service'; import { DriveFileItem } from '../../types/drive.types'; import { DriveUtils } from '../../utils/drive.utils'; import { AuthService } from '../auth.service'; +import { FileRepository } from '../database/drive-file/drive-file.repository'; +import { DriveFolderService } from './drive-folder.service'; +import { NotFoundError } from '../../utils/errors.utils'; +import { PathUtils } from '../../utils/path.utils'; +import { logger } from '../../utils/logger.utils'; export class DriveFileService { static readonly instance = new DriveFileService(); @@ -10,23 +15,24 @@ export class DriveFileService { public createFile = async (payload: StorageTypes.FileEntryByUuid): Promise => { const driveFile = await this.createDriveFileEntry(payload); - return { + const driveFileItem: DriveFileItem = { itemType: 'file', name: payload.plainName, - id: driveFile.id, uuid: driveFile.uuid, size: driveFile.size, bucket: driveFile.bucket, createdAt: new Date(driveFile.createdAt), updatedAt: new Date(driveFile.updatedAt), - fileId: driveFile.fileId, - type: driveFile.type, + fileId: driveFile.fileId ?? null, + type: driveFile.type ?? null, status: driveFile.status as DriveFileItem['status'], - folderId: driveFile.folderId, folderUuid: driveFile.folderUuid, creationTime: new Date(driveFile.creationTime ?? driveFile.createdAt), modificationTime: new Date(driveFile.modificationTime ?? driveFile.updatedAt), }; + await FileRepository.instance.createOrUpdate([driveFileItem]); + + return driveFileItem; }; private createDriveFileEntry = async (payload: StorageTypes.FileEntryByUuid): Promise => { @@ -61,23 +67,65 @@ export class DriveFileService { const [getFileMetadata] = storageClient.getFile(uuid); const fileMetadata = await getFileMetadata; - return DriveUtils.driveFileMetaToItem(fileMetadata); + const driveFileItem = DriveUtils.driveFileMetaToItem(fileMetadata); + + await FileRepository.instance.createOrUpdate([driveFileItem]); + + return driveFileItem; }; - public moveFile = (uuid: string, payload: StorageTypes.MoveFileUuidPayload): Promise => { + public moveFile = async (uuid: string, payload: StorageTypes.MoveFileUuidPayload): Promise => { const storageClient = SdkManager.instance.getStorage(); - return storageClient.moveFileByUuid(uuid, payload); + const fileMeta = await storageClient.moveFileByUuid(uuid, payload); + + const driveFileItem = DriveUtils.driveFileMetaToItem(fileMeta); + await FileRepository.instance.createOrUpdate([driveFileItem]); + + return fileMeta; }; - public renameFile = (fileUuid: string, payload: { plainName?: string; type?: string | null }): Promise => { + public renameFile = async ( + fileUuid: string, + payload: { plainName?: string; type?: string | null }, + ): Promise => { const storageClient = SdkManager.instance.getStorage(); - return storageClient.updateFileMetaByUUID(fileUuid, payload); + await storageClient.updateFileMetaByUUID(fileUuid, payload); + await FileRepository.instance.updateByUuid(fileUuid, { name: payload.plainName, type: payload.type }); + }; + + public getByParentUuidAndName = async ( + parentUuid: string, + name: string, + type: string | null, + ): Promise => { + const subFiles = await DriveFolderService.instance.getFolderSubfiles(parentUuid); + const fileMeta = subFiles.find( + (file) => (file.plainName === name || file.name === name) && (file.type ?? null) === type, + ); + if (!fileMeta) { + throw new NotFoundError('File not found'); + } + return DriveUtils.driveFileMetaToItem(fileMeta); }; public getFileMetadataByPath = async (path: string): Promise => { - const storageClient = SdkManager.instance.getStorage(); - const fileMetadata = await storageClient.getFileByPath(encodeURIComponent(path)); - return DriveUtils.driveFileMetaToItem(fileMetadata); + const { fileName, fileType, folderPath } = PathUtils.getPathFileData(path); + + const parentFolder = await DriveFolderService.instance.getFolderMetadataByPath(folderPath); + + const localFileDB = await FileRepository.instance.getByParentUuidNameAndType(parentFolder.uuid, fileName, fileType); + if (localFileDB) { + try { + const file = await this.getFileMetadata(localFileDB.uuid); + if (file) { + return file; + } + } catch { + logger.error('File not found when getting file by path on local DB', { path }); + } + } + + return this.getByParentUuidAndName(parentFolder.uuid, fileName, fileType); }; public createThumbnail = (payload: StorageTypes.CreateThumbnailEntryPayload): Promise => { diff --git a/src/services/drive/drive-folder.service.ts b/src/services/drive/drive-folder.service.ts index e828bfb2..e0b2237f 100644 --- a/src/services/drive/drive-folder.service.ts +++ b/src/services/drive/drive-folder.service.ts @@ -1,4 +1,4 @@ -import { FetchPaginatedFile, FetchPaginatedFolder } from '@internxt/sdk/dist/drive/storage/types'; +import { FetchPaginatedFile, FetchPaginatedFolder, FileStatus } from '@internxt/sdk/dist/drive/storage/types'; import { SdkManager } from '../sdk-manager.service'; import { StorageTypes } from '@internxt/sdk/dist/drive'; import { DriveFolderItem } from '../../types/drive.types'; @@ -6,6 +6,13 @@ import { DriveUtils } from '../../utils/drive.utils'; import { RequestCanceler } from '@internxt/sdk/dist/shared/http/types'; import { AuthService } from '../auth.service'; import { WorkspaceCredentialsDetails } from '../../types/command.types'; +import { FolderRepository } from '../database/drive-folder/drive-folder.repository'; +import { DriveFolder } from '../database/drive-folder/drive-folder.domain'; +import { FileRepository } from '../database/drive-file/drive-file.repository'; +import { DriveFile } from '../database/drive-file/drive-file.domain'; +import { NotFoundError } from '../../utils/errors.utils'; +import { DatabaseUtils } from '../../utils/database.utils'; +import { logger } from '../../utils/logger.utils'; export class DriveFolderService { static readonly instance = new DriveFolderService(); @@ -13,21 +20,37 @@ export class DriveFolderService { public getFolderMetaByUuid = async (uuid: string): Promise => { const storageClient = SdkManager.instance.getStorage(); const folderMeta = await storageClient.getFolderMeta(uuid); - return DriveUtils.driveFolderMetaToItem(folderMeta); + const folderItem = DriveUtils.driveFolderMetaToItem(folderMeta); + await FolderRepository.instance.createOrUpdate([folderItem]); + return folderItem; }; public getFolderMetaById = async (id: number): Promise => { const storageClient = SdkManager.instance.getStorage(); const folderMeta = await storageClient.getFolderMetaById(id); - return DriveUtils.driveFolderMetaToItem(folderMeta); + const folderItem = DriveUtils.driveFolderMetaToItem(folderMeta); + await FolderRepository.instance.createOrUpdate([folderItem]); + return folderItem; }; public getFolderContent = async (folderUuid: string) => { + const folders = await this.getFolderSubfolders(folderUuid); + const files = await this.getFolderSubfiles(folderUuid); + return { folders, files }; + }; + + public getFolderSubfolders = async (folderUuid: string): Promise => { const currentWorkspace = await AuthService.instance.getCurrentWorkspace(); const currentWorkspaceCreds = currentWorkspace?.workspaceCredentials; const folders = await this.getAllSubfolders(currentWorkspaceCreds, folderUuid, 0); + return folders; + }; + + public getFolderSubfiles = async (folderUuid: string): Promise => { + const currentWorkspace = await AuthService.instance.getCurrentWorkspace(); + const currentWorkspaceCreds = currentWorkspace?.workspaceCredentials; const files = await this.getAllSubfiles(currentWorkspaceCreds, folderUuid, 0); - return { folders, files }; + return files; }; private readonly getAllSubfolders = async ( @@ -60,6 +83,22 @@ export class DriveFolderService { folders = (await personalFolderContentPromise).folders; } + await FolderRepository.instance.createOrUpdate( + folders.map( + (folder) => + new DriveFolder({ + uuid: folder.uuid, + name: folder.plainName, + parentUuid: folder.parentUuid, + status: FileStatus.EXISTS, + createdAt: new Date(folder.createdAt), + updatedAt: new Date(folder.updatedAt), + creationTime: new Date(folder.creationTime ?? folder.createdAt), + modificationTime: new Date(folder.modificationTime ?? folder.updatedAt), + }), + ), + ); + if (folders.length > 0) { return folders.concat(await this.getAllSubfolders(currentWorkspace, folderUuid, offset + folders.length)); } else { @@ -92,15 +131,41 @@ export class DriveFolderService { } if (files.length > 0) { + await FileRepository.instance.deleteByParentUuid(folderUuid); + await FileRepository.instance.createOrUpdate( + files.map( + (file) => + new DriveFile({ + uuid: file.uuid, + name: file.plainName, + type: file.type, + folderUuid: file.folderUuid, + status: FileStatus.EXISTS, + bucket: file.bucket, + size: Number(file.size ?? 0), + fileId: file.fileId, + createdAt: new Date(file.createdAt), + updatedAt: new Date(file.updatedAt), + creationTime: new Date(file.creationTime ?? file.createdAt), + modificationTime: new Date(file.modificationTime ?? file.updatedAt), + }), + ), + ); return files.concat(await this.getAllSubfiles(currentWorkspace, folderUuid, offset + files.length)); } else { return files; } }; - public moveFolder = (uuid: string, payload: StorageTypes.MoveFolderUuidPayload): Promise => { + public moveFolder = async ( + uuid: string, + payload: StorageTypes.MoveFolderUuidPayload, + ): Promise => { const storageClient = SdkManager.instance.getStorage(); - return storageClient.moveFolderByUuid(uuid, payload); + const folderMeta = await storageClient.moveFolderByUuid(uuid, payload); + const folderItem = DriveUtils.driveFolderMetaToItem(folderMeta); + await FolderRepository.instance.createOrUpdate([folderItem]); + return folderMeta; }; /** @@ -128,21 +193,65 @@ export class DriveFolderService { } }; - public renameFolder = (payload: { folderUuid: string; name: string }): Promise => { + public renameFolder = async (payload: { folderUuid: string; name: string }): Promise => { const storageClient = SdkManager.instance.getStorage(); - return storageClient.updateFolderNameWithUUID(payload); + await storageClient.updateFolderNameWithUUID(payload); + await FolderRepository.instance.updateByUuid(payload.folderUuid, { name: payload.name }); }; - public getFolderMetadataByPath = async (path: string): Promise => { - const storageClient = SdkManager.instance.getStorage(); - const folderMeta = await storageClient.getFolderByPath(encodeURIComponent(path)); - return DriveUtils.driveFolderMetaToItem({ - ...folderMeta, - createdAt: folderMeta.createdAt ?? folderMeta.created_at, - updatedAt: folderMeta.updatedAt ?? folderMeta.updated_at, - plainName: folderMeta.plainName ?? folderMeta.plain_name, - parentId: folderMeta.parentId ?? folderMeta.parent_id, - parentUuid: folderMeta.parentUuid ?? folderMeta.parent_uuid, + public getByParentUuidAndName = async (parentUuid: string, name: string): Promise => { + const subFolders = await this.getFolderSubfolders(parentUuid); + const folderMeta = subFolders.find((folder) => folder.plainName === name || folder.name === name); + if (!folderMeta) { + throw new NotFoundError('Folder not found'); + } + + return { + itemType: 'folder', + name: folderMeta.plainName, + uuid: folderMeta.uuid, + parentUuid: folderMeta.parentUuid, + status: FileStatus.EXISTS, + createdAt: new Date(folderMeta.createdAt), + updatedAt: new Date(folderMeta.updatedAt), + creationTime: new Date(folderMeta.creationTime), + modificationTime: new Date(folderMeta.modificationTime), + bucket: folderMeta.bucket, + }; + }; + + public getByPath = async (path: string, parentUuid: string): Promise => { + const onFound = async (uuid: string) => { + const folder = await this.getFolderMetaByUuid(uuid); + return folder; + }; + + const folder = await DatabaseUtils.getFolderByPathGeneric({ + path, + parentUuid, + onFound, + getByParentAndName: this.getByParentUuidAndName.bind(this), }); + if (!folder) { + throw new NotFoundError('Folder not found'); + } + return folder; + }; + + public getFolderMetadataByPath = async (path: string): Promise => { + const rootFolderUuid = await AuthService.instance.getCurrentRootFolder(); + const localFolderDB = await FolderRepository.instance.getByPath(path, rootFolderUuid); + + if (localFolderDB) { + try { + const folder = await this.getFolderMetaByUuid(localFolderDB.uuid); + if (folder) { + return folder; + } + } catch { + logger.error('Folder not found when getting folder by path on local DB', { path, rootFolderUuid }); + } + } + return this.getByPath(path, rootFolderUuid); }; } diff --git a/src/services/network/upload/upload-file.service.ts b/src/services/network/upload/upload-file.service.ts index c895f63f..d33f4321 100644 --- a/src/services/network/upload/upload-file.service.ts +++ b/src/services/network/upload/upload-file.service.ts @@ -125,7 +125,7 @@ export class UploadFileService { const thumbnailTimer = CLIUtils.timer(); if (thumbnailStream && fileSize > 0) { - void ThumbnailService.instance.tryUploadThumbnail({ + await ThumbnailService.instance.tryUploadThumbnail({ bufferStream: thumbnailStream, fileType, bucket, diff --git a/src/services/sdk-manager.service.ts b/src/services/sdk-manager.service.ts index 4339db2a..6c90d3fe 100644 --- a/src/services/sdk-manager.service.ts +++ b/src/services/sdk-manager.service.ts @@ -8,6 +8,8 @@ import { Workspaces } from '@internxt/sdk/dist/workspaces'; export type SdkManagerApiSecurity = ApiSecurity; +const MAX_RETRIES = 3; + /** * Manages all the sdk submodules initialization * based on the current apiSecurity details @@ -21,6 +23,9 @@ export class SdkManager { * @param apiSecurity Security properties to be setted **/ public static readonly init = (apiSecurity: SdkManagerApiSecurity) => { + apiSecurity.retryOptions = { + maxRetries: MAX_RETRIES, + }; SdkManager.apiSecurity = apiSecurity; }; diff --git a/src/types/config.types.ts b/src/types/config.types.ts index 4bad4cbe..ed1ecb39 100644 --- a/src/types/config.types.ts +++ b/src/types/config.types.ts @@ -1,4 +1,5 @@ export interface ConfigKeys { + readonly NODE_ENV: string; readonly DRIVE_WEB_URL: string; readonly DRIVE_NEW_API_URL: string; readonly APP_CRYPTO_SECRET: string; diff --git a/src/types/drive.types.ts b/src/types/drive.types.ts index aafca712..ddb27b55 100644 --- a/src/types/drive.types.ts +++ b/src/types/drive.types.ts @@ -1,32 +1,22 @@ -import { DriveFolderData, FileMeta } from '@internxt/sdk/dist/drive/storage/types'; +import { FileMeta, FolderMeta } from '@internxt/sdk/dist/drive/storage/types'; -export type DriveFileItem = Omit< - FileMeta, - | 'plainName' - | 'userId' - | 'encryptVersion' - | 'size' - | 'createdAt' - | 'updatedAt' - | 'creationTime' - | 'modificationTime' - | 'type' -> & { +export type DriveFileItem = Pick & { itemType: 'file'; size: number; createdAt: Date; updatedAt: Date; creationTime: Date; modificationTime: Date; - type?: string | null; + type: string | null; + fileId: string | null; }; -export type DriveFolderItem = Pick & { +export type DriveFolderItem = Pick & { itemType: 'folder'; - encryptedName: string; - uuid: string; createdAt: Date; updatedAt: Date; + creationTime: Date; + modificationTime: Date; status: 'EXISTS' | 'TRASHED'; parentUuid: string | null; }; diff --git a/src/utils/cli.utils.ts b/src/utils/cli.utils.ts index 43de1a2b..13659370 100644 --- a/src/utils/cli.utils.ts +++ b/src/utils/cli.utils.ts @@ -297,10 +297,9 @@ export class CLIUtils { return { networkFacade, bucket, mnemonic }; }; - static readonly fallbackToRootFolderIdIfEmpty = async (folderId: string, userCredentials: LoginCredentials) => { + static readonly fallbackToRootFolderIdIfEmpty = async (folderId: string) => { if (folderId.trim().length === 0) { - const currentWorkspace = await AuthService.instance.getCurrentWorkspace(); - return currentWorkspace?.workspaceData.workspaceUser.rootFolderId ?? userCredentials.user.rootFolderId; + return await AuthService.instance.getCurrentRootFolder(); } else { return folderId; } diff --git a/src/utils/database.utils.ts b/src/utils/database.utils.ts new file mode 100644 index 00000000..cb676024 --- /dev/null +++ b/src/utils/database.utils.ts @@ -0,0 +1,42 @@ +export class DatabaseUtils { + public static readonly CREATE_BATCH_SIZE = 100; + + public static readonly getFolderByPathGeneric = async ({ + path, + parentUuid, + onFound, + getByParentAndName, + }: { + path: string; + parentUuid: string; + onFound: (uuid: string) => Promise; + getByParentAndName: (parentUuid: string, name: string) => Promise<{ uuid: string } | null | undefined>; + }): Promise => { + // Remove leading/trailing slashes + path = path.replace(/^\//, '').replace(/\/$/, ''); + + // Base case: If the path is empty, return the folder's found uuid + if (path.trim().length === 0) { + return onFound(parentUuid); + } + + // Get the next folder name and the remaining path + const slashIndex = path.indexOf('/'); + const currentFolder = slashIndex === -1 ? path : path.substring(0, slashIndex); + const nextPath = slashIndex === -1 ? '' : path.substring(slashIndex + 1); + + const folder = await getByParentAndName(parentUuid, currentFolder); + + // If no intermediate folder is found, return onNotFound callback + if (!folder) { + return; + } + + return this.getFolderByPathGeneric({ + path: nextPath, + parentUuid: folder.uuid, + onFound, + getByParentAndName, + }); + }; +} diff --git a/src/utils/drive.utils.ts b/src/utils/drive.utils.ts index 76e19f68..dac734c3 100644 --- a/src/utils/drive.utils.ts +++ b/src/utils/drive.utils.ts @@ -7,7 +7,6 @@ export class DriveUtils { itemType: 'file', uuid: fileMeta.uuid ?? '', status: fileMeta.status, - folderId: fileMeta.folderId, folderUuid: fileMeta.folderUuid, size: Number(fileMeta.size), name: fileMeta.plainName ?? fileMeta.name, @@ -17,7 +16,6 @@ export class DriveUtils { creationTime: new Date(fileMeta.creationTime ?? fileMeta.createdAt), modificationTime: new Date(fileMeta.modificationTime ?? fileMeta.updatedAt), fileId: fileMeta.fileId, - id: fileMeta.id, type: fileMeta.type, }; } @@ -26,15 +24,14 @@ export class DriveUtils { return { itemType: 'folder', uuid: folderMeta.uuid, - id: folderMeta.id, bucket: folderMeta.bucket, status: folderMeta.deleted || folderMeta.removed ? 'TRASHED' : 'EXISTS', name: folderMeta.plainName ?? folderMeta.name, - encryptedName: folderMeta.name, - parentId: folderMeta.parentId, parentUuid: folderMeta.parentUuid, createdAt: new Date(folderMeta.createdAt), updatedAt: new Date(folderMeta.updatedAt), + creationTime: new Date(folderMeta.creation_time), + modificationTime: new Date(folderMeta.creation_time), }; } @@ -42,15 +39,14 @@ export class DriveUtils { return { itemType: 'folder', uuid: folderResponse.uuid, - id: folderResponse.id, bucket: folderResponse.bucket, status: folderResponse.deleted || folderResponse.removed ? 'TRASHED' : 'EXISTS', name: folderResponse.plainName ?? folderResponse.name, - encryptedName: folderResponse.name, - parentId: folderResponse.parentId, parentUuid: folderResponse.parentUuid, createdAt: new Date(folderResponse.createdAt), updatedAt: new Date(folderResponse.updatedAt), + creationTime: new Date(folderResponse.creationTime), + modificationTime: new Date(folderResponse.modificationTime), }; } } diff --git a/src/utils/path.utils.ts b/src/utils/path.utils.ts new file mode 100644 index 00000000..9802f7c6 --- /dev/null +++ b/src/utils/path.utils.ts @@ -0,0 +1,13 @@ +import path from 'node:path'; + +export class PathUtils { + static getPathFileData(filePath: string): { folderPath: string; fileName: string; fileType: string | null } { + const folderPath = path.dirname(filePath); + const fileExt = path.extname(filePath); + const fileName = path.basename(filePath, fileExt); + + const fileExtWithoutDot = fileExt.replace('.', '').trim(); + const fileType = fileExtWithoutDot.length > 0 ? fileExtWithoutDot : null; + return { folderPath, fileName, fileType }; + } +} diff --git a/src/webdav/handlers/PROPFIND.handler.ts b/src/webdav/handlers/PROPFIND.handler.ts index c60c7b1b..e458a121 100644 --- a/src/webdav/handlers/PROPFIND.handler.ts +++ b/src/webdav/handlers/PROPFIND.handler.ts @@ -101,11 +101,10 @@ export class PROPFINDRequestHandler implements WebDavMethodHandler { status: folder.deleted || folder.removed ? 'TRASHED' : 'EXISTS', createdAt: new Date(folder.createdAt), updatedAt: new Date(folder.updatedAt), - id: folder.id, - encryptedName: folder.name, + creationTime: new Date(folder.creationTime), + modificationTime: new Date(folder.modificationTime), uuid: folder.uuid, - parentId: null, - parentUuid: null, + parentUuid: folder.parentUuid, }, folderRelativePath, ); @@ -121,12 +120,10 @@ export class PROPFINDRequestHandler implements WebDavMethodHandler { itemType: 'file', name: file.plainName, bucket: file.bucket, - id: file.id, fileId: file.fileId, uuid: file.uuid, type: file.type, status: file.status, - folderId: file.folderId, folderUuid: file.folderUuid, size: Number(file.size), creationTime: new Date(file.creationTime), diff --git a/src/webdav/handlers/PUT.handler.ts b/src/webdav/handlers/PUT.handler.ts index 8e3a155e..6f8dda34 100644 --- a/src/webdav/handlers/PUT.handler.ts +++ b/src/webdav/handlers/PUT.handler.ts @@ -125,7 +125,7 @@ export class PUTRequestHandler implements WebDavMethodHandler { const thumbnailTimer = CLIUtils.timer(); if (contentLength > 0 && isThumbnailable && bufferStream) { - void ThumbnailService.instance.tryUploadThumbnail({ + await ThumbnailService.instance.tryUploadThumbnail({ fileUuid: file.uuid, bufferStream, fileType, diff --git a/src/webdav/index.ts b/src/webdav/index.ts index b6c8b06c..d5ce2396 100644 --- a/src/webdav/index.ts +++ b/src/webdav/index.ts @@ -5,6 +5,7 @@ import { ConfigService } from '../services/config.service'; import { AuthService } from '../services/auth.service'; import { webdavLogger } from '../utils/logger.utils'; import { SdkManager } from '../services/sdk-manager.service'; +import { DatabaseService } from '../services/database/database.service'; dotenv.config({ quiet: true }); @@ -13,6 +14,9 @@ const init = async () => { await ConfigService.instance.ensureWebdavCertsDirExists(); await ConfigService.instance.ensureInternxtLogsDirExists(); + await DatabaseService.instance.initialize(); + await DatabaseService.instance.clear(); + const { token, workspace } = await AuthService.instance.getAuthDetails(); SdkManager.init({ token, workspaceToken: workspace?.workspaceCredentials.token }); diff --git a/test/commands/login.test.ts b/test/commands/login.test.ts index a4d1407c..c75736d1 100644 --- a/test/commands/login.test.ts +++ b/test/commands/login.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { ConfigService } from '../../src/services/config.service'; import { UserCredentialsFixture, UserLoginFixture } from '../fixtures/login.fixture'; import { fail } from 'node:assert'; @@ -7,10 +7,6 @@ import { AuthService } from '../../src/services/auth.service'; import { CLIUtils, NoFlagProvidedError } from '../../src/utils/cli.utils'; describe('Login Command', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When user logs in with non-interactive and no email, then it throws error', async () => { const getValueFromFlagsSpy = vi .spyOn(CLIUtils, 'getValueFromFlag') diff --git a/test/commands/logout.test.ts b/test/commands/logout.test.ts index af0b42bd..66d70017 100644 --- a/test/commands/logout.test.ts +++ b/test/commands/logout.test.ts @@ -1,14 +1,10 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { ConfigService } from '../../src/services/config.service'; import { UserCredentialsFixture } from '../fixtures/login.fixture'; import Logout from '../../src/commands/logout'; import { AuthService } from '../../src/services/auth.service'; describe('Logout Command', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When user is logged out, then it returns false', async () => { const readUserSpy = vi.spyOn(ConfigService.instance, 'readUser').mockResolvedValue(undefined); const networkLogout = vi.spyOn(AuthService.instance, 'logout').mockRejectedValue(new Error()); diff --git a/test/commands/upload-folder.test.ts b/test/commands/upload-folder.test.ts index 2cb94223..54c4c98f 100644 --- a/test/commands/upload-folder.test.ts +++ b/test/commands/upload-folder.test.ts @@ -23,7 +23,6 @@ describe('Upload Folder Command', () => { }; beforeEach(() => { - vi.restoreAllMocks(); configReadUserSpy = vi.spyOn(ConfigService.instance, 'readUser').mockResolvedValue({ user: UserFixture, token: 'mock-token', diff --git a/test/commands/whoami.test.ts b/test/commands/whoami.test.ts index 1e6b1fb3..f9d31fcd 100644 --- a/test/commands/whoami.test.ts +++ b/test/commands/whoami.test.ts @@ -1,14 +1,10 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { ConfigService } from '../../src/services/config.service'; import { UserCredentialsFixture } from '../fixtures/login.fixture'; import Whoami from '../../src/commands/whoami'; import { ValidationService } from '../../src/services/validation.service'; describe('Whoami Command', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When user is logged out, then it returns false', async () => { const readUserSpy = vi.spyOn(ConfigService.instance, 'readUser').mockResolvedValue(undefined); const clearUserSpy = vi.spyOn(ConfigService.instance, 'clearUser').mockRejectedValue(new Error()); diff --git a/test/fixtures/drive.fixture.ts b/test/fixtures/drive.fixture.ts index 9b824968..3875ad6d 100644 --- a/test/fixtures/drive.fixture.ts +++ b/test/fixtures/drive.fixture.ts @@ -25,16 +25,15 @@ const getRandomDate = (start = new Date(2000, 0, 1), end = new Date()) => { export const newFolderItem = (attributes?: Partial): DriveFolderItem => { const folder: DriveFolderItem = { itemType: 'folder', - id: randomInt(1, 100000), uuid: randomUUID(), - parentId: randomInt(1, 100000), bucket: crypto.randomBytes(16).toString('hex'), name: wordlist[randomInt(wordlist.length)], - encryptedName: crypto.randomBytes(16).toString('hex'), createdAt: getRandomDate(), updatedAt: getRandomDate(), status: 'EXISTS', parentUuid: randomUUID(), + creationTime: getRandomDate(), + modificationTime: getRandomDate(), }; return { ...folder, ...attributes }; }; @@ -42,10 +41,8 @@ export const newFolderItem = (attributes?: Partial): DriveFolde export const newFileItem = (attributes?: Partial): DriveFileItem => { const file: DriveFileItem = { itemType: 'file', - id: randomInt(1, 100000), uuid: crypto.randomBytes(16).toString('hex'), fileId: crypto.randomBytes(16).toString('hex'), - folderId: randomInt(1, 100000), bucket: crypto.randomBytes(16).toString('hex'), name: wordlist[randomInt(wordlist.length)], createdAt: getRandomDate(), @@ -171,30 +168,26 @@ export const newPaginatedFile = (attributes?: Partial): Fetc export const newDriveFolder = (attributes?: Partial): DriveFolder => { const folder: DriveFolderAttributes = { - id: randomInt(1, 100000), name: crypto.randomBytes(16).toString('hex'), uuid: crypto.randomBytes(16).toString('hex'), - relativePath: crypto.randomBytes(16).toString('hex'), - parentId: randomInt(1, 100000), parentUuid: crypto.randomBytes(16).toString('hex'), createdAt: getRandomDate(), updatedAt: getRandomDate(), status: FileStatus.EXISTS, + creationTime: getRandomDate(), + modificationTime: getRandomDate(), }; return new DriveFolder({ ...folder, ...attributes }); }; export const newDriveFile = (attributes?: Partial): DriveFile => { const file: DriveFileAttributes = { - id: randomInt(1, 100000), name: crypto.randomBytes(16).toString('hex'), type: fileTypes[randomInt(fileTypes.length)], uuid: crypto.randomBytes(16).toString('hex'), fileId: crypto.randomBytes(16).toString('hex'), - folderId: randomInt(1, 100000), folderUuid: crypto.randomBytes(16).toString('hex'), bucket: crypto.randomBytes(16).toString('hex'), - relativePath: crypto.randomBytes(16).toString('hex'), createdAt: getRandomDate(), updatedAt: getRandomDate(), size: randomInt(1, 10000), diff --git a/test/services/auth.service.test.ts b/test/services/auth.service.test.ts index e6f320ef..5f95b0c1 100644 --- a/test/services/auth.service.test.ts +++ b/test/services/auth.service.test.ts @@ -19,8 +19,6 @@ import { paths } from '@internxt/sdk/dist/schema'; describe('Auth service', () => { beforeEach(() => { - vi.restoreAllMocks(); - vi.spyOn(ConfigService.instance, 'readUser').mockResolvedValue(UserCredentialsFixture); vi.spyOn(ConfigService.instance, 'saveUser').mockResolvedValue(undefined); }); diff --git a/test/services/config.service.test.ts b/test/services/config.service.test.ts index 170c3039..65851bb9 100644 --- a/test/services/config.service.test.ts +++ b/test/services/config.service.test.ts @@ -22,7 +22,6 @@ const env = Object.assign({}, process.env); describe('Config service', () => { beforeEach(() => { process.env = env; - vi.restoreAllMocks(); }); it('When an env property is requested, then the get method return its value', async () => { diff --git a/test/services/crypto.service.test.ts b/test/services/crypto.service.test.ts index fc083d4b..cf66355c 100644 --- a/test/services/crypto.service.test.ts +++ b/test/services/crypto.service.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import crypto from 'node:crypto'; import { ConfigService } from '../../src/services/config.service'; import { CryptoService } from '../../src/services/crypto.service'; @@ -7,10 +7,6 @@ import { Keys } from '@internxt/sdk'; import { KeysService } from '../../src/services/keys.service'; describe('Crypto service', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When text is encrypted using crypto secret env, then it can be decrypted back', () => { const envEndpoint: { key: keyof ConfigKeys; value: string } = { key: 'APP_CRYPTO_SECRET', diff --git a/test/services/database/database.service.test.ts b/test/services/database/database.service.test.ts new file mode 100644 index 00000000..d9e89eab --- /dev/null +++ b/test/services/database/database.service.test.ts @@ -0,0 +1,56 @@ +import { describe, it, expect, vi } from 'vitest'; +import { DatabaseService } from '../../../src/services/database/database.service'; +import { DriveFileModel } from '../../../src/services/database/drive-file/drive-file.model'; +import { DriveFolderModel } from '../../../src/services/database/drive-folder/drive-folder.model'; +import { ConfigService } from '../../../src/services/config.service'; +import { DRIVE_SQLITE_FILE } from '../../../src/constants/configs'; + +describe('DatabaseService', () => { + describe('dataSource configuration', () => { + it('should configure sqljs when NODE_ENV is test', () => { + const configServiceInstancespyOn = vi.spyOn(ConfigService.instance, 'get'); + configServiceInstancespyOn.mockReturnValueOnce('test'); + + const service = new DatabaseService(); + + expect(service.dataSource.options.type).toBe('sqljs'); + expect(service.dataSource.options.synchronize).toBe(true); + expect(service.dataSource.options.entities).toEqual([DriveFileModel, DriveFolderModel]); + expect(configServiceInstancespyOn).toHaveBeenCalledWith('NODE_ENV', false); + }); + + it('should configure better-sqlite3 when NODE_ENV is not test', () => { + const configServiceInstancespyOn = vi.spyOn(ConfigService.instance, 'get'); + configServiceInstancespyOn.mockReturnValueOnce('production'); + + const service = new DatabaseService(); + + expect(service.dataSource.options.type).toBe('better-sqlite3'); + expect(service.dataSource.options.database).toBe(DRIVE_SQLITE_FILE); + expect(service.dataSource.options.synchronize).toBe(true); + expect(service.dataSource.options.entities).toEqual([DriveFileModel, DriveFolderModel]); + expect(configServiceInstancespyOn).toHaveBeenCalledWith('NODE_ENV', false); + }); + }); + + describe('Integration scenarios', () => { + it('should handle initialize, clear, and destroy sequence', async () => { + const configServiceInstancespyOn = vi.spyOn(ConfigService.instance, 'get'); + configServiceInstancespyOn.mockReturnValueOnce('test'); + + const service = new DatabaseService(); + + const initializeSpy = vi.spyOn(service.dataSource, 'initialize').mockResolvedValue(service.dataSource); + const clearSpy = vi.spyOn(service.dataSource, 'synchronize').mockResolvedValue(undefined); + const destroySpy = vi.spyOn(service.dataSource, 'destroy').mockResolvedValue(undefined); + + await service.initialize(); + await service.clear(); + await service.destroy(); + + expect(initializeSpy).toHaveBeenCalledTimes(1); + expect(clearSpy).toHaveBeenCalledTimes(1); + expect(destroySpy).toHaveBeenCalledTimes(1); + }); + }); +}); diff --git a/test/services/drive/drive-file.service.test.ts b/test/services/drive/drive-file.service.test.ts index 557e4a51..c4bec013 100644 --- a/test/services/drive/drive-file.service.test.ts +++ b/test/services/drive/drive-file.service.test.ts @@ -12,8 +12,6 @@ describe('Drive file Service', () => { const sut = DriveFileService.instance; beforeEach(() => { - vi.restoreAllMocks(); - vi.spyOn(ConfigService.instance, 'readUser').mockResolvedValue(UserCredentialsFixture); vi.spyOn(ConfigService.instance, 'saveUser').mockResolvedValue(undefined); }); diff --git a/test/services/drive/drive-folder.service.test.ts b/test/services/drive/drive-folder.service.test.ts index 78d57110..7f99c639 100644 --- a/test/services/drive/drive-folder.service.test.ts +++ b/test/services/drive/drive-folder.service.test.ts @@ -13,8 +13,6 @@ describe('Drive folder Service', () => { const sut = DriveFolderService.instance; beforeEach(() => { - vi.restoreAllMocks(); - vi.spyOn(ConfigService.instance, 'readUser').mockResolvedValue(UserCredentialsFixture); vi.spyOn(ConfigService.instance, 'saveUser').mockResolvedValue(undefined); }); diff --git a/test/services/keys.service.test.ts b/test/services/keys.service.test.ts index 6e3f20a1..954cc18c 100644 --- a/test/services/keys.service.test.ts +++ b/test/services/keys.service.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import crypto from 'node:crypto'; import * as openpgp from 'openpgp'; import { KeysService } from '../../src/services/keys.service'; @@ -13,10 +13,6 @@ describe('Keys service', () => { salt: crypto.randomBytes(64).toString('hex'), }; - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When message is encrypted with private key & password, then it can be decrypted using same data', async () => { const plainPrivateKey = crypto.randomBytes(16).toString('hex'); const password = crypto.randomBytes(8).toString('hex'); diff --git a/test/services/local-filesystem/local-filesystem.service.test.ts b/test/services/local-filesystem/local-filesystem.service.test.ts index 9e03cd3f..509cef4a 100644 --- a/test/services/local-filesystem/local-filesystem.service.test.ts +++ b/test/services/local-filesystem/local-filesystem.service.test.ts @@ -32,7 +32,6 @@ describe('Local Filesystem Service', () => { }) as unknown as Dirent; beforeEach(() => { - vi.clearAllMocks(); service = LocalFilesystemService.instance; mockReaddir.mockResolvedValue([]); }); diff --git a/test/services/network/download.service.test.ts b/test/services/network/download.service.test.ts index 8a74caf7..b39e0e2d 100644 --- a/test/services/network/download.service.test.ts +++ b/test/services/network/download.service.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { DownloadService } from '../../../src/services/network/download.service'; import { Readable } from 'node:stream'; import axios from 'axios'; @@ -6,10 +6,6 @@ import axios from 'axios'; describe('Download Service', () => { const sut = DownloadService.instance; - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When a file is downloaded, should return a ReadableStream', async () => { const fileContent = Buffer.from('file-content'); const readableContent = new Readable({ diff --git a/test/services/network/network-facade.service.test.ts b/test/services/network/network-facade.service.test.ts index 1aef275f..4e09266b 100644 --- a/test/services/network/network-facade.service.test.ts +++ b/test/services/network/network-facade.service.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { NetworkFacade } from '../../../src/services/network/network-facade.service'; import { SdkManager } from '../../../src/services/sdk-manager.service'; import path from 'node:path'; @@ -12,10 +12,6 @@ import { ConfigService } from '../../../src/services/config.service'; import { UserFixture } from '../../fixtures/auth.fixture'; describe('Network Facade Service', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - const getNetworkMock = () => { return SdkManager.instance.getNetwork({ user: 'user', diff --git a/test/services/network/upload/upload-facade.service.test.ts b/test/services/network/upload/upload-facade.service.test.ts index 76a86d0b..020e61b8 100644 --- a/test/services/network/upload/upload-facade.service.test.ts +++ b/test/services/network/upload/upload-facade.service.test.ts @@ -21,7 +21,6 @@ describe('UploadFacade', () => { const folderMap = new Map([[folderName, 'folder-uuid-123']]); beforeEach(() => { - vi.clearAllMocks(); sut = UploadFacade.instance; vi.spyOn(LocalFilesystemService.instance, 'scanLocalDirectory').mockResolvedValue({ folders: [createFileSystemNodeFixture({ type: 'folder', name: folderName, relativePath: folderName })], diff --git a/test/services/network/upload/upload-file.service.test.ts b/test/services/network/upload/upload-file.service.test.ts index adda9f37..5828e312 100644 --- a/test/services/network/upload/upload-file.service.test.ts +++ b/test/services/network/upload/upload-file.service.test.ts @@ -36,7 +36,6 @@ describe('UploadFileService', () => { } as unknown as NetworkFacade; beforeEach(() => { - vi.clearAllMocks(); sut = UploadFileService.instance; vi.mocked(stat).mockResolvedValue(createMockStats(1024) as Awaited>); vi.mocked(createReadStream).mockReturnValue(createMockReadStream() as ReturnType); diff --git a/test/services/network/upload/upload-folder.service.test.ts b/test/services/network/upload/upload-folder.service.test.ts index b070c6c8..6f91b85b 100644 --- a/test/services/network/upload/upload-folder.service.test.ts +++ b/test/services/network/upload/upload-folder.service.test.ts @@ -10,7 +10,6 @@ describe('UploadFolderService', () => { let sut: UploadFolderService; beforeEach(() => { - vi.clearAllMocks(); sut = UploadFolderService.instance; vi.spyOn(DriveFolderService.instance, 'createFolder').mockReturnValue([ Promise.resolve({ uuid: 'mock-folder-uuid' }), diff --git a/test/services/sdkmanager.service.test.ts b/test/services/sdkmanager.service.test.ts index 809640d5..aefbb4ef 100644 --- a/test/services/sdkmanager.service.test.ts +++ b/test/services/sdkmanager.service.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import crypto from 'node:crypto'; import { Auth, Drive, Network } from '@internxt/sdk'; import { Trash } from '@internxt/sdk/dist/drive'; @@ -16,10 +16,6 @@ describe('SDKManager service', () => { clientVersion: crypto.randomBytes(16).toString('hex'), }; - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When SDKManager ApiSecurityFixture is requested, then it is returned from static property', () => { const ApiSecurityFixture: SdkManagerApiSecurity = { token: crypto.randomBytes(16).toString('hex'), diff --git a/test/services/thumbnail.service.test.ts b/test/services/thumbnail.service.test.ts index d3be973a..b509559b 100644 --- a/test/services/thumbnail.service.test.ts +++ b/test/services/thumbnail.service.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it } from 'vitest'; import { BufferStream } from '../../src/utils/stream.utils'; import { ThumbnailService } from '../../src/services/thumbnail.service'; import path from 'node:path'; @@ -7,10 +7,6 @@ import { Readable } from 'node:stream'; describe('Thumbnail Service tests', () => { const testFilePath = path.join(process.cwd(), 'test/fixtures/test-content.fixture.txt'); - beforeEach(() => { - vi.restoreAllMocks(); - }); - describe('createFileStreamWithBuffer', () => { it('should create BufferStream and pipe stream when file type is thumbnailable', () => { const result = ThumbnailService.instance.createFileStreamWithBuffer({ path: testFilePath, fileType: 'png' }); diff --git a/test/services/usage.service.test.ts b/test/services/usage.service.test.ts index 4a306fe9..230e1473 100644 --- a/test/services/usage.service.test.ts +++ b/test/services/usage.service.test.ts @@ -1,14 +1,10 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { randomInt, randomUUID } from 'node:crypto'; import { Storage } from '@internxt/sdk/dist/drive'; import { UsageService } from '../../src/services/usage.service'; import { SdkManager } from '../../src/services/sdk-manager.service'; describe('Usage Service', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When getting user usage, it should return the total usage', async () => { const drive = randomInt(2000000000); const backups = randomInt(2000000000); diff --git a/test/services/validation.service.test.ts b/test/services/validation.service.test.ts index 3be79192..ce4bf38e 100644 --- a/test/services/validation.service.test.ts +++ b/test/services/validation.service.test.ts @@ -1,14 +1,10 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { auth } from '@internxt/lib'; import { randomInt, randomUUID } from 'node:crypto'; import { UserFixture } from '../fixtures/auth.fixture'; import { ValidationService } from '../../src/services/validation.service'; describe('Validation Service', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When email is not valid, then validation service validates it as expected', () => { vi.spyOn(auth, 'isValidEmail').mockReturnValue(false); const isValidEmail = ValidationService.instance.validateEmail(UserFixture.email); diff --git a/test/utils/cli.utils.test.ts b/test/utils/cli.utils.test.ts index ff344f62..705a60ad 100644 --- a/test/utils/cli.utils.test.ts +++ b/test/utils/cli.utils.test.ts @@ -1,4 +1,4 @@ -import { describe, it, expect, vi, beforeEach, afterEach, MockInstance } from 'vitest'; +import { describe, it, expect, vi, beforeEach, MockInstance } from 'vitest'; import { ux } from '@oclif/core'; import { CLIUtils } from '../../src/utils/cli.utils'; import { Direction } from 'node:readline'; @@ -48,7 +48,6 @@ describe('CliUtils', () => { const mockAppDetails = {} as ReturnType; beforeEach(() => { - vi.clearAllMocks(); process.stdout.write = vi.fn(); process.stdout.clearLine = vi.fn(); stdoutWrite = vi.spyOn(process.stdout, 'write').mockImplementation(() => true); @@ -65,10 +64,6 @@ describe('CliUtils', () => { vi.spyOn(ConfigService.instance, 'get').mockReturnValue(BRIDGE_URL); }); - afterEach(() => { - vi.restoreAllMocks(); - }); - describe('clearPreviousLine', () => { it('should move cursor up and clear line when jsonFlag is false', () => { CLIUtils.clearPreviousLine(false); diff --git a/test/utils/crypto.utils.test.ts b/test/utils/crypto.utils.test.ts index fd9eb07f..e5570ab5 100644 --- a/test/utils/crypto.utils.test.ts +++ b/test/utils/crypto.utils.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import crypto from 'node:crypto'; import { CryptoUtils } from '../../src/utils/crypto.utils'; import { ConfigService } from '../../src/services/config.service'; @@ -11,10 +11,6 @@ describe('Crypto utils', () => { salt: crypto.randomBytes(64).toString('hex'), }; - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When Magic IV or Magic Salt are missing should throw an error', () => { try { CryptoUtils.getAesInit(); diff --git a/test/utils/errors.utils.test.ts b/test/utils/errors.utils.test.ts index 2fa5140c..44175372 100644 --- a/test/utils/errors.utils.test.ts +++ b/test/utils/errors.utils.test.ts @@ -1,12 +1,8 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it } from 'vitest'; import { ErrorUtils } from '../../src/utils/errors.utils'; import { logger } from '../../src/utils/logger.utils'; describe('Errors Utils', () => { - beforeEach(() => { - vi.clearAllMocks(); - }); - it('When reporting an error, should log with the expected message and properties', () => { const error = new Error('Test Error'); const props = { key: 'value' }; diff --git a/test/utils/network.utils.test.ts b/test/utils/network.utils.test.ts index 5e0d8da4..e5c86d02 100644 --- a/test/utils/network.utils.test.ts +++ b/test/utils/network.utils.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { randomBytes, randomInt, X509Certificate } from 'node:crypto'; import selfsigned, { GenerateResult } from 'selfsigned'; import { readFile, stat, writeFile } from 'node:fs/promises'; @@ -30,10 +30,6 @@ vi.mock('node:crypto', async () => { const mock509Certificate = vi.mocked(X509Certificate); describe('Network utils', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When obtaining auth credentials, should return the password as a SHA256 hash', async () => { const result = NetworkUtils.getAuthFromCredentials({ user: 'test', diff --git a/test/utils/pm2.utils.test.ts b/test/utils/pm2.utils.test.ts index 9717ed3f..8001c280 100644 --- a/test/utils/pm2.utils.test.ts +++ b/test/utils/pm2.utils.test.ts @@ -1,13 +1,9 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import pm2 from 'pm2'; import { PM2Utils } from '../../src/utils/pm2.utils'; import { fail } from 'node:assert'; describe('PM2 utils', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When connecting, should connect to PM2 daemon', async () => { // @ts-expect-error - The error callback does not include an error const connectStub = vi.spyOn(pm2, 'connect').mockImplementation((callback) => callback()); diff --git a/test/utils/stream.utils.test.ts b/test/utils/stream.utils.test.ts index 1e21dfcf..03f5a352 100644 --- a/test/utils/stream.utils.test.ts +++ b/test/utils/stream.utils.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { StreamUtils } from '../../src/utils/stream.utils'; import { createReadStream, readFileSync, WriteStream } from 'node:fs'; import path from 'node:path'; @@ -6,10 +6,6 @@ import path from 'node:path'; describe('Stream utils', () => { const fileWithContent = path.join(process.cwd(), 'test/fixtures/test-content.fixture.txt'); - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When a ReadStream is given, should return a ReadableStream', async () => { const content = readFileSync(fileWithContent, 'utf-8'); diff --git a/test/utils/thumbnail.utils.test.ts b/test/utils/thumbnail.utils.test.ts index d8a21311..b8566d57 100644 --- a/test/utils/thumbnail.utils.test.ts +++ b/test/utils/thumbnail.utils.test.ts @@ -1,11 +1,7 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it } from 'vitest'; import { ThumbnailUtils } from '../../src/utils/thumbnail.utils'; describe('Thumbnail Utils tests', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - describe('isFileThumbnailable', () => { it('should return true for valid image extensions', () => { expect(ThumbnailUtils.isFileThumbnailable('jpg')).toBe(true); diff --git a/test/utils/webdav.utils.test.ts b/test/utils/webdav.utils.test.ts index 66ae31ec..a22de306 100644 --- a/test/utils/webdav.utils.test.ts +++ b/test/utils/webdav.utils.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { WebDavUtils } from '../../src/utils/webdav.utils'; import { WebDavRequestedResource } from '../../src/types/webdav.types'; import { newFileItem, newFolderItem } from '../fixtures/drive.fixture'; @@ -7,10 +7,6 @@ import { DriveFileService } from '../../src/services/drive/drive-file.service'; import AppError from '@internxt/sdk/dist/shared/types/errors'; describe('Webdav utils', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - describe('joinURL', () => { it('When a list of path components are given, then it should generate a correct href', () => { const href = WebDavUtils.joinURL('/path', 'to', 'file'); diff --git a/test/webdav/handlers/DELETE.handler.test.ts b/test/webdav/handlers/DELETE.handler.test.ts index 7b4d207d..aa27dc3d 100644 --- a/test/webdav/handlers/DELETE.handler.test.ts +++ b/test/webdav/handlers/DELETE.handler.test.ts @@ -17,8 +17,6 @@ import { UserCredentialsFixture } from '../../fixtures/login.fixture'; describe('DELETE request handler', () => { beforeEach(() => { - vi.restoreAllMocks(); - vi.spyOn(AuthService.instance, 'getAuthDetails').mockResolvedValue(UserCredentialsFixture); }); diff --git a/test/webdav/handlers/GET.handler.test.ts b/test/webdav/handlers/GET.handler.test.ts index 8f9a1ec8..025a8a4d 100644 --- a/test/webdav/handlers/GET.handler.test.ts +++ b/test/webdav/handlers/GET.handler.test.ts @@ -28,8 +28,6 @@ describe('GET request handler', () => { const networkOptions: NetworkOptions = getNetworkOptionsMock({ networkFacade }); beforeEach(() => { - vi.restoreAllMocks(); - vi.spyOn(CLIUtils, 'prepareNetwork').mockResolvedValue(networkOptions); sut = new GETRequestHandler(); diff --git a/test/webdav/handlers/HEAD.handler.test.ts b/test/webdav/handlers/HEAD.handler.test.ts index 471d9af8..3d681ba5 100644 --- a/test/webdav/handlers/HEAD.handler.test.ts +++ b/test/webdav/handlers/HEAD.handler.test.ts @@ -14,9 +14,9 @@ import { randomInt } from 'crypto'; describe('HEAD request handler', () => { let sut: HEADRequestHandler; + beforeEach(() => { sut = new HEADRequestHandler(); - vi.restoreAllMocks(); }); it('When a folder is requested, it should reply with a 200', async () => { diff --git a/test/webdav/handlers/MKCOL.handler.test.ts b/test/webdav/handlers/MKCOL.handler.test.ts index cf5e1613..35e9d541 100644 --- a/test/webdav/handlers/MKCOL.handler.test.ts +++ b/test/webdav/handlers/MKCOL.handler.test.ts @@ -17,7 +17,6 @@ describe('MKCOL request handler', () => { let sut: MKCOLRequestHandler; beforeEach(() => { - vi.restoreAllMocks(); sut = new MKCOLRequestHandler(); vi.spyOn(AuthService.instance, 'getAuthDetails').mockResolvedValue(UserCredentialsFixture); diff --git a/test/webdav/handlers/OPTIONS.handler.test.ts b/test/webdav/handlers/OPTIONS.handler.test.ts index 17e51d4c..2fd47875 100644 --- a/test/webdav/handlers/OPTIONS.handler.test.ts +++ b/test/webdav/handlers/OPTIONS.handler.test.ts @@ -1,13 +1,9 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { OPTIONSRequestHandler } from '../../../src/webdav/handlers/OPTIONS.handler'; import { UserSettingsFixture } from '../../fixtures/auth.fixture'; import { createWebDavRequestFixture, createWebDavResponseFixture } from '../../fixtures/webdav.fixture'; describe('OPTIONS request handler', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When the root folder is requested, it should return all of the server allowed methods', async () => { const requestHandler = new OPTIONSRequestHandler(); diff --git a/test/webdav/handlers/PROPFIND.handler.test.ts b/test/webdav/handlers/PROPFIND.handler.test.ts index 6be0ce82..cae9c701 100644 --- a/test/webdav/handlers/PROPFIND.handler.test.ts +++ b/test/webdav/handlers/PROPFIND.handler.test.ts @@ -32,7 +32,6 @@ describe('PROPFIND request handler', () => { beforeEach(() => { sut = new PROPFINDRequestHandler(); - vi.restoreAllMocks(); }); it('When the root folder exists and there is no content, then it should return the correct XML', async () => { @@ -52,7 +51,7 @@ describe('PROPFIND request handler', () => { }); const folderFixture = newFolderItem({ - id: Number.parseInt(UserSettingsFixture.rootFolderId), + uuid: UserSettingsFixture.rootFolderId, }); const usageFixture = crypto.randomInt(2000000000); const spaceLimitFixture = crypto.randomInt(2000000000); @@ -98,7 +97,7 @@ describe('PROPFIND request handler', () => { }); const folderFixture = newFolderItem({ - id: Number.parseInt(UserSettingsFixture.rootFolderId), + uuid: UserSettingsFixture.rootFolderId, }); const paginatedFolder1 = newPaginatedFolder({ plainName: 'folder_1', diff --git a/test/webdav/handlers/PUT.handler.test.ts b/test/webdav/handlers/PUT.handler.test.ts index 160e1e2b..0d769835 100644 --- a/test/webdav/handlers/PUT.handler.test.ts +++ b/test/webdav/handlers/PUT.handler.test.ts @@ -23,8 +23,6 @@ describe('PUT request handler', () => { let sut: PUTRequestHandler; beforeEach(() => { - vi.restoreAllMocks(); - networkFacade = getNetworkFacadeMock(); vi.spyOn(CLIUtils, 'prepareNetwork').mockResolvedValue(getNetworkOptionsMock({ networkFacade })); @@ -39,7 +37,6 @@ describe('PUT request handler', () => { }); const folderFixture = newFolderItem({ name: requestedParentFolderResource.name }); const fileFixture = newDriveFile({ - folderId: folderFixture.id, folderUuid: folderFixture.uuid, size: 0, fileId: undefined, @@ -92,7 +89,7 @@ describe('PUT request handler', () => { folderName: '', }); const folderFixture = newFolderItem({ name: requestedParentFolderResource.name }); - const fileFixture = newDriveFile({ folderId: folderFixture.id, folderUuid: folderFixture.uuid }); + const fileFixture = newDriveFile({ folderUuid: folderFixture.uuid }); const request = createWebDavRequestFixture({ method: 'PUT', @@ -146,7 +143,7 @@ describe('PUT request handler', () => { folderName: '', }); const folderFixture = newFolderItem({ name: requestedParentFolderResource.name }); - const fileFixture = newDriveFile({ folderId: folderFixture.id, folderUuid: folderFixture.uuid }); + const fileFixture = newDriveFile({ folderUuid: folderFixture.uuid }); const request = createWebDavRequestFixture({ method: 'PUT', @@ -202,7 +199,7 @@ describe('PUT request handler', () => { folderName: '', }); const folderFixture = newFolderItem({ name: requestedParentFolderResource.name }); - const fileFixture = newDriveFile({ folderId: folderFixture.id, folderUuid: folderFixture.uuid }); + const fileFixture = newDriveFile({ folderUuid: folderFixture.uuid }); const request = createWebDavRequestFixture({ method: 'PUT', diff --git a/test/webdav/middlewares/auth.middleware.test.ts b/test/webdav/middlewares/auth.middleware.test.ts index 613eff86..b2f475d6 100644 --- a/test/webdav/middlewares/auth.middleware.test.ts +++ b/test/webdav/middlewares/auth.middleware.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { AuthMiddleware } from '../../../src/webdav/middewares/auth.middleware'; import { createWebDavRequestFixture, createWebDavResponseFixture } from '../../fixtures/webdav.fixture'; import { UserCredentialsFixture } from '../../fixtures/login.fixture'; @@ -7,10 +7,6 @@ import { MissingCredentialsError } from '../../../src/types/command.types'; import { XMLUtils } from '../../../src/utils/xml.utils'; describe('Auth middleware', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When the user is not authenticated, then it should return 401', async () => { const req = createWebDavRequestFixture({}); const res = createWebDavResponseFixture({ diff --git a/test/webdav/middlewares/errors.middleware.test.ts b/test/webdav/middlewares/errors.middleware.test.ts index 2edc5d37..41924107 100644 --- a/test/webdav/middlewares/errors.middleware.test.ts +++ b/test/webdav/middlewares/errors.middleware.test.ts @@ -1,14 +1,10 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { ErrorHandlingMiddleware } from '../../../src/webdav/middewares/errors.middleware'; import { createWebDavRequestFixture, createWebDavResponseFixture } from '../../fixtures/webdav.fixture'; import { BadRequestError, NotFoundError, NotImplementedError } from '../../../src/utils/errors.utils'; import { XMLUtils } from '../../../src/utils/xml.utils'; describe('Error handling middleware', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When a not found error is received, should respond with a 404', () => { const errorMessage = 'Item not found'; const error = new NotFoundError('Item not found'); diff --git a/test/webdav/middlewares/mkcol.middleware.test.ts b/test/webdav/middlewares/mkcol.middleware.test.ts index 282ad3ab..721b6f89 100644 --- a/test/webdav/middlewares/mkcol.middleware.test.ts +++ b/test/webdav/middlewares/mkcol.middleware.test.ts @@ -1,14 +1,10 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { createWebDavRequestFixture, createWebDavResponseFixture } from '../../fixtures/webdav.fixture'; import { MkcolMiddleware } from '../../../src/webdav/middewares/mkcol.middleware'; import { fail } from 'node:assert'; import { UnsupportedMediaTypeError } from '../../../src/utils/errors.utils'; describe('MKCOL middleware', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When MKCOL content is application/xml, then it should call next', () => { const req = createWebDavRequestFixture({ method: 'MKCOL', diff --git a/test/webdav/middlewares/request-logger.middleware.test.ts b/test/webdav/middlewares/request-logger.middleware.test.ts index a3a58063..b7e0dbf0 100644 --- a/test/webdav/middlewares/request-logger.middleware.test.ts +++ b/test/webdav/middlewares/request-logger.middleware.test.ts @@ -1,13 +1,9 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { webdavLogger } from '../../../src/utils/logger.utils'; import { RequestLoggerMiddleware } from '../../../src/webdav/middewares/request-logger.middleware'; import { createWebDavRequestFixture, createWebDavResponseFixture } from '../../fixtures/webdav.fixture'; describe('Request logger middleware', () => { - beforeEach(() => { - vi.clearAllMocks(); - }); - it('When a request is received, should log only the specified methods', () => { const req = createWebDavRequestFixture({ method: 'PROPFIND', diff --git a/test/webdav/services/webdav-folder.service.test.ts b/test/webdav/services/webdav-folder.service.test.ts index 648a14d4..09a99dac 100644 --- a/test/webdav/services/webdav-folder.service.test.ts +++ b/test/webdav/services/webdav-folder.service.test.ts @@ -32,7 +32,6 @@ describe('WebDavFolderService', () => { }; beforeEach(() => { - vi.restoreAllMocks(); driveFolderService = DriveFolderService.instance; configService = ConfigService.instance; sut = WebDavFolderService.instance; diff --git a/test/webdav/webdav-server.test.ts b/test/webdav/webdav-server.test.ts index 806ad6cf..6c749bbb 100644 --- a/test/webdav/webdav-server.test.ts +++ b/test/webdav/webdav-server.test.ts @@ -1,31 +1,22 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import express from 'express'; import { randomBytes, randomInt } from 'node:crypto'; import http from 'http'; import https from 'https'; import { ConfigService } from '../../src/services/config.service'; -import { DriveFolderService } from '../../src/services/drive/drive-folder.service'; import { WebDavServer } from '../../src/webdav/webdav-server'; -import { DriveFileService } from '../../src/services/drive/drive-file.service'; -import { DownloadService } from '../../src/services/network/download.service'; -import { AuthService } from '../../src/services/auth.service'; -import { CryptoService } from '../../src/services/crypto.service'; import { NetworkUtils } from '../../src/utils/network.utils'; -import { TrashService } from '../../src/services/drive/trash.service'; import { WebdavConfig } from '../../src/types/command.types'; import { UserCredentialsFixture } from '../fixtures/login.fixture'; describe('WebDav server', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When the WebDav server is started with https, it should generate self-signed certificates', async () => { const webdavConfig: WebdavConfig = { host: '127.0.0.1', port: randomInt(65535).toString(), protocol: 'https', timeoutMinutes: randomInt(900), + createFullPath: true, }; const sslSelfSigned = { private: randomBytes(8).toString('hex'), @@ -50,16 +41,7 @@ describe('WebDav server', () => { }); const app = express(); - const server = new WebDavServer( - app, - ConfigService.instance, - DriveFileService.instance, - DriveFolderService.instance, - DownloadService.instance, - AuthService.instance, - CryptoService.instance, - TrashService.instance, - ); + const server = new WebDavServer(app); await server.start(); expect(createHTTPSServerStub).toHaveBeenCalledOnce(); @@ -73,6 +55,7 @@ describe('WebDav server', () => { port: randomInt(65535).toString(), protocol: 'http', timeoutMinutes: randomInt(900), + createFullPath: true, }; vi.spyOn(ConfigService.instance, 'readWebdavConfig').mockResolvedValue(webdavConfig); @@ -87,16 +70,7 @@ describe('WebDav server', () => { }); const app = express(); - const server = new WebDavServer( - app, - ConfigService.instance, - DriveFileService.instance, - DriveFolderService.instance, - DownloadService.instance, - AuthService.instance, - CryptoService.instance, - TrashService.instance, - ); + const server = new WebDavServer(app); await server.start(); expect(createHTTPServerStub).toHaveBeenCalledOnce(); diff --git a/vitest.config.mjs b/vitest.config.mjs index dc973f24..aced18cf 100644 --- a/vitest.config.mjs +++ b/vitest.config.mjs @@ -16,6 +16,8 @@ export default defineConfig({ ...coverageConfigDefaults.exclude ], }, + restoreMocks: true, + clearMocks: true, setupFiles: ['dotenv/config', './test/vitest.setup.ts'] } }); diff --git a/yarn.lock b/yarn.lock index 35357ebc..738e71a8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -70,505 +70,461 @@ "@smithy/util-utf8" "^2.0.0" tslib "^2.6.2" -"@aws-sdk/client-cloudfront@^3.985.0": - version "3.990.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-cloudfront/-/client-cloudfront-3.990.0.tgz#f929764d38ff1741b5e2d464737f3ec64deca0c4" - integrity sha512-02NL4ms1k9tIiGA2UVho7L329nr2oWHfr3/Tz1k+jZZBs4H2dPEZUAHqG1qTrDZ6RNfjm9QMUr1BbEnRng4wnA== +"@aws-sdk/client-cloudfront@^3.995.0": + version "3.997.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-cloudfront/-/client-cloudfront-3.997.0.tgz#a93de50de88c136834e2c147a2b574e45a5a84cd" + integrity sha512-hfA4kVaWEqyff+l0l9rZg2vtvavec3wYV4SY27i3TJj/dIJC0FRe3M+6+QDJcleBqjd95YuszNRvMi9pzcy6+Q== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "^3.973.10" - "@aws-sdk/credential-provider-node" "^3.972.9" - "@aws-sdk/middleware-host-header" "^3.972.3" - "@aws-sdk/middleware-logger" "^3.972.3" - "@aws-sdk/middleware-recursion-detection" "^3.972.3" - "@aws-sdk/middleware-user-agent" "^3.972.10" - "@aws-sdk/region-config-resolver" "^3.972.3" - "@aws-sdk/types" "^3.973.1" - "@aws-sdk/util-endpoints" "3.990.0" - "@aws-sdk/util-user-agent-browser" "^3.972.3" - "@aws-sdk/util-user-agent-node" "^3.972.8" - "@smithy/config-resolver" "^4.4.6" - "@smithy/core" "^3.23.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.14" - "@smithy/middleware-retry" "^4.4.31" - "@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.10" - "@smithy/protocol-http" "^5.3.8" - "@smithy/smithy-client" "^4.11.3" - "@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.30" - "@smithy/util-defaults-mode-node" "^4.2.33" - "@smithy/util-endpoints" "^3.2.8" - "@smithy/util-middleware" "^4.2.8" - "@smithy/util-retry" "^4.2.8" - "@smithy/util-stream" "^4.5.12" - "@smithy/util-utf8" "^4.2.0" - "@smithy/util-waiter" "^4.2.8" + "@aws-sdk/core" "^3.973.13" + "@aws-sdk/credential-provider-node" "^3.972.12" + "@aws-sdk/middleware-host-header" "^3.972.4" + "@aws-sdk/middleware-logger" "^3.972.4" + "@aws-sdk/middleware-recursion-detection" "^3.972.4" + "@aws-sdk/middleware-user-agent" "^3.972.13" + "@aws-sdk/region-config-resolver" "^3.972.4" + "@aws-sdk/types" "^3.973.2" + "@aws-sdk/util-endpoints" "^3.996.1" + "@aws-sdk/util-user-agent-browser" "^3.972.4" + "@aws-sdk/util-user-agent-node" "^3.972.12" + "@smithy/config-resolver" "^4.4.7" + "@smithy/core" "^3.23.4" + "@smithy/fetch-http-handler" "^5.3.10" + "@smithy/hash-node" "^4.2.9" + "@smithy/invalid-dependency" "^4.2.9" + "@smithy/middleware-content-length" "^4.2.9" + "@smithy/middleware-endpoint" "^4.4.18" + "@smithy/middleware-retry" "^4.4.35" + "@smithy/middleware-serde" "^4.2.10" + "@smithy/middleware-stack" "^4.2.9" + "@smithy/node-config-provider" "^4.3.9" + "@smithy/node-http-handler" "^4.4.11" + "@smithy/protocol-http" "^5.3.9" + "@smithy/smithy-client" "^4.11.7" + "@smithy/types" "^4.12.1" + "@smithy/url-parser" "^4.2.9" + "@smithy/util-base64" "^4.3.1" + "@smithy/util-body-length-browser" "^4.2.1" + "@smithy/util-body-length-node" "^4.2.2" + "@smithy/util-defaults-mode-browser" "^4.3.34" + "@smithy/util-defaults-mode-node" "^4.2.37" + "@smithy/util-endpoints" "^3.2.9" + "@smithy/util-middleware" "^4.2.9" + "@smithy/util-retry" "^4.2.9" + "@smithy/util-stream" "^4.5.14" + "@smithy/util-utf8" "^4.2.1" + "@smithy/util-waiter" "^4.2.9" tslib "^2.6.2" -"@aws-sdk/client-s3@^3.985.0": - version "3.990.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.990.0.tgz#5cafb93eba5e8fd26e16a6f7fc27776a85d08878" - integrity sha512-XnsM8RgB35Atn2+aYSocitCybDG82x9yYf/s2D23ytpyHCupmuZN3LzK2a0WxmKO6Zf7EtEIYy0mHGY4tLp9YA== +"@aws-sdk/client-s3@^3.995.0": + version "3.997.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.997.0.tgz#e9023f86f4e1fca544f8cc72a8646395b4cdca3b" + integrity sha512-a4z12iq/bJVJXfVOOKsYMDhxZwf+n8xieCuW+zI07qtRAuMiKr2vUtHPBbKncrF+hqnsq/Wmh48bu2yziGhIbg== 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.973.10" - "@aws-sdk/credential-provider-node" "^3.972.9" - "@aws-sdk/middleware-bucket-endpoint" "^3.972.3" - "@aws-sdk/middleware-expect-continue" "^3.972.3" - "@aws-sdk/middleware-flexible-checksums" "^3.972.8" - "@aws-sdk/middleware-host-header" "^3.972.3" - "@aws-sdk/middleware-location-constraint" "^3.972.3" - "@aws-sdk/middleware-logger" "^3.972.3" - "@aws-sdk/middleware-recursion-detection" "^3.972.3" - "@aws-sdk/middleware-sdk-s3" "^3.972.10" - "@aws-sdk/middleware-ssec" "^3.972.3" - "@aws-sdk/middleware-user-agent" "^3.972.10" - "@aws-sdk/region-config-resolver" "^3.972.3" - "@aws-sdk/signature-v4-multi-region" "3.990.0" - "@aws-sdk/types" "^3.973.1" - "@aws-sdk/util-endpoints" "3.990.0" - "@aws-sdk/util-user-agent-browser" "^3.972.3" - "@aws-sdk/util-user-agent-node" "^3.972.8" - "@smithy/config-resolver" "^4.4.6" - "@smithy/core" "^3.23.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.14" - "@smithy/middleware-retry" "^4.4.31" - "@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.10" - "@smithy/protocol-http" "^5.3.8" - "@smithy/smithy-client" "^4.11.3" - "@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.30" - "@smithy/util-defaults-mode-node" "^4.2.33" - "@smithy/util-endpoints" "^3.2.8" - "@smithy/util-middleware" "^4.2.8" - "@smithy/util-retry" "^4.2.8" - "@smithy/util-stream" "^4.5.12" - "@smithy/util-utf8" "^4.2.0" - "@smithy/util-waiter" "^4.2.8" + "@aws-sdk/core" "^3.973.13" + "@aws-sdk/credential-provider-node" "^3.972.12" + "@aws-sdk/middleware-bucket-endpoint" "^3.972.4" + "@aws-sdk/middleware-expect-continue" "^3.972.4" + "@aws-sdk/middleware-flexible-checksums" "^3.972.11" + "@aws-sdk/middleware-host-header" "^3.972.4" + "@aws-sdk/middleware-location-constraint" "^3.972.4" + "@aws-sdk/middleware-logger" "^3.972.4" + "@aws-sdk/middleware-recursion-detection" "^3.972.4" + "@aws-sdk/middleware-sdk-s3" "^3.972.13" + "@aws-sdk/middleware-ssec" "^3.972.4" + "@aws-sdk/middleware-user-agent" "^3.972.13" + "@aws-sdk/region-config-resolver" "^3.972.4" + "@aws-sdk/signature-v4-multi-region" "^3.996.1" + "@aws-sdk/types" "^3.973.2" + "@aws-sdk/util-endpoints" "^3.996.1" + "@aws-sdk/util-user-agent-browser" "^3.972.4" + "@aws-sdk/util-user-agent-node" "^3.972.12" + "@smithy/config-resolver" "^4.4.7" + "@smithy/core" "^3.23.4" + "@smithy/eventstream-serde-browser" "^4.2.9" + "@smithy/eventstream-serde-config-resolver" "^4.3.9" + "@smithy/eventstream-serde-node" "^4.2.9" + "@smithy/fetch-http-handler" "^5.3.10" + "@smithy/hash-blob-browser" "^4.2.10" + "@smithy/hash-node" "^4.2.9" + "@smithy/hash-stream-node" "^4.2.9" + "@smithy/invalid-dependency" "^4.2.9" + "@smithy/md5-js" "^4.2.9" + "@smithy/middleware-content-length" "^4.2.9" + "@smithy/middleware-endpoint" "^4.4.18" + "@smithy/middleware-retry" "^4.4.35" + "@smithy/middleware-serde" "^4.2.10" + "@smithy/middleware-stack" "^4.2.9" + "@smithy/node-config-provider" "^4.3.9" + "@smithy/node-http-handler" "^4.4.11" + "@smithy/protocol-http" "^5.3.9" + "@smithy/smithy-client" "^4.11.7" + "@smithy/types" "^4.12.1" + "@smithy/url-parser" "^4.2.9" + "@smithy/util-base64" "^4.3.1" + "@smithy/util-body-length-browser" "^4.2.1" + "@smithy/util-body-length-node" "^4.2.2" + "@smithy/util-defaults-mode-browser" "^4.3.34" + "@smithy/util-defaults-mode-node" "^4.2.37" + "@smithy/util-endpoints" "^3.2.9" + "@smithy/util-middleware" "^4.2.9" + "@smithy/util-retry" "^4.2.9" + "@smithy/util-stream" "^4.5.14" + "@smithy/util-utf8" "^4.2.1" + "@smithy/util-waiter" "^4.2.9" tslib "^2.6.2" -"@aws-sdk/client-sso@3.990.0": - version "3.990.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.990.0.tgz#a5471e810b848f740e5c6a8abe90eb2304670c8b" - integrity sha512-xTEaPjZwOqVjGbLOP7qzwbdOWJOo1ne2mUhTZwEBBkPvNk4aXB/vcYwWwrjoSWUqtit4+GDbO75ePc/S6TUJYQ== - dependencies: - "@aws-crypto/sha256-browser" "5.2.0" - "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "^3.973.10" - "@aws-sdk/middleware-host-header" "^3.972.3" - "@aws-sdk/middleware-logger" "^3.972.3" - "@aws-sdk/middleware-recursion-detection" "^3.972.3" - "@aws-sdk/middleware-user-agent" "^3.972.10" - "@aws-sdk/region-config-resolver" "^3.972.3" - "@aws-sdk/types" "^3.973.1" - "@aws-sdk/util-endpoints" "3.990.0" - "@aws-sdk/util-user-agent-browser" "^3.972.3" - "@aws-sdk/util-user-agent-node" "^3.972.8" - "@smithy/config-resolver" "^4.4.6" - "@smithy/core" "^3.23.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.14" - "@smithy/middleware-retry" "^4.4.31" - "@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.10" - "@smithy/protocol-http" "^5.3.8" - "@smithy/smithy-client" "^4.11.3" - "@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.30" - "@smithy/util-defaults-mode-node" "^4.2.33" - "@smithy/util-endpoints" "^3.2.8" - "@smithy/util-middleware" "^4.2.8" - "@smithy/util-retry" "^4.2.8" - "@smithy/util-utf8" "^4.2.0" +"@aws-sdk/core@^3.973.13": + version "3.973.13" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.973.13.tgz#9a6d62be67d6f7e907cf21b18785bef131595228" + integrity sha512-eCFiLyBhJR7c/i8hZOETdzj2wsLFzi2L/w9/jajOgwmGqO8xrUExqkTZqdjROkwU62owqeqSuw4sIzlCv1E/ww== + dependencies: + "@aws-sdk/types" "^3.973.2" + "@aws-sdk/xml-builder" "^3.972.6" + "@smithy/core" "^3.23.4" + "@smithy/node-config-provider" "^4.3.9" + "@smithy/property-provider" "^4.2.9" + "@smithy/protocol-http" "^5.3.9" + "@smithy/signature-v4" "^5.3.9" + "@smithy/smithy-client" "^4.11.7" + "@smithy/types" "^4.12.1" + "@smithy/util-base64" "^4.3.1" + "@smithy/util-middleware" "^4.2.9" + "@smithy/util-utf8" "^4.2.1" tslib "^2.6.2" -"@aws-sdk/core@^3.973.10": - version "3.973.10" - resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.973.10.tgz#a8fb3cfe28dfa880b7f669e4696caa6af1e86172" - integrity sha512-4u/FbyyT3JqzfsESI70iFg6e2yp87MB5kS2qcxIA66m52VSTN1fvuvbCY1h/LKq1LvuxIrlJ1ItcyjvcKoaPLg== - dependencies: - "@aws-sdk/types" "^3.973.1" - "@aws-sdk/xml-builder" "^3.972.4" - "@smithy/core" "^3.23.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.3" - "@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.6.2" - -"@aws-sdk/crc64-nvme@3.972.0": - version "3.972.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/crc64-nvme/-/crc64-nvme-3.972.0.tgz#c5e6d14428c9fb4e6bb0646b73a0fa68e6007e24" - integrity sha512-ThlLhTqX68jvoIVv+pryOdb5coP1cX1/MaTbB9xkGDCbWbsqQcLqzPxuSoW1DCnAAIacmXCWpzUNOB9pv+xXQw== +"@aws-sdk/crc64-nvme@^3.972.1": + version "3.972.1" + resolved "https://registry.yarnpkg.com/@aws-sdk/crc64-nvme/-/crc64-nvme-3.972.1.tgz#c32bd754b8d0240e68d8768e0332b5512360114c" + integrity sha512-CmT9RrQol36hUdvp4dk+BRV47JBRIE+I46yAOKyb/SoMH7mKOBwk6jUpFZhF8B+LCnWnefnM6jT/WsfQ5M1kCQ== dependencies: - "@smithy/types" "^4.12.0" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/credential-provider-env@^3.972.8": - version "3.972.8" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.8.tgz#0cab351881dc326d7d078156d9f115f08b6423b5" - integrity sha512-r91OOPAcHnLCSxaeu/lzZAVRCZ/CtTNuwmJkUwpwSDshUrP7bkX1OmFn2nUMWd9kN53Q4cEo8b7226G4olt2Mg== +"@aws-sdk/credential-provider-env@^3.972.11": + version "3.972.11" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.11.tgz#e4680636d200671875134201238bcdacb8cc8378" + integrity sha512-hbyoFuVm3qOAGfIPS9t7jCs8GFLFoaOs8ZmYp/chqciuHDyEGv+J365ip7YSvXSrxxUbeW9NyB1hTLt40NBMRg== dependencies: - "@aws-sdk/core" "^3.973.10" - "@aws-sdk/types" "^3.973.1" - "@smithy/property-provider" "^4.2.8" - "@smithy/types" "^4.12.0" + "@aws-sdk/core" "^3.973.13" + "@aws-sdk/types" "^3.973.2" + "@smithy/property-provider" "^4.2.9" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/credential-provider-http@^3.972.10": - version "3.972.10" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.10.tgz#d8c35c12da06f2392d6a5d4940782e087d557839" - integrity sha512-DTtuyXSWB+KetzLcWaSahLJCtTUe/3SXtlGp4ik9PCe9xD6swHEkG8n8/BNsQ9dsihb9nhFvuUB4DpdBGDcvVg== - dependencies: - "@aws-sdk/core" "^3.973.10" - "@aws-sdk/types" "^3.973.1" - "@smithy/fetch-http-handler" "^5.3.9" - "@smithy/node-http-handler" "^4.4.10" - "@smithy/property-provider" "^4.2.8" - "@smithy/protocol-http" "^5.3.8" - "@smithy/smithy-client" "^4.11.3" - "@smithy/types" "^4.12.0" - "@smithy/util-stream" "^4.5.12" +"@aws-sdk/credential-provider-http@^3.972.13": + version "3.972.13" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.13.tgz#e3874a8ef3902ebbd3d36225fdb4b9b711939625" + integrity sha512-a864QxQWFkdCZ5wQF0QZNKTbqAc/DFQNeARp4gOyZZdql5RHjj4CppUSfwAzS9cpw2IPY3eeJjWqLZ1QiDB/6w== + dependencies: + "@aws-sdk/core" "^3.973.13" + "@aws-sdk/types" "^3.973.2" + "@smithy/fetch-http-handler" "^5.3.10" + "@smithy/node-http-handler" "^4.4.11" + "@smithy/property-provider" "^4.2.9" + "@smithy/protocol-http" "^5.3.9" + "@smithy/smithy-client" "^4.11.7" + "@smithy/types" "^4.12.1" + "@smithy/util-stream" "^4.5.14" tslib "^2.6.2" -"@aws-sdk/credential-provider-ini@^3.972.8": - version "3.972.8" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.8.tgz#2e9dbc3feabd04fff2953029834f2be7abca879c" - integrity sha512-n2dMn21gvbBIEh00E8Nb+j01U/9rSqFIamWRdGm/mE5e+vHQ9g0cBNdrYFlM6AAiryKVHZmShWT9D1JAWJ3ISw== - dependencies: - "@aws-sdk/core" "^3.973.10" - "@aws-sdk/credential-provider-env" "^3.972.8" - "@aws-sdk/credential-provider-http" "^3.972.10" - "@aws-sdk/credential-provider-login" "^3.972.8" - "@aws-sdk/credential-provider-process" "^3.972.8" - "@aws-sdk/credential-provider-sso" "^3.972.8" - "@aws-sdk/credential-provider-web-identity" "^3.972.8" - "@aws-sdk/nested-clients" "3.990.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" +"@aws-sdk/credential-provider-ini@^3.972.11": + version "3.972.11" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.11.tgz#43a1c4c926fbb1a56b350f3afa17c8f095de27ea" + integrity sha512-kvPFn626ABLzxmjFMoqMRtmFKMeiUdWPhwxhmuPu233tqHnNuXzHv0MtrZlkzHd+rwlh9j0zCbQo89B54wIazQ== + dependencies: + "@aws-sdk/core" "^3.973.13" + "@aws-sdk/credential-provider-env" "^3.972.11" + "@aws-sdk/credential-provider-http" "^3.972.13" + "@aws-sdk/credential-provider-login" "^3.972.11" + "@aws-sdk/credential-provider-process" "^3.972.11" + "@aws-sdk/credential-provider-sso" "^3.972.11" + "@aws-sdk/credential-provider-web-identity" "^3.972.11" + "@aws-sdk/nested-clients" "^3.996.1" + "@aws-sdk/types" "^3.973.2" + "@smithy/credential-provider-imds" "^4.2.9" + "@smithy/property-provider" "^4.2.9" + "@smithy/shared-ini-file-loader" "^4.4.4" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/credential-provider-login@^3.972.8": - version "3.972.8" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.8.tgz#3f0c0dc8b49f525bed1c318b675a799be01ca686" - integrity sha512-rMFuVids8ICge/X9DF5pRdGMIvkVhDV9IQFQ8aTYk6iF0rl9jOUa1C3kjepxiXUlpgJQT++sLZkT9n0TMLHhQw== - dependencies: - "@aws-sdk/core" "^3.973.10" - "@aws-sdk/nested-clients" "3.990.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" +"@aws-sdk/credential-provider-login@^3.972.11": + version "3.972.11" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.11.tgz#33fa3b2e95e77e48be601305773622d0aee30500" + integrity sha512-stdy09EpBTmsxGiXe1vB5qtXNww9wact36/uWLlSV0/vWbCOUAY2JjhPXoDVLk8n+E6r0M5HeZseLk+iTtifxg== + dependencies: + "@aws-sdk/core" "^3.973.13" + "@aws-sdk/nested-clients" "^3.996.1" + "@aws-sdk/types" "^3.973.2" + "@smithy/property-provider" "^4.2.9" + "@smithy/protocol-http" "^5.3.9" + "@smithy/shared-ini-file-loader" "^4.4.4" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/credential-provider-node@^3.972.9": - version "3.972.9" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.9.tgz#c92158aab359787eedd64d83931c35a0a00f6072" - integrity sha512-LfJfO0ClRAq2WsSnA9JuUsNyIicD2eyputxSlSL0EiMrtxOxELLRG6ZVYDf/a1HCepaYPXeakH4y8D5OLCauag== - dependencies: - "@aws-sdk/credential-provider-env" "^3.972.8" - "@aws-sdk/credential-provider-http" "^3.972.10" - "@aws-sdk/credential-provider-ini" "^3.972.8" - "@aws-sdk/credential-provider-process" "^3.972.8" - "@aws-sdk/credential-provider-sso" "^3.972.8" - "@aws-sdk/credential-provider-web-identity" "^3.972.8" - "@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" +"@aws-sdk/credential-provider-node@^3.972.12": + version "3.972.12" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.12.tgz#6ca15d141f400851f0b742aab98db652eee4575c" + integrity sha512-gMWGnHbNSKWRj+PAiuSg0EDpEwpyIgk0v9U6EuZ1C/5/BUv25Way+E+UFB7r+YYkscuBJMJ+ai8E2K0Q8dx50g== + dependencies: + "@aws-sdk/credential-provider-env" "^3.972.11" + "@aws-sdk/credential-provider-http" "^3.972.13" + "@aws-sdk/credential-provider-ini" "^3.972.11" + "@aws-sdk/credential-provider-process" "^3.972.11" + "@aws-sdk/credential-provider-sso" "^3.972.11" + "@aws-sdk/credential-provider-web-identity" "^3.972.11" + "@aws-sdk/types" "^3.973.2" + "@smithy/credential-provider-imds" "^4.2.9" + "@smithy/property-provider" "^4.2.9" + "@smithy/shared-ini-file-loader" "^4.4.4" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/credential-provider-process@^3.972.8": - version "3.972.8" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.8.tgz#99c14367e33880b2c6f88b1417bd92fc6f390043" - integrity sha512-6cg26ffFltxM51OOS8NH7oE41EccaYiNlbd5VgUYwhiGCySLfHoGuGrLm2rMB4zhy+IO5nWIIG0HiodX8zdvHA== +"@aws-sdk/credential-provider-process@^3.972.11": + version "3.972.11" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.11.tgz#3434eafdc92d706eb6838c1efc5e5d04f341a731" + integrity sha512-B049fvbv41vf0Fs5bCtbzHpruBDp61sPiFDxUmkAJ/zvgSAturpj2rqzV1rj2clg4mb44Uxp9rgpcODexNFlFA== dependencies: - "@aws-sdk/core" "^3.973.10" - "@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" + "@aws-sdk/core" "^3.973.13" + "@aws-sdk/types" "^3.973.2" + "@smithy/property-provider" "^4.2.9" + "@smithy/shared-ini-file-loader" "^4.4.4" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/credential-provider-sso@^3.972.8": - version "3.972.8" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.8.tgz#aad4174425cae4535db2456f85b6c1315544f2a3" - integrity sha512-35kqmFOVU1n26SNv+U37sM8b2TzG8LyqAcd6iM9gprqxyHEh/8IM3gzN4Jzufs3qM6IrH8e43ryZWYdvfVzzKQ== - dependencies: - "@aws-sdk/client-sso" "3.990.0" - "@aws-sdk/core" "^3.973.10" - "@aws-sdk/token-providers" "3.990.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" +"@aws-sdk/credential-provider-sso@^3.972.11": + version "3.972.11" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.11.tgz#ed8184019f0e046ea07d3ca19f2a52235afc5554" + integrity sha512-vX9z8skN8vPtamVWmSCm4KQohub+1uMuRzIo4urZ2ZUMBAl1bqHatVD/roCb3qRfAyIGvZXCA/AWS03BQRMyCQ== + dependencies: + "@aws-sdk/core" "^3.973.13" + "@aws-sdk/nested-clients" "^3.996.1" + "@aws-sdk/token-providers" "3.997.0" + "@aws-sdk/types" "^3.973.2" + "@smithy/property-provider" "^4.2.9" + "@smithy/shared-ini-file-loader" "^4.4.4" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/credential-provider-web-identity@^3.972.8": - version "3.972.8" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.8.tgz#b662e6a234fb0b169760857236bbb2916396a674" - integrity sha512-CZhN1bOc1J3ubQPqbmr5b4KaMJBgdDvYsmEIZuX++wFlzmZsKj1bwkaiTEb5U2V7kXuzLlpF5HJSOM9eY/6nGA== - dependencies: - "@aws-sdk/core" "^3.973.10" - "@aws-sdk/nested-clients" "3.990.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" +"@aws-sdk/credential-provider-web-identity@^3.972.11": + version "3.972.11" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.11.tgz#976a5499f6828b00e068a3c81b7400278e71ad03" + integrity sha512-VR2Ju/QBdOjnWNIYuxRml63eFDLGc6Zl8aDwLi1rzgWo3rLBgtaWhWVBAijhVXzyPdQIOqdL8hvll5ybqumjeQ== + dependencies: + "@aws-sdk/core" "^3.973.13" + "@aws-sdk/nested-clients" "^3.996.1" + "@aws-sdk/types" "^3.973.2" + "@smithy/property-provider" "^4.2.9" + "@smithy/shared-ini-file-loader" "^4.4.4" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/middleware-bucket-endpoint@^3.972.3": - version "3.972.3" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.972.3.tgz#158507d55505e5e7b5b8cdac9f037f6aa326f202" - integrity sha512-fmbgWYirF67YF1GfD7cg5N6HHQ96EyRNx/rDIrTF277/zTWVuPI2qS/ZHgofwR1NZPe/NWvoppflQY01LrbVLg== +"@aws-sdk/middleware-bucket-endpoint@^3.972.4": + version "3.972.4" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.972.4.tgz#03f07cce35d0983c5767e4a5ac26dafeabb7050c" + integrity sha512-4W+1SPx5eWetSurqk7WNnldNr++k4UYcP2XmPnCf8yLFdUZ4NKKJA3j+zVuWmhOu7xKmEAyo9j3f+cy22CEVKg== dependencies: - "@aws-sdk/types" "^3.973.1" + "@aws-sdk/types" "^3.973.2" "@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" + "@smithy/node-config-provider" "^4.3.9" + "@smithy/protocol-http" "^5.3.9" + "@smithy/types" "^4.12.1" + "@smithy/util-config-provider" "^4.2.1" tslib "^2.6.2" -"@aws-sdk/middleware-expect-continue@^3.972.3": - version "3.972.3" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.972.3.tgz#c60bd81e81dde215b9f3f67e3c5448b608afd530" - integrity sha512-4msC33RZsXQpUKR5QR4HnvBSNCPLGHmB55oDiROqqgyOc+TOfVu2xgi5goA7ms6MdZLeEh2905UfWMnMMF4mRg== +"@aws-sdk/middleware-expect-continue@^3.972.4": + version "3.972.4" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.972.4.tgz#af429e14086225b6d00687ade1d4431063a1a6c0" + integrity sha512-lxU2ieIWtK9nqWxA+W4ldev31tRPjkkdt+QDBWGiwUNJsNwSJFVhkuIV9cbBPxTCT0nmYyJwvJ/2TYYJLMwmMA== dependencies: - "@aws-sdk/types" "^3.973.1" - "@smithy/protocol-http" "^5.3.8" - "@smithy/types" "^4.12.0" + "@aws-sdk/types" "^3.973.2" + "@smithy/protocol-http" "^5.3.9" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/middleware-flexible-checksums@^3.972.8": - version "3.972.8" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.972.8.tgz#aaf841f58e88e545a0ee799bca941f93efdfd796" - integrity sha512-Hn6gumcN/3/8Fzo9z7N1pA2PRfE8S+qAqdb4g3MqzXjIOIe+VxD7edO/DKAJ1YH11639EGQIHBz0wdOb5btjtw== +"@aws-sdk/middleware-flexible-checksums@^3.972.11": + version "3.972.11" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.972.11.tgz#c5482a19302e775d028265b217656547f3a9ad4a" + integrity sha512-niA/vhtS/xR4hEHIsPLEvgsccpqve+uJ4Gtizctsa21HfHmIZi5bWJD8kPcN+SfAgrlnuBG2YKFX0rRbzylg7A== dependencies: "@aws-crypto/crc32" "5.2.0" "@aws-crypto/crc32c" "5.2.0" "@aws-crypto/util" "5.2.0" - "@aws-sdk/core" "^3.973.10" - "@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.8" - "@smithy/protocol-http" "^5.3.8" - "@smithy/types" "^4.12.0" - "@smithy/util-middleware" "^4.2.8" - "@smithy/util-stream" "^4.5.12" - "@smithy/util-utf8" "^4.2.0" + "@aws-sdk/core" "^3.973.13" + "@aws-sdk/crc64-nvme" "^3.972.1" + "@aws-sdk/types" "^3.973.2" + "@smithy/is-array-buffer" "^4.2.1" + "@smithy/node-config-provider" "^4.3.9" + "@smithy/protocol-http" "^5.3.9" + "@smithy/types" "^4.12.1" + "@smithy/util-middleware" "^4.2.9" + "@smithy/util-stream" "^4.5.14" + "@smithy/util-utf8" "^4.2.1" tslib "^2.6.2" -"@aws-sdk/middleware-host-header@^3.972.3": - version "3.972.3" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.972.3.tgz#47c161dec62d89c66c89f4d17ff4434021e04af5" - integrity sha512-aknPTb2M+G3s+0qLCx4Li/qGZH8IIYjugHMv15JTYMe6mgZO8VBpYgeGYsNMGCqCZOcWzuf900jFBG5bopfzmA== +"@aws-sdk/middleware-host-header@^3.972.4": + version "3.972.4" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.972.4.tgz#6d12dbc3e9bba567209f57e2fc0304eeb47f753e" + integrity sha512-4q2Vg7/zOB10huDBLjzzTwVjBpG22X3J3ief2XrJEgTaANZrNfA3/cGbCVNAibSbu/nIYA7tDk8WCdsIzDDc4Q== dependencies: - "@aws-sdk/types" "^3.973.1" - "@smithy/protocol-http" "^5.3.8" - "@smithy/types" "^4.12.0" + "@aws-sdk/types" "^3.973.2" + "@smithy/protocol-http" "^5.3.9" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/middleware-location-constraint@^3.972.3": - version "3.972.3" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.972.3.tgz#b4f504f75baa19064b7457e5c6e3c8cecb4c32eb" - integrity sha512-nIg64CVrsXp67vbK0U1/Is8rik3huS3QkRHn2DRDx4NldrEFMgdkZGI/+cZMKD9k4YOS110Dfu21KZLHrFA/1g== +"@aws-sdk/middleware-location-constraint@^3.972.4": + version "3.972.4" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.972.4.tgz#6f04dbecb84814a21baf356bf36e73a592c53ffe" + integrity sha512-EP1qs0JV2smcKhZpwDMuzMBx9Q5qyU/RuZ02/qh/yBA3jnZKuNhB1lsQKkicvXg7LOeoqyxXLKOP/PJOugX8yg== dependencies: - "@aws-sdk/types" "^3.973.1" - "@smithy/types" "^4.12.0" + "@aws-sdk/types" "^3.973.2" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/middleware-logger@^3.972.3": - version "3.972.3" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.972.3.tgz#ef1afd4a0b70fe72cf5f7c817f82da9f35c7e836" - integrity sha512-Ftg09xNNRqaz9QNzlfdQWfpqMCJbsQdnZVJP55jfhbKi1+FTWxGuvfPoBhDHIovqWKjqbuiew3HuhxbJ0+OjgA== +"@aws-sdk/middleware-logger@^3.972.4": + version "3.972.4" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.972.4.tgz#5a238d2d74b3ea80fcad6563ce07842f8f94a776" + integrity sha512-xFqPvTysuZAHSkdygT+ken/5rzkR7fhOoDPejAJQslZpp0XBepmCJnDOqA57ERtCTBpu8wpjTFI1ETd4S0AXEw== dependencies: - "@aws-sdk/types" "^3.973.1" - "@smithy/types" "^4.12.0" + "@aws-sdk/types" "^3.973.2" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/middleware-recursion-detection@^3.972.3": - version "3.972.3" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.972.3.tgz#5b95dcecff76a0d2963bd954bdef87700d1b1c8c" - integrity sha512-PY57QhzNuXHnwbJgbWYTrqIDHYSeOlhfYERTAuc16LKZpTZRJUjzBFokp9hF7u1fuGeE3D70ERXzdbMBOqQz7Q== +"@aws-sdk/middleware-recursion-detection@^3.972.4": + version "3.972.4" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.972.4.tgz#a1a0fe638d7b73b02b7b944d1ed83d1ecc02b852" + integrity sha512-tVbRaayUZ7y2bOb02hC3oEPTqQf2A0HpPDwdMl1qTmye/q8Mq1F1WiIoFkQwG/YQFvbyErYIDMbYzIlxzzLtjQ== dependencies: - "@aws-sdk/types" "^3.973.1" + "@aws-sdk/types" "^3.973.2" "@aws/lambda-invoke-store" "^0.2.2" - "@smithy/protocol-http" "^5.3.8" - "@smithy/types" "^4.12.0" + "@smithy/protocol-http" "^5.3.9" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/middleware-sdk-s3@^3.972.10": - version "3.972.10" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.972.10.tgz#5aa0f09fa8b17e7dfbde431f0b6ab2521872209f" - integrity sha512-wLkB4bshbBtsAiC2WwlHzOWXu1fx3ftL63fQl0DxEda48Q6B8bcHydZppE3KjEIpPyiNOllByfSnb07cYpIgmw== +"@aws-sdk/middleware-sdk-s3@^3.972.13": + version "3.972.13" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.972.13.tgz#c53753d12589dfa034b71f6cfdf4c722a7f5ba7a" + integrity sha512-rGBz1n6PFxg1+5mnN1/IczesPwx0W39DZt2JPjqPiZAZ7LAqH8FS4AsawSNZqr+UFJfqtTXYpeLQnMfbMAgHhg== dependencies: - "@aws-sdk/core" "^3.973.10" - "@aws-sdk/types" "^3.973.1" + "@aws-sdk/core" "^3.973.13" + "@aws-sdk/types" "^3.973.2" "@aws-sdk/util-arn-parser" "^3.972.2" - "@smithy/core" "^3.23.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.3" - "@smithy/types" "^4.12.0" - "@smithy/util-config-provider" "^4.2.0" - "@smithy/util-middleware" "^4.2.8" - "@smithy/util-stream" "^4.5.12" - "@smithy/util-utf8" "^4.2.0" + "@smithy/core" "^3.23.4" + "@smithy/node-config-provider" "^4.3.9" + "@smithy/protocol-http" "^5.3.9" + "@smithy/signature-v4" "^5.3.9" + "@smithy/smithy-client" "^4.11.7" + "@smithy/types" "^4.12.1" + "@smithy/util-config-provider" "^4.2.1" + "@smithy/util-middleware" "^4.2.9" + "@smithy/util-stream" "^4.5.14" + "@smithy/util-utf8" "^4.2.1" tslib "^2.6.2" -"@aws-sdk/middleware-ssec@^3.972.3": - version "3.972.3" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.972.3.tgz#4f81d310fd91164e6e18ba3adab6bcf906920333" - integrity sha512-dU6kDuULN3o3jEHcjm0c4zWJlY1zWVkjG9NPe9qxYLLpcbdj5kRYBS2DdWYD+1B9f910DezRuws7xDEqKkHQIg== +"@aws-sdk/middleware-ssec@^3.972.4": + version "3.972.4" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.972.4.tgz#419442c1c6da7b432de05e223c79fd666e22a1c3" + integrity sha512-jzysKNnfwqjTOeF4s1QcxYQ8WB1ZIw/KMhOAX2UGYsmpVPHZ1cV6IYRfBQnt0qnDYom1pU3b5jOG8TA9n6LAbQ== dependencies: - "@aws-sdk/types" "^3.973.1" - "@smithy/types" "^4.12.0" + "@aws-sdk/types" "^3.973.2" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/middleware-user-agent@^3.972.10": - version "3.972.10" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.10.tgz#0efb74242de786087de289677a2d2a3a9895f182" - integrity sha512-bBEL8CAqPQkI91ZM5a9xnFAzedpzH6NYCOtNyLarRAzTUTFN2DKqaC60ugBa7pnU1jSi4mA7WAXBsrod7nJltg== - dependencies: - "@aws-sdk/core" "^3.973.10" - "@aws-sdk/types" "^3.973.1" - "@aws-sdk/util-endpoints" "3.990.0" - "@smithy/core" "^3.23.0" - "@smithy/protocol-http" "^5.3.8" - "@smithy/types" "^4.12.0" +"@aws-sdk/middleware-user-agent@^3.972.13": + version "3.972.13" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.13.tgz#03df64182ce3c10331ff107e9947b9132c2777a0" + integrity sha512-p1kVYbzBxRmhuOHoL/ANJPCedqUxnVgkEjxPoxt5pQv/yzppHM7aBWciYEE9TZY59M421D3GjLfZIZBoEFboVQ== + dependencies: + "@aws-sdk/core" "^3.973.13" + "@aws-sdk/types" "^3.973.2" + "@aws-sdk/util-endpoints" "^3.996.1" + "@smithy/core" "^3.23.4" + "@smithy/protocol-http" "^5.3.9" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/nested-clients@3.990.0": - version "3.990.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.990.0.tgz#8e1b35231e98b35b23e6dff1e71256993819a422" - integrity sha512-3NA0s66vsy8g7hPh36ZsUgO4SiMyrhwcYvuuNK1PezO52vX3hXDW4pQrC6OQLGKGJV0o6tbEyQtXb/mPs8zg8w== +"@aws-sdk/nested-clients@^3.996.1": + version "3.996.1" + resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.996.1.tgz#f0028672b726f987bb904af57092a857a69a1f43" + integrity sha512-XHVLFRGkuV2gh2uwBahCt65ALMb5wMpqplXEZIvFnWOCPlk60B7h7M5J9Em243K8iICDiWY6KhBEqVGfjTqlLA== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "^3.973.10" - "@aws-sdk/middleware-host-header" "^3.972.3" - "@aws-sdk/middleware-logger" "^3.972.3" - "@aws-sdk/middleware-recursion-detection" "^3.972.3" - "@aws-sdk/middleware-user-agent" "^3.972.10" - "@aws-sdk/region-config-resolver" "^3.972.3" - "@aws-sdk/types" "^3.973.1" - "@aws-sdk/util-endpoints" "3.990.0" - "@aws-sdk/util-user-agent-browser" "^3.972.3" - "@aws-sdk/util-user-agent-node" "^3.972.8" - "@smithy/config-resolver" "^4.4.6" - "@smithy/core" "^3.23.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.14" - "@smithy/middleware-retry" "^4.4.31" - "@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.10" - "@smithy/protocol-http" "^5.3.8" - "@smithy/smithy-client" "^4.11.3" - "@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.30" - "@smithy/util-defaults-mode-node" "^4.2.33" - "@smithy/util-endpoints" "^3.2.8" - "@smithy/util-middleware" "^4.2.8" - "@smithy/util-retry" "^4.2.8" - "@smithy/util-utf8" "^4.2.0" + "@aws-sdk/core" "^3.973.13" + "@aws-sdk/middleware-host-header" "^3.972.4" + "@aws-sdk/middleware-logger" "^3.972.4" + "@aws-sdk/middleware-recursion-detection" "^3.972.4" + "@aws-sdk/middleware-user-agent" "^3.972.13" + "@aws-sdk/region-config-resolver" "^3.972.4" + "@aws-sdk/types" "^3.973.2" + "@aws-sdk/util-endpoints" "^3.996.1" + "@aws-sdk/util-user-agent-browser" "^3.972.4" + "@aws-sdk/util-user-agent-node" "^3.972.12" + "@smithy/config-resolver" "^4.4.7" + "@smithy/core" "^3.23.4" + "@smithy/fetch-http-handler" "^5.3.10" + "@smithy/hash-node" "^4.2.9" + "@smithy/invalid-dependency" "^4.2.9" + "@smithy/middleware-content-length" "^4.2.9" + "@smithy/middleware-endpoint" "^4.4.18" + "@smithy/middleware-retry" "^4.4.35" + "@smithy/middleware-serde" "^4.2.10" + "@smithy/middleware-stack" "^4.2.9" + "@smithy/node-config-provider" "^4.3.9" + "@smithy/node-http-handler" "^4.4.11" + "@smithy/protocol-http" "^5.3.9" + "@smithy/smithy-client" "^4.11.7" + "@smithy/types" "^4.12.1" + "@smithy/url-parser" "^4.2.9" + "@smithy/util-base64" "^4.3.1" + "@smithy/util-body-length-browser" "^4.2.1" + "@smithy/util-body-length-node" "^4.2.2" + "@smithy/util-defaults-mode-browser" "^4.3.34" + "@smithy/util-defaults-mode-node" "^4.2.37" + "@smithy/util-endpoints" "^3.2.9" + "@smithy/util-middleware" "^4.2.9" + "@smithy/util-retry" "^4.2.9" + "@smithy/util-utf8" "^4.2.1" tslib "^2.6.2" -"@aws-sdk/region-config-resolver@^3.972.3": - version "3.972.3" - resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.972.3.tgz#25af64235ca6f4b6b21f85d4b3c0b432efc4ae04" - integrity sha512-v4J8qYAWfOMcZ4MJUyatntOicTzEMaU7j3OpkRCGGFSL2NgXQ5VbxauIyORA+pxdKZ0qQG2tCQjQjZDlXEC3Ow== +"@aws-sdk/region-config-resolver@^3.972.4": + version "3.972.4" + resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.972.4.tgz#aa178d3f3cbac33e2f5ade15a160dad2dfd062c6" + integrity sha512-3GrJYv5eI65oCKveBZP7Q246dVP+tqeys9aKMB0dfX1glUWfppWlxIu52derqdNb9BX9lxYmeiaBcBIqOAYSgQ== dependencies: - "@aws-sdk/types" "^3.973.1" - "@smithy/config-resolver" "^4.4.6" - "@smithy/node-config-provider" "^4.3.8" - "@smithy/types" "^4.12.0" + "@aws-sdk/types" "^3.973.2" + "@smithy/config-resolver" "^4.4.7" + "@smithy/node-config-provider" "^4.3.9" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/signature-v4-multi-region@3.990.0": - version "3.990.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.990.0.tgz#3ab40960673058f826ffbbe45bc8d354c5e31c0d" - integrity sha512-O55s1eFmKi+2Ko5T1hbdxL6tFVONGscSVe9VRxS4m91Tlbo9iG2Q2HvKWq1DuKQAuUWSUfMmjrRt07JNzizr2A== +"@aws-sdk/signature-v4-multi-region@^3.996.1": + version "3.996.1" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.1.tgz#50e1da5fcf81f31188334dac75f8d065d65ad082" + integrity sha512-Mj4npuEtVHFjGZHTBwhBvBzmgKHY7UsfroZWWzjpVP5YJaMTPeihsotuQLba5uQthEZyaeWs6dTu3Shr0qKFFw== dependencies: - "@aws-sdk/middleware-sdk-s3" "^3.972.10" - "@aws-sdk/types" "^3.973.1" - "@smithy/protocol-http" "^5.3.8" - "@smithy/signature-v4" "^5.3.8" - "@smithy/types" "^4.12.0" + "@aws-sdk/middleware-sdk-s3" "^3.972.13" + "@aws-sdk/types" "^3.973.2" + "@smithy/protocol-http" "^5.3.9" + "@smithy/signature-v4" "^5.3.9" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/token-providers@3.990.0": - version "3.990.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.990.0.tgz#045b21339258f1c7b3f1b8dedc475a8cc3842d68" - integrity sha512-L3BtUb2v9XmYgQdfGBzbBtKMXaP5fV973y3Qdxeevs6oUTVXFmi/mV1+LnScA/1wVPJC9/hlK+1o5vbt7cG7EQ== - dependencies: - "@aws-sdk/core" "^3.973.10" - "@aws-sdk/nested-clients" "3.990.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" +"@aws-sdk/token-providers@3.997.0": + version "3.997.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.997.0.tgz#3941e72c86c70776f60030947ae88d428e8a1591" + integrity sha512-UdG36F7lU9aTqGFRieEyuRUJlgEJBqKeKKekC0esH21DbUSKhPR1kZBah214kYasIaWe1hLJLaqUigoTa5hZAQ== + dependencies: + "@aws-sdk/core" "^3.973.13" + "@aws-sdk/nested-clients" "^3.996.1" + "@aws-sdk/types" "^3.973.2" + "@smithy/property-provider" "^4.2.9" + "@smithy/shared-ini-file-loader" "^4.4.4" + "@smithy/types" "^4.12.1" tslib "^2.6.2" "@aws-sdk/types@^3.222.0": @@ -579,12 +535,12 @@ "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@aws-sdk/types@^3.973.1": - version "3.973.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.973.1.tgz#1b2992ec6c8380c3e74c9bd2c74703e9a807d6e0" - integrity sha512-DwHBiMNOB468JiX6+i34c+THsKHErYUdNQ3HexeXZvVn4zouLjgaS4FejiGSi2HyBuzuyHg7SuOPmjSvoU9NRg== +"@aws-sdk/types@^3.973.2": + version "3.973.2" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.973.2.tgz#4d46878bbff7dd5ccd162394943baa8004098f3a" + integrity sha512-maTZwGsALtnAw4TJr/S6yERAosTwPduu0XhUV+SdbvRZtCOgSgk1ttL2R0XYzvkYSpvbtJocn77tBXq2AKglBw== dependencies: - "@smithy/types" "^4.12.0" + "@smithy/types" "^4.12.1" tslib "^2.6.2" "@aws-sdk/util-arn-parser@^3.972.2": @@ -594,15 +550,15 @@ dependencies: tslib "^2.6.2" -"@aws-sdk/util-endpoints@3.990.0": - version "3.990.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.990.0.tgz#3c78424f2ea48a1bba5e8fa5bf0d8f205c0675ce" - integrity sha512-kVwtDc9LNI3tQZHEMNbkLIOpeDK8sRSTuT8eMnzGY+O+JImPisfSTjdh+jw9OTznu+MYZjQsv0258sazVKunYg== +"@aws-sdk/util-endpoints@^3.996.1": + version "3.996.1" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.996.1.tgz#1fd0f3800c899f80be067318795301b85412484d" + integrity sha512-7cJyd+M5i0IoqWkJa1KFx8KNCGIx+Ywu+lT53KpqX7ReVwz03DCKUqvZ/y65vdKwo9w9/HptSAeLDluO5MpGIg== dependencies: - "@aws-sdk/types" "^3.973.1" - "@smithy/types" "^4.12.0" - "@smithy/url-parser" "^4.2.8" - "@smithy/util-endpoints" "^3.2.8" + "@aws-sdk/types" "^3.973.2" + "@smithy/types" "^4.12.1" + "@smithy/url-parser" "^4.2.9" + "@smithy/util-endpoints" "^3.2.9" tslib "^2.6.2" "@aws-sdk/util-locate-window@^3.0.0": @@ -612,34 +568,34 @@ dependencies: tslib "^2.6.2" -"@aws-sdk/util-user-agent-browser@^3.972.3": - version "3.972.3" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.972.3.tgz#1363b388cb3af86c5322ef752c0cf8d7d25efa8a" - integrity sha512-JurOwkRUcXD/5MTDBcqdyQ9eVedtAsZgw5rBwktsPTN7QtPiS2Ld1jkJepNgYoCufz1Wcut9iup7GJDoIHp8Fw== +"@aws-sdk/util-user-agent-browser@^3.972.4": + version "3.972.4" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.972.4.tgz#f248b0c610fa20dae189fea5face2b9a1d95530a" + integrity sha512-GHb+8XHv6hfLWKQKAKaSOm+vRvogg07s+FWtbR3+eCXXPSFn9XVmiYF4oypAxH7dGIvoxkVG/buHEnzYukyJiA== dependencies: - "@aws-sdk/types" "^3.973.1" - "@smithy/types" "^4.12.0" + "@aws-sdk/types" "^3.973.2" + "@smithy/types" "^4.12.1" bowser "^2.11.0" tslib "^2.6.2" -"@aws-sdk/util-user-agent-node@^3.972.8": - version "3.972.8" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.972.8.tgz#c79f71cf1149501cc898862e3c350be601c9a0f8" - integrity sha512-XJZuT0LWsFCW1C8dEpPAXSa7h6Pb3krr2y//1X0Zidpcl0vmgY5nL/X0JuBZlntpBzaN3+U4hvKjuijyiiR8zw== +"@aws-sdk/util-user-agent-node@^3.972.12": + version "3.972.12" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.972.12.tgz#81e4281ab19b4d547b773e06b89bd08c6534c857" + integrity sha512-c1n3wBK6te+Vd9qU86nF8AsYuiBsxLn0AADGWyFX7vEADr3btaAg5iPQT6GYj6rvzSOEVVisvaAatOWInlJUbQ== dependencies: - "@aws-sdk/middleware-user-agent" "^3.972.10" - "@aws-sdk/types" "^3.973.1" - "@smithy/node-config-provider" "^4.3.8" - "@smithy/types" "^4.12.0" + "@aws-sdk/middleware-user-agent" "^3.972.13" + "@aws-sdk/types" "^3.973.2" + "@smithy/node-config-provider" "^4.3.9" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/xml-builder@^3.972.4": - version "3.972.4" - resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.972.4.tgz#8115c8cf90c71cf484a52c82eac5344cd3a5e921" - integrity sha512-0zJ05ANfYqI6+rGqj8samZBFod0dPPousBjLEqg8WdxSgbMAkRgLyn81lP215Do0rFJ/17LIXwr7q0yK24mP6Q== +"@aws-sdk/xml-builder@^3.972.6": + version "3.972.6" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.972.6.tgz#a88b3f1894cffe62046bd748357eaf4f26544377" + integrity sha512-YrXu+UnfC8IdARa4ZkrpcyuRmA/TVgYW6Lcdtvi34NQgRjM1hTirNirN+rGb+s/kNomby8oJiIAu0KNbiZC7PA== dependencies: - "@smithy/types" "^4.12.0" - fast-xml-parser "5.3.4" + "@smithy/types" "^4.12.1" + fast-xml-parser "5.3.6" tslib "^2.6.2" "@aws/lambda-invoke-store@^0.2.2": @@ -818,15 +774,6 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@dabh/diagnostics@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" - integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== - dependencies: - colorspace "1.1.x" - enabled "2.0.x" - kuler "^2.0.0" - "@dabh/diagnostics@^2.0.8": version "2.0.8" resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.8.tgz#ead97e72ca312cf0e6dd7af0d300b58993a31a5e" @@ -1046,11 +993,6 @@ "@eslint/core" "^0.17.0" levn "^0.4.1" -"@fastify/busboy@^2.0.0": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.1.tgz#b9da6a878a371829a0502c9b6c1c143ef6663f4d" - integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA== - "@humanfs/core@^0.19.1": version "0.19.1" resolved "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.1.tgz#17c55ca7d426733fe3c561906b8173c336b40a77" @@ -1242,13 +1184,13 @@ "@inquirer/type" "^3.0.10" yoctocolors-cjs "^2.1.3" -"@inquirer/checkbox@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-5.0.4.tgz#813e8fd64c5f9ce064e4a6517a1fcc4524d2cf05" - integrity sha512-DrAMU3YBGMUAp6ArwTIp/25CNDtDbxk7UjIrrtM25JVVrlVYlVzHh5HR1BDFu9JMyUoZ4ZanzeaHqNDttf3gVg== +"@inquirer/checkbox@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-5.1.0.tgz#4c62eb72ff3d6a4e15bec22bf508ec0899c2f6f4" + integrity sha512-/HjF1LN0a1h4/OFsbGKHNDtWICFU/dqXCdym719HFTyJo9IG7Otr+ziGWc9S0iQuohRZllh+WprSgd5UW5Fw0g== dependencies: "@inquirer/ansi" "^2.0.3" - "@inquirer/core" "^11.1.1" + "@inquirer/core" "^11.1.5" "@inquirer/figures" "^2.0.3" "@inquirer/type" "^4.0.3" @@ -1268,12 +1210,12 @@ "@inquirer/core" "^10.3.2" "@inquirer/type" "^3.0.10" -"@inquirer/confirm@^6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-6.0.4.tgz#548d63981f3bc189ee0773015fbe4625e7a204a0" - integrity sha512-WdaPe7foUnoGYvXzH4jp4wH/3l+dBhZ3uwhKjXjwdrq5tEIFaANxj6zrGHxLdsIA0yKM0kFPVcEalOZXBB5ISA== +"@inquirer/confirm@^6.0.8": + version "6.0.8" + resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-6.0.8.tgz#9fd60f2968e723f82dd067e1ffcc1fe32f5bfe04" + integrity sha512-Di6dgmiZ9xCSUxWUReWTqDtbhXCuG2MQm2xmgSAIruzQzBqNf49b8E07/vbCYY506kDe8BiwJbegXweG8M1klw== dependencies: - "@inquirer/core" "^11.1.1" + "@inquirer/core" "^11.1.5" "@inquirer/type" "^4.0.3" "@inquirer/core@^10.3.2": @@ -1290,18 +1232,18 @@ wrap-ansi "^6.2.0" yoctocolors-cjs "^2.1.3" -"@inquirer/core@^11.1.1": - version "11.1.1" - resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-11.1.1.tgz#7cf708b350f9e73b01ccb4b61ecf3016d3de1b0d" - integrity sha512-hV9o15UxX46OyQAtaoMqAOxGR8RVl1aZtDx1jHbCtSJy1tBdTfKxLPKf7utsE4cRy4tcmCQ4+vdV+ca+oNxqNA== +"@inquirer/core@^11.1.5": + version "11.1.5" + resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-11.1.5.tgz#781a7c5d56c12961870e4f0521ff881a85c81b7e" + integrity sha512-QQPAX+lka8GyLcZ7u7Nb1h6q72iZ/oy0blilC3IB2nSt1Qqxp7akt94Jqhi/DzARuN3Eo9QwJRvtl4tmVe4T5A== dependencies: "@inquirer/ansi" "^2.0.3" "@inquirer/figures" "^2.0.3" "@inquirer/type" "^4.0.3" cli-width "^4.1.0" + fast-wrap-ansi "^0.2.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" @@ -1330,12 +1272,12 @@ "@inquirer/external-editor" "^1.0.3" "@inquirer/type" "^3.0.10" -"@inquirer/editor@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-5.0.4.tgz#8dda8bc92ca5a7f7326b4508f8da90358fbedfc5" - integrity sha512-QI3Jfqcv6UO2/VJaEFONH8Im1ll++Xn/AJTBn9Xf+qx2M+H8KZAdQ5sAe2vtYlo+mLW+d7JaMJB4qWtK4BG3pw== +"@inquirer/editor@^5.0.8": + version "5.0.8" + resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-5.0.8.tgz#3d028366cacd749efad80db67da2db173658ac9f" + integrity sha512-sLcpbb9B3XqUEGrj1N66KwhDhEckzZ4nI/W6SvLXyBX8Wic3LDLENlWRvkOGpCPoserabe+MxQkpiMoI8irvyA== dependencies: - "@inquirer/core" "^11.1.1" + "@inquirer/core" "^11.1.5" "@inquirer/external-editor" "^2.0.3" "@inquirer/type" "^4.0.3" @@ -1348,12 +1290,12 @@ "@inquirer/type" "^3.0.10" yoctocolors-cjs "^2.1.3" -"@inquirer/expand@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-5.0.4.tgz#72adbd795c451deb6e74d04d5da91e41a45372d3" - integrity sha512-0I/16YwPPP0Co7a5MsomlZLpch48NzYfToyqYAOWtBmaXSB80RiNQ1J+0xx2eG+Wfxt0nHtpEWSRr6CzNVnOGg== +"@inquirer/expand@^5.0.8": + version "5.0.8" + resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-5.0.8.tgz#837c1b3af8a9dda536c5af516b57e8c7f1053d4a" + integrity sha512-QieW3F1prNw3j+hxO7/NKkG1pk3oz7pOB6+5Upwu3OIwADfPX0oZVppsqlL+Vl/uBHHDSOBY0BirLctLnXwGGg== dependencies: - "@inquirer/core" "^11.1.1" + "@inquirer/core" "^11.1.5" "@inquirer/type" "^4.0.3" "@inquirer/external-editor@^1.0.3": @@ -1403,12 +1345,12 @@ "@inquirer/core" "^10.3.2" "@inquirer/type" "^3.0.10" -"@inquirer/input@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-5.0.4.tgz#56a839a27ed091972f0eb6be1ed6ede2f7f4223f" - integrity sha512-4B3s3jvTREDFvXWit92Yc6jF1RJMDy2VpSqKtm4We2oVU65YOh2szY5/G14h4fHlyQdpUmazU5MPCFZPRJ0AOw== +"@inquirer/input@^5.0.8": + version "5.0.8" + resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-5.0.8.tgz#f10db8f67e5b95a52fef12924bbe77a010d7f834" + integrity sha512-p0IJslw0AmedLEkOU+yrEX3Aj2RTpQq7ZOf8nc1DIhjzaxRWrrgeuE5Kyh39fVRgtcACaMXx/9WNo8+GjgBOfw== dependencies: - "@inquirer/core" "^11.1.1" + "@inquirer/core" "^11.1.5" "@inquirer/type" "^4.0.3" "@inquirer/number@^3.0.23": @@ -1419,12 +1361,12 @@ "@inquirer/core" "^10.3.2" "@inquirer/type" "^3.0.10" -"@inquirer/number@^4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@inquirer/number/-/number-4.0.4.tgz#c0ea5cd3a3f5e15ea1e90d6144abfd338a07f4f7" - integrity sha512-CmMp9LF5HwE+G/xWsC333TlCzYYbXMkcADkKzcawh49fg2a1ryLc7JL1NJYYt1lJ+8f4slikNjJM9TEL/AljYQ== +"@inquirer/number@^4.0.8": + version "4.0.8" + resolved "https://registry.yarnpkg.com/@inquirer/number/-/number-4.0.8.tgz#5a85b9aee783452d5d8067a71b16d481fa66d6dc" + integrity sha512-uGLiQah9A0F9UIvJBX52m0CnqtLaym0WpT9V4YZrjZ+YRDKZdwwoEPz06N6w8ChE2lrnsdyhY9sL+Y690Kh9gQ== dependencies: - "@inquirer/core" "^11.1.1" + "@inquirer/core" "^11.1.5" "@inquirer/type" "^4.0.3" "@inquirer/password@^4.0.23": @@ -1436,30 +1378,30 @@ "@inquirer/core" "^10.3.2" "@inquirer/type" "^3.0.10" -"@inquirer/password@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-5.0.4.tgz#d691b1e9f4cc323ffff94579db040c751140c4fa" - integrity sha512-ZCEPyVYvHK4W4p2Gy6sTp9nqsdHQCfiPXIP9LbJVW4yCinnxL/dDDmPaEZVysGrj8vxVReRnpfS2fOeODe9zjg== +"@inquirer/password@^5.0.8": + version "5.0.8" + resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-5.0.8.tgz#260f69a2179db824cfa13465525420ba3659de90" + integrity sha512-zt1sF4lYLdvPqvmvHdmjOzuUUjuCQ897pdUCO8RbXMUDKXJTTyOQgtn23le+jwcb+MpHl3VAFvzIdxRAf6aPlA== dependencies: "@inquirer/ansi" "^2.0.3" - "@inquirer/core" "^11.1.1" + "@inquirer/core" "^11.1.5" "@inquirer/type" "^4.0.3" -"@inquirer/prompts@8.2.0": - version "8.2.0" - resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-8.2.0.tgz#864494037fe3d456a829198a0563b17492b95a77" - integrity sha512-rqTzOprAj55a27jctS3vhvDDJzYXsr33WXTjODgVOru21NvBo9yIgLIAf7SBdSV0WERVly3dR6TWyp7ZHkvKFA== - dependencies: - "@inquirer/checkbox" "^5.0.4" - "@inquirer/confirm" "^6.0.4" - "@inquirer/editor" "^5.0.4" - "@inquirer/expand" "^5.0.4" - "@inquirer/input" "^5.0.4" - "@inquirer/number" "^4.0.4" - "@inquirer/password" "^5.0.4" - "@inquirer/rawlist" "^5.2.0" - "@inquirer/search" "^4.1.0" - "@inquirer/select" "^5.0.4" +"@inquirer/prompts@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-8.3.0.tgz#dcae1093c84d08f3915fc253861579246b1e2929" + integrity sha512-JAj66kjdH/F1+B7LCigjARbwstt3SNUOSzMdjpsvwJmzunK88gJeXmcm95L9nw1KynvFVuY4SzXh/3Y0lvtgSg== + dependencies: + "@inquirer/checkbox" "^5.1.0" + "@inquirer/confirm" "^6.0.8" + "@inquirer/editor" "^5.0.8" + "@inquirer/expand" "^5.0.8" + "@inquirer/input" "^5.0.8" + "@inquirer/number" "^4.0.8" + "@inquirer/password" "^5.0.8" + "@inquirer/rawlist" "^5.2.4" + "@inquirer/search" "^4.1.4" + "@inquirer/select" "^5.1.0" "@inquirer/prompts@^7.10.1": version "7.10.1" @@ -1486,12 +1428,12 @@ "@inquirer/type" "^3.0.10" yoctocolors-cjs "^2.1.3" -"@inquirer/rawlist@^5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-5.2.0.tgz#fee7d58867508781ff96483f5894bfdd551a1ec2" - integrity sha512-CciqGoOUMrFo6HxvOtU5uL8fkjCmzyeB6fG7O1vdVAZVSopUBYECOwevDBlqNLyyYmzpm2Gsn/7nLrpruy9RFg== +"@inquirer/rawlist@^5.2.4": + version "5.2.4" + resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-5.2.4.tgz#bce70b0804543522d1f3cf726323bec26b6df549" + integrity sha512-fTuJ5Cq9W286isLxwj6GGyfTjx1Zdk4qppVEPexFuA6yioCCXS4V1zfKroQqw7QdbDPN73xs2DiIAlo55+kBqg== dependencies: - "@inquirer/core" "^11.1.1" + "@inquirer/core" "^11.1.5" "@inquirer/type" "^4.0.3" "@inquirer/search@^3.2.2": @@ -1504,12 +1446,12 @@ "@inquirer/type" "^3.0.10" yoctocolors-cjs "^2.1.3" -"@inquirer/search@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@inquirer/search/-/search-4.1.0.tgz#5e17b5787975b8b4df182ca969e525c01c98dc4f" - integrity sha512-EAzemfiP4IFvIuWnrHpgZs9lAhWDA0GM3l9F4t4mTQ22IFtzfrk8xbkMLcAN7gmVML9O/i+Hzu8yOUyAaL6BKA== +"@inquirer/search@^4.1.4": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@inquirer/search/-/search-4.1.4.tgz#70a8e6fe726493d28fabe27044f630585b4a880b" + integrity sha512-9yPTxq7LPmYjrGn3DRuaPuPbmC6u3fiWcsE9ggfLcdgO/ICHYgxq7mEy1yJ39brVvgXhtOtvDVjDh9slJxE4LQ== dependencies: - "@inquirer/core" "^11.1.1" + "@inquirer/core" "^11.1.5" "@inquirer/figures" "^2.0.3" "@inquirer/type" "^4.0.3" @@ -1535,13 +1477,13 @@ "@inquirer/type" "^3.0.10" yoctocolors-cjs "^2.1.3" -"@inquirer/select@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-5.0.4.tgz#11249c7091946681d394f649b00844f8fda38d7a" - integrity sha512-s8KoGpPYMEQ6WXc0dT9blX2NtIulMdLOO3LA1UKOiv7KFWzlJ6eLkEYTDBIi+JkyKXyn8t/CD6TinxGjyLt57g== +"@inquirer/select@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-5.1.0.tgz#02be4e8a2c53cd72a7bf4685be6eac5497bd4c5c" + integrity sha512-OyYbKnchS1u+zRe14LpYrN8S0wH1vD0p2yKISvSsJdH2TpI87fh4eZdWnpdbrGauCRWDph3NwxRmM4Pcm/hx1Q== dependencies: "@inquirer/ansi" "^2.0.3" - "@inquirer/core" "^11.1.1" + "@inquirer/core" "^11.1.5" "@inquirer/figures" "^2.0.3" "@inquirer/type" "^4.0.3" @@ -1577,23 +1519,18 @@ eslint-config-prettier "^10.1.8" typescript-eslint "^8.40.0" -"@internxt/inxt-js@2.2.9": - version "2.2.9" - resolved "https://registry.yarnpkg.com/@internxt/inxt-js/-/inxt-js-2.2.9.tgz#57654adb1153e5e77e33a17553e1e863b4c57358" - integrity sha512-wYGSolYcRb3apNUAlDsn8eJFpOejBW/RbbpDJazaAe8FztyBpkcNDZ4NOVCmpdwaCXRLGQd3/JNqDd0ZIRyNDQ== +"@internxt/inxt-js@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@internxt/inxt-js/-/inxt-js-2.3.0.tgz#6284268305ce5a59b75436595194d69fc0c9c4d7" + integrity sha512-euP5BzKUTKv9IfGDr7PE10VKG+Ly1Hy0ZS4DXgdlf+iqlgHliWHrOSvTW2Q9t1PXiNH1YugZHK4BMnevTNKO8g== dependencies: - "@internxt/lib" "1.3.1" - "@internxt/sdk" "1.11.10" + "@internxt/lib" "1.4.1" + "@internxt/sdk" "1.13.2" async "3.2.6" - axios "1.12.2" + axios "1.13.5" bip39 "3.1.0" - undici "5.29.0" - winston "3.17.0" - -"@internxt/lib@1.3.1": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@internxt/lib/-/lib-1.3.1.tgz#7ba42996afe5c91e2badf3f6a02cedaa1671f4ee" - integrity sha512-3VWPRi0G8F7QR2pP+M7lM3Resw9zGSF0dFpE86pV7VyJt2WtxJW08AdxikjaBWR6knTHLU7BZPpnKQmUD/GFnw== + undici "7.22.0" + winston "3.19.0" "@internxt/lib@1.4.1": version "1.4.1" @@ -1606,33 +1543,34 @@ version "1.0.2" resolved "https://codeload.github.com/internxt/prettier-config/tar.gz/9fa74e9a2805e1538b50c3809324f1c9d0f3e4f9" -"@internxt/sdk@1.11.10": - version "1.11.10" - resolved "https://registry.yarnpkg.com/@internxt/sdk/-/sdk-1.11.10.tgz#43a871b62257eb8543e7fcf1695391d32c004e8d" - integrity sha512-wiOOIIy1VqXySCIPbz1Rv8D6uTXWaP1o8URudEpIzrejxCNFM1M505MLDPStZdEmBW3ESJQa64LouCXUBQWKQQ== +"@internxt/sdk@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@internxt/sdk/-/sdk-1.13.2.tgz#e789b9280a2c9f5451935d7358bdf1e259e896f4" + integrity sha512-KHC0QlXZ0HMtVOq8P56OkHhEhy3x8OyoUAwvRib+2CIzHWk78xApO2t4R4HScWRFH6xmHIoCgP1fTC6ctCmPqA== dependencies: - axios "^1.12.2" - uuid "11.1.0" + axios "1.13.5" + uuid "13.0.0" -"@internxt/sdk@1.13.1": - version "1.13.1" - resolved "https://registry.yarnpkg.com/@internxt/sdk/-/sdk-1.13.1.tgz#41e76bd2baa1508e47630e0f19fbafbea89678b0" - integrity sha512-6MRMdCEzwMPPK0V8jiFGh7FyUFrEP9ZvgitqqRvmtLsmE5oUjivlXrCX9SkQME0m+TweTuA+BAzr6oUgkSf9bw== +"@internxt/sdk@1.15.0": + version "1.15.0" + resolved "https://registry.yarnpkg.com/@internxt/sdk/-/sdk-1.15.0.tgz#6ba80c0461881e694b30b1dcac71c81dad7fcb6b" + integrity sha512-tA+um5Ujk4Nv9fRrXd+Z+ZpdMifSioCAPBhegDzivkX/xYzyPCszeNsYCtVFoN95t3n6RYpmvL0D47j0KEGtCw== dependencies: axios "1.13.5" + internxt-crypto "0.0.13" uuid "13.0.0" -"@isaacs/balanced-match@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz#3081dadbc3460661b751e7591d7faea5df39dd29" - integrity sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ== - -"@isaacs/brace-expansion@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz#4b3dabab7d8e75a429414a96bd67bf4c1d13e0f3" - integrity sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA== +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== dependencies: - "@isaacs/balanced-match" "^4.0.1" + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" "@istanbuljs/schema@^0.1.3": version "0.1.3" @@ -1681,12 +1619,19 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" +"@noble/curves@~2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-2.0.1.tgz#64ba8bd5e8564a02942655602515646df1cdb3ad" + integrity sha512-vs1Az2OOTBiP4q0pwjW5aF0xp9n4MxVrmkFBxc6EKZc6ddYx5gaZiAsZoq0uRRXWbi3AT/sBqn05eRPtn1JCPw== + dependencies: + "@noble/hashes" "2.0.1" + "@noble/hashes@1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== -"@noble/hashes@2.0.1": +"@noble/hashes@2.0.1", "@noble/hashes@^2.0.1", "@noble/hashes@~2.0.0": version "2.0.1" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-2.0.1.tgz#fc1a928061d1232b0a52bb754393c37a5216c89e" integrity sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw== @@ -1696,6 +1641,14 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== +"@noble/post-quantum@^0.5.2": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@noble/post-quantum/-/post-quantum-0.5.4.tgz#bd1095647c61e4c8fd317fa8a3977db8cd28a4b9" + integrity sha512-leww0zzIirrvwaYMPI9fj6aRIlA/c6Y0/lifQQ1YOOyHEr0MNH3yYpjXeiVG+tWdPps4XxGclFWX2INPO3Yo5w== + dependencies: + "@noble/curves" "~2.0.0" + "@noble/hashes" "~2.0.0" + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1717,7 +1670,31 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@oclif/core@4.8.0", "@oclif/core@^4", "@oclif/core@^4.8.0": +"@oclif/core@4.8.1": + version "4.8.1" + resolved "https://registry.yarnpkg.com/@oclif/core/-/core-4.8.1.tgz#84def567778d3271d5c84d9cd6fe0a582e56fded" + integrity sha512-07mq0vKCWNsB85ZHeBMlTAiO0KLFqHyAeRK3bD2K8CI1tX3tiwkWw1lZQZkiw8MUBrhxdROhMkYMY4Q0l7JHqA== + dependencies: + ansi-escapes "^4.3.2" + ansis "^3.17.0" + clean-stack "^3.0.1" + cli-spinners "^2.9.2" + debug "^4.4.3" + ejs "^3.1.10" + get-package-type "^0.1.0" + indent-string "^4.0.0" + is-wsl "^2.2.0" + lilconfig "^3.1.3" + minimatch "^10.2.1" + semver "^7.7.3" + string-width "^4.2.3" + supports-color "^8" + tinyglobby "^0.2.14" + widest-line "^3.1.0" + wordwrap "^1.0.0" + wrap-ansi "^7.0.0" + +"@oclif/core@^4", "@oclif/core@^4.8.0": version "4.8.0" resolved "https://registry.yarnpkg.com/@oclif/core/-/core-4.8.0.tgz#bde8fad00019c8c0a8e27787b4b42c4670842785" integrity sha512-jteNUQKgJHLHFbbz806aGZqf+RJJ7t4gwF4MYa8fCwCxQ8/klJNWc0MvaJiBebk7Mc+J39mdlsB4XraaCKznFw== @@ -1908,6 +1885,11 @@ tslib "^2.8.1" tsyringe "^4.10.0" +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + "@pm2/agent@~2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@pm2/agent/-/agent-2.1.1.tgz#b74dc0cc97e59827307fd6b9a4ebb5aeb40473fb" @@ -2089,164 +2071,177 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.50.1.tgz#13f758c97b9fbbac56b6928547a3ff384e7cfb3e" integrity sha512-StxAO/8ts62KZVRAm4JZYq9+NqNsV7RvimNK+YM7ry//zebEH6meuugqW/P5OFUCjyQgui+9fUxT6d5NShvMvA== +"@scure/base@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-2.0.0.tgz#ba6371fddf92c2727e88ad6ab485db6e624f9a98" + integrity sha512-3E1kpuZginKkek01ovG8krQ0Z44E3DHPjc5S2rjJw9lZn3KSQOs8S7wqikF/AH7iRanHypj85uGyxk0XAyC37w== + +"@scure/bip39@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-2.0.1.tgz#47a6dc15e04faf200041239d46ae3bb7c3c96add" + integrity sha512-PsxdFj/d2AcJcZDX1FXN3dDgitDDTmwf78rKZq1a6c1P1Nan1X/Sxc7667zU3U+AN60g7SxxP0YCVw2H/hBycg== + dependencies: + "@noble/hashes" "2.0.1" + "@scure/base" "2.0.0" + "@sindresorhus/is@^5.2.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.6.0.tgz#41dd6093d34652cddb5d5bdeee04eafc33826668" integrity sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g== -"@smithy/abort-controller@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-4.2.8.tgz#3bfd7a51acce88eaec9a65c3382542be9f3a053a" - integrity sha512-peuVfkYHAmS5ybKxWcfraK7WBBP0J+rkfUcbHJJKQ4ir3UAUNQI+Y4Vt/PqSzGqgloJ5O1dk7+WzNL8wcCSXbw== +"@smithy/abort-controller@^4.2.10": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-4.2.10.tgz#bd688ed62cbd5c85cc933cd6c60c8ef05fb2e5ee" + integrity sha512-qocxM/X4XGATqQtUkbE9SPUB6wekBi+FyJOMbPj0AhvyvFGYEmOlz6VB22iMePCQsFmMIvFSeViDvA7mZJG47g== dependencies: - "@smithy/types" "^4.12.0" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/chunked-blob-reader-native@^4.2.1": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.2.1.tgz#380266951d746b522b4ab2b16bfea6b451147b41" - integrity sha512-lX9Ay+6LisTfpLid2zZtIhSEjHMZoAR5hHCR4H7tBz/Zkfr5ea8RcQ7Tk4mi0P76p4cN+Btz16Ffno7YHpKXnQ== +"@smithy/chunked-blob-reader-native@^4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.2.2.tgz#9fcc884dfd6a041b8f9aa1e0aa14b5bfb4e85f16" + integrity sha512-QzzYIlf4yg0w5TQaC9VId3B3ugSk1MI/wb7tgcHtd7CBV9gNRKZrhc2EPSxSZuDy10zUZ0lomNMgkc6/VVe8xg== dependencies: - "@smithy/util-base64" "^4.3.0" + "@smithy/util-base64" "^4.3.1" tslib "^2.6.2" -"@smithy/chunked-blob-reader@^5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader/-/chunked-blob-reader-5.2.0.tgz#776fec5eaa5ab5fa70d0d0174b7402420b24559c" - integrity sha512-WmU0TnhEAJLWvfSeMxBNe5xtbselEO8+4wG0NtZeL8oR21WgH1xiO37El+/Y+H/Ie4SCwBy3MxYWmOYaGgZueA== +"@smithy/chunked-blob-reader@^5.2.1": + version "5.2.1" + resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader/-/chunked-blob-reader-5.2.1.tgz#fda474588f3e86a918335791dd5e485e4b9ab19d" + integrity sha512-y5d4xRiD6TzeP5BWlb+Ig/VFqF+t9oANNhGeMqyzU7obw7FYgTgVi50i5JqBTeKp+TABeDIeeXFZdz65RipNtA== dependencies: tslib "^2.6.2" -"@smithy/config-resolver@^4.4.6": - version "4.4.6" - resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-4.4.6.tgz#bd7f65b3da93f37f1c97a399ade0124635c02297" - integrity sha512-qJpzYC64kaj3S0fueiu3kXm8xPrR3PcXDPEgnaNMRn0EjNSZFoFjvbUp0YUDsRhN1CB90EnHJtbxWKevnH99UQ== +"@smithy/config-resolver@^4.4.7", "@smithy/config-resolver@^4.4.9": + version "4.4.9" + resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-4.4.9.tgz#a7398dd507153859a09a64dda52f4cac9279a7af" + integrity sha512-ejQvXqlcU30h7liR9fXtj7PIAau1t/sFbJpgWPfiYDs7zd16jpH0IsSXKcba2jF6ChTXvIjACs27kNMc5xxE2Q== dependencies: - "@smithy/node-config-provider" "^4.3.8" - "@smithy/types" "^4.12.0" - "@smithy/util-config-provider" "^4.2.0" - "@smithy/util-endpoints" "^3.2.8" - "@smithy/util-middleware" "^4.2.8" + "@smithy/node-config-provider" "^4.3.10" + "@smithy/types" "^4.13.0" + "@smithy/util-config-provider" "^4.2.1" + "@smithy/util-endpoints" "^3.3.1" + "@smithy/util-middleware" "^4.2.10" tslib "^2.6.2" -"@smithy/core@^3.23.0": - version "3.23.0" - resolved "https://registry.yarnpkg.com/@smithy/core/-/core-3.23.0.tgz#64dca2825753316ace7b8342cb96c9dfc5de4e2a" - integrity sha512-Yq4UPVoQICM9zHnByLmG8632t2M0+yap4T7ANVw482J0W7HW0pOuxwVmeOwzJqX2Q89fkXz0Vybz55Wj2Xzrsg== - dependencies: - "@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.8" - "@smithy/util-stream" "^4.5.12" - "@smithy/util-utf8" "^4.2.0" - "@smithy/uuid" "^1.1.0" +"@smithy/core@^3.23.4", "@smithy/core@^3.23.6": + version "3.23.6" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-3.23.6.tgz#90de5fe442a9f529bd893b20ba0d8a8373a99ad3" + integrity sha512-4xE+0L2NrsFKpEVFlFELkIHQddBvMbQ41LRIP74dGCXnY1zQ9DgksrBcRBDJT+iOzGy4VEJIeU3hkUK5mn06kg== + dependencies: + "@smithy/middleware-serde" "^4.2.11" + "@smithy/protocol-http" "^5.3.10" + "@smithy/types" "^4.13.0" + "@smithy/util-base64" "^4.3.1" + "@smithy/util-body-length-browser" "^4.2.1" + "@smithy/util-middleware" "^4.2.10" + "@smithy/util-stream" "^4.5.15" + "@smithy/util-utf8" "^4.2.1" + "@smithy/uuid" "^1.1.1" tslib "^2.6.2" -"@smithy/credential-provider-imds@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.8.tgz#b2f4bf759ab1c35c0dd00fa3470263c749ebf60f" - integrity sha512-FNT0xHS1c/CPN8upqbMFP83+ul5YgdisfCfkZ86Jh2NSmnqw/AJ6x5pEogVCTVvSm7j9MopRU89bmDelxuDMYw== +"@smithy/credential-provider-imds@^4.2.10", "@smithy/credential-provider-imds@^4.2.9": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.10.tgz#cae502b28257a110fc472a1531c19fbc4ba07037" + integrity sha512-3bsMLJJLTZGZqVGGeBVFfLzuRulVsGTj12BzRKODTHqUABpIr0jMN1vN3+u6r2OfyhAQ2pXaMZWX/swBK5I6PQ== dependencies: - "@smithy/node-config-provider" "^4.3.8" - "@smithy/property-provider" "^4.2.8" - "@smithy/types" "^4.12.0" - "@smithy/url-parser" "^4.2.8" + "@smithy/node-config-provider" "^4.3.10" + "@smithy/property-provider" "^4.2.10" + "@smithy/types" "^4.13.0" + "@smithy/url-parser" "^4.2.10" tslib "^2.6.2" -"@smithy/eventstream-codec@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-4.2.8.tgz#2f431f4bac22e40aa6565189ea350c6fcb5efafd" - integrity sha512-jS/O5Q14UsufqoGhov7dHLOPCzkYJl9QDzusI2Psh4wyYx/izhzvX9P4D69aTxcdfVhEPhjK+wYyn/PzLjKbbw== +"@smithy/eventstream-codec@^4.2.10": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-4.2.10.tgz#59dd8f5482248fcb7eb855ee26c4dde3f4e4e688" + integrity sha512-A4ynrsFFfSXUHicfTcRehytppFBcY3HQxEGYiyGktPIOye3Ot7fxpiy4VR42WmtGI4Wfo6OXt/c1Ky1nUFxYYQ== dependencies: "@aws-crypto/crc32" "5.2.0" - "@smithy/types" "^4.12.0" - "@smithy/util-hex-encoding" "^4.2.0" + "@smithy/types" "^4.13.0" + "@smithy/util-hex-encoding" "^4.2.1" tslib "^2.6.2" -"@smithy/eventstream-serde-browser@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.8.tgz#04e2e1fad18e286d5595fbc0bff22e71251fca38" - integrity sha512-MTfQT/CRQz5g24ayXdjg53V0mhucZth4PESoA5IhvaWVDTOQLfo8qI9vzqHcPsdd2v6sqfTYqF5L/l+pea5Uyw== +"@smithy/eventstream-serde-browser@^4.2.9": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.10.tgz#4e81f894b1e00527bd30bf37824d1196abe3c8ff" + integrity sha512-0xupsu9yj9oDVuQ50YCTS9nuSYhGlrwqdaKQel9y2Fz7LU9fNErVlw9N0o4pm4qqvWEGbSTI4HKc6XJfB30MVw== dependencies: - "@smithy/eventstream-serde-universal" "^4.2.8" - "@smithy/types" "^4.12.0" + "@smithy/eventstream-serde-universal" "^4.2.10" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/eventstream-serde-config-resolver@^4.3.8": - version "4.3.8" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.8.tgz#b913d23834c6ebf1646164893e1bec89dffe4f3b" - integrity sha512-ah12+luBiDGzBruhu3efNy1IlbwSEdNiw8fOZksoKoWW1ZHvO/04MQsdnws/9Aj+5b0YXSSN2JXKy/ClIsW8MQ== +"@smithy/eventstream-serde-config-resolver@^4.3.9": + version "4.3.10" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.10.tgz#e71d8614178a2111f0a7fae8a3b8a88859cfb684" + integrity sha512-8kn6sinrduk0yaYHMJDsNuiFpXwQwibR7n/4CDUqn4UgaG+SeBHu5jHGFdU9BLFAM7Q4/gvr9RYxBHz9/jKrhA== dependencies: - "@smithy/types" "^4.12.0" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/eventstream-serde-node@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.8.tgz#5f2dfa2cbb30bf7564c8d8d82a9832e9313f5243" - integrity sha512-cYpCpp29z6EJHa5T9WL0KAlq3SOKUQkcgSoeRfRVwjGgSFl7Uh32eYGt7IDYCX20skiEdRffyDpvF2efEZPC0A== +"@smithy/eventstream-serde-node@^4.2.9": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.10.tgz#10164d84f20f915b435e9ff55ac381e01d1d0669" + integrity sha512-uUrxPGgIffnYfvIOUmBM5i+USdEBRTdh7mLPttjphgtooxQ8CtdO1p6K5+Q4BBAZvKlvtJ9jWyrWpBJYzBKsyQ== dependencies: - "@smithy/eventstream-serde-universal" "^4.2.8" - "@smithy/types" "^4.12.0" + "@smithy/eventstream-serde-universal" "^4.2.10" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/eventstream-serde-universal@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.8.tgz#a62b389941c28a8c3ab44a0c8ba595447e0258a7" - integrity sha512-iJ6YNJd0bntJYnX6s52NC4WFYcZeKrPUr1Kmmr5AwZcwCSzVpS7oavAmxMR7pMq7V+D1G4s9F5NJK0xwOsKAlQ== +"@smithy/eventstream-serde-universal@^4.2.10": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.10.tgz#08ccc7a544289a3fe0b2b7f588dac56943ef3fa2" + integrity sha512-aArqzOEvcs2dK+xQVCgLbpJQGfZihw8SD4ymhkwNTtwKbnrzdhJsFDKuMQnam2kF69WzgJYOU5eJlCx+CA32bw== dependencies: - "@smithy/eventstream-codec" "^4.2.8" - "@smithy/types" "^4.12.0" + "@smithy/eventstream-codec" "^4.2.10" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/fetch-http-handler@^5.3.9": - version "5.3.9" - resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.9.tgz#edfc9e90e0c7538c81e22e748d62c0066cc91d58" - integrity sha512-I4UhmcTYXBrct03rwzQX1Y/iqQlzVQaPxWjCjula++5EmWq9YGBrx6bbGqluGc1f0XEfhSkiY4jhLgbsJUMKRA== +"@smithy/fetch-http-handler@^5.3.10", "@smithy/fetch-http-handler@^5.3.11": + version "5.3.11" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.11.tgz#2c2f65df2bdbf4989c13a6558e3d43855002ba5d" + integrity sha512-wbTRjOxdFuyEg0CpumjZO0hkUl+fetJFqxNROepuLIoijQh51aMBmzFLfoQdwRjxsuuS2jizzIUTjPWgd8pd7g== dependencies: - "@smithy/protocol-http" "^5.3.8" - "@smithy/querystring-builder" "^4.2.8" - "@smithy/types" "^4.12.0" - "@smithy/util-base64" "^4.3.0" + "@smithy/protocol-http" "^5.3.10" + "@smithy/querystring-builder" "^4.2.10" + "@smithy/types" "^4.13.0" + "@smithy/util-base64" "^4.3.1" tslib "^2.6.2" -"@smithy/hash-blob-browser@^4.2.9": - version "4.2.9" - resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-4.2.9.tgz#4f8e19b12b5a1000b7292b30f5ee237d32216af3" - integrity sha512-m80d/iicI7DlBDxyQP6Th7BW/ejDGiF0bgI754+tiwK0lgMkcaIBgvwwVc7OFbY4eUzpGtnig52MhPAEJ7iNYg== +"@smithy/hash-blob-browser@^4.2.10": + version "4.2.11" + resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-4.2.11.tgz#9c2832ebaf98006365f3dacb683f3f110e47936b" + integrity sha512-DrcAx3PM6AEbWZxsKl6CWAGnVwiz28Wp1ZhNu+Hi4uI/6C1PIZBIaPM2VoqBDAsOWbM6ZVzOEQMxFLLdmb4eBQ== dependencies: - "@smithy/chunked-blob-reader" "^5.2.0" - "@smithy/chunked-blob-reader-native" "^4.2.1" - "@smithy/types" "^4.12.0" + "@smithy/chunked-blob-reader" "^5.2.1" + "@smithy/chunked-blob-reader-native" "^4.2.2" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/hash-node@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-4.2.8.tgz#c21eb055041716cd492dda3a109852a94b6d47bb" - integrity sha512-7ZIlPbmaDGxVoxErDZnuFG18WekhbA/g2/i97wGj+wUBeS6pcUeAym8u4BXh/75RXWhgIJhyC11hBzig6MljwA== +"@smithy/hash-node@^4.2.9": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-4.2.10.tgz#5c23bd94e61a173a90d765815bbc287cf57409ce" + integrity sha512-1VzIOI5CcsvMDvP3iv1vG/RfLJVVVc67dCRyLSB2Hn9SWCZrDO3zvcIzj3BfEtqRW5kcMg5KAeVf1K3dR6nD3w== dependencies: - "@smithy/types" "^4.12.0" - "@smithy/util-buffer-from" "^4.2.0" - "@smithy/util-utf8" "^4.2.0" + "@smithy/types" "^4.13.0" + "@smithy/util-buffer-from" "^4.2.1" + "@smithy/util-utf8" "^4.2.1" tslib "^2.6.2" -"@smithy/hash-stream-node@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-4.2.8.tgz#d541a31c714ac9c85ae9fec91559e81286707ddb" - integrity sha512-v0FLTXgHrTeheYZFGhR+ehX5qUm4IQsjAiL9qehad2cyjMWcN2QG6/4mSwbSgEQzI7jwfoXj7z4fxZUx/Mhj2w== +"@smithy/hash-stream-node@^4.2.9": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-4.2.10.tgz#ee5f26ba61a54ba402a6f00a13c418d38005e088" + integrity sha512-w78xsYrOlwXKwN5tv1GnKIRbHb1HygSpeZMP6xDxCPGf1U/xDHjCpJu64c5T35UKyEPwa0bPeIcvU69VY3khUA== dependencies: - "@smithy/types" "^4.12.0" - "@smithy/util-utf8" "^4.2.0" + "@smithy/types" "^4.13.0" + "@smithy/util-utf8" "^4.2.1" tslib "^2.6.2" -"@smithy/invalid-dependency@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-4.2.8.tgz#c578bc6d5540c877aaed5034b986b5f6bd896451" - integrity sha512-N9iozRybwAQ2dn9Fot9kI6/w9vos2oTXLhtK7ovGqwZjlOcxu6XhPlpLpC+INsxktqHinn5gS2DXDjDF2kG5sQ== +"@smithy/invalid-dependency@^4.2.9": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-4.2.10.tgz#7efb88b292f14843279dd774acf8a7d322f5a371" + integrity sha512-vy9KPNSFUU0ajFYk0sDZIYiUlAWGEAhRfehIr5ZkdFrRFTAuXEPUd41USuqHU6vvLX4r6Q9X7MKBco5+Il0Org== dependencies: - "@smithy/types" "^4.12.0" + "@smithy/types" "^4.13.0" tslib "^2.6.2" "@smithy/is-array-buffer@^2.2.0": @@ -2256,177 +2251,177 @@ dependencies: tslib "^2.6.2" -"@smithy/is-array-buffer@^4.2.0": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-4.2.0.tgz#b0f874c43887d3ad44f472a0f3f961bcce0550c2" - integrity sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ== +"@smithy/is-array-buffer@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-4.2.1.tgz#10f71c410796cf108c65bb0204a98c15d0131af3" + integrity sha512-Yfu664Qbf1B4IYIsYgKoABt010daZjkaCRvdU/sPnZG6TtHOB0md0RjNdLGzxe5UIdn9js4ftPICzmkRa9RJ4Q== dependencies: tslib "^2.6.2" -"@smithy/md5-js@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-4.2.8.tgz#d354dbf9aea7a580be97598a581e35eef324ce22" - integrity sha512-oGMaLj4tVZzLi3itBa9TCswgMBr7k9b+qKYowQ6x1rTyTuO1IU2YHdHUa+891OsOH+wCsH7aTPRsTJO3RMQmjQ== +"@smithy/md5-js@^4.2.9": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-4.2.10.tgz#2071980ff22802ca8398232075357c0d1b5b746a" + integrity sha512-Op+Dh6dPLWTjWITChFayDllIaCXRofOed8ecpggTC5fkh8yXes0vAEX7gRUfjGK+TlyxoCAA05gHbZW/zB9JwQ== dependencies: - "@smithy/types" "^4.12.0" - "@smithy/util-utf8" "^4.2.0" + "@smithy/types" "^4.13.0" + "@smithy/util-utf8" "^4.2.1" tslib "^2.6.2" -"@smithy/middleware-content-length@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-4.2.8.tgz#82c1df578fa70fe5800cf305b8788b9d2836a3e4" - integrity sha512-RO0jeoaYAB1qBRhfVyq0pMgBoUK34YEJxVxyjOWYZiOKOq2yMZ4MnVXMZCUDenpozHue207+9P5ilTV1zeda0A== +"@smithy/middleware-content-length@^4.2.9": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-4.2.10.tgz#969af8111299d2d32f6de9bac4ca8622616fb4a3" + integrity sha512-TQZ9kX5c6XbjhaEBpvhSvMEZ0klBs1CFtOdPFwATZSbC9UeQfKHPLPN9Y+I6wZGMOavlYTOlHEPDrt42PMSH9w== dependencies: - "@smithy/protocol-http" "^5.3.8" - "@smithy/types" "^4.12.0" + "@smithy/protocol-http" "^5.3.10" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/middleware-endpoint@^4.4.14": - version "4.4.14" - resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.14.tgz#df8aca71af70366f39305eeaf18ffd650f764219" - integrity sha512-FUFNE5KVeaY6U/GL0nzAAHkaCHzXLZcY1EhtQnsAqhD8Du13oPKtMB9/0WK4/LK6a/T5OZ24wPoSShff5iI6Ag== - dependencies: - "@smithy/core" "^3.23.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" +"@smithy/middleware-endpoint@^4.4.18", "@smithy/middleware-endpoint@^4.4.20": + version "4.4.20" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.20.tgz#dea33d0d391a4a8095ab16cf57c8c6dc482f5123" + integrity sha512-9W6Np4ceBP3XCYAGLoMCmn8t2RRVzuD1ndWPLBbv7H9CrwM9Bprf6Up6BM9ZA/3alodg0b7Kf6ftBK9R1N04vw== + dependencies: + "@smithy/core" "^3.23.6" + "@smithy/middleware-serde" "^4.2.11" + "@smithy/node-config-provider" "^4.3.10" + "@smithy/shared-ini-file-loader" "^4.4.5" + "@smithy/types" "^4.13.0" + "@smithy/url-parser" "^4.2.10" + "@smithy/util-middleware" "^4.2.10" tslib "^2.6.2" -"@smithy/middleware-retry@^4.4.31": - version "4.4.31" - resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-4.4.31.tgz#1dbdbaedbd62f4900e3520f65599810123c0c461" - integrity sha512-RXBzLpMkIrxBPe4C8OmEOHvS8aH9RUuCOH++Acb5jZDEblxDjyg6un72X9IcbrGTJoiUwmI7hLypNfuDACypbg== - dependencies: - "@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.3" - "@smithy/types" "^4.12.0" - "@smithy/util-middleware" "^4.2.8" - "@smithy/util-retry" "^4.2.8" - "@smithy/uuid" "^1.1.0" +"@smithy/middleware-retry@^4.4.35": + version "4.4.37" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-4.4.37.tgz#bda495c2aa82c61d409e4dad374047b61511067a" + integrity sha512-/1psZZllBBSQ7+qo5+hhLz7AEPGLx3Z0+e3ramMBEuPK2PfvLK4SrncDB9VegX5mBn+oP/UTDrM6IHrFjvX1ZA== + dependencies: + "@smithy/node-config-provider" "^4.3.10" + "@smithy/protocol-http" "^5.3.10" + "@smithy/service-error-classification" "^4.2.10" + "@smithy/smithy-client" "^4.12.0" + "@smithy/types" "^4.13.0" + "@smithy/util-middleware" "^4.2.10" + "@smithy/util-retry" "^4.2.10" + "@smithy/uuid" "^1.1.1" tslib "^2.6.2" -"@smithy/middleware-serde@^4.2.9": - version "4.2.9" - resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-4.2.9.tgz#fd9d9b02b265aef67c9a30f55c2a5038fc9ca791" - integrity sha512-eMNiej0u/snzDvlqRGSN3Vl0ESn3838+nKyVfF2FKNXFbi4SERYT6PR392D39iczngbqqGG0Jl1DlCnp7tBbXQ== +"@smithy/middleware-serde@^4.2.10", "@smithy/middleware-serde@^4.2.11": + version "4.2.11" + resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-4.2.11.tgz#a60b5b62cf92888e6b3de22d956bdda29263ef45" + integrity sha512-STQdONGPwbbC7cusL60s7vOa6He6A9w2jWhoapL0mgVjmR19pr26slV+yoSP76SIssMTX/95e5nOZ6UQv6jolg== dependencies: - "@smithy/protocol-http" "^5.3.8" - "@smithy/types" "^4.12.0" + "@smithy/protocol-http" "^5.3.10" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/middleware-stack@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-4.2.8.tgz#4fa9cfaaa05f664c9bb15d45608f3cb4f6da2b76" - integrity sha512-w6LCfOviTYQjBctOKSwy6A8FIkQy7ICvglrZFl6Bw4FmcQ1Z420fUtIhxaUZZshRe0VCq4kvDiPiXrPZAe8oRA== +"@smithy/middleware-stack@^4.2.10", "@smithy/middleware-stack@^4.2.9": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-4.2.10.tgz#411276f45b78ed4d7d5e3cb2c4136142f456c907" + integrity sha512-pmts/WovNcE/tlyHa8z/groPeOtqtEpp61q3W0nW1nDJuMq/x+hWa/OVQBtgU0tBqupeXq0VBOLA4UZwE8I0YA== dependencies: - "@smithy/types" "^4.12.0" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/node-config-provider@^4.3.8": - version "4.3.8" - resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-4.3.8.tgz#85a0683448262b2eb822f64c14278d4887526377" - integrity sha512-aFP1ai4lrbVlWjfpAfRSL8KFcnJQYfTl5QxLJXY32vghJrDuFyPZ6LtUL+JEGYiFRG1PfPLHLoxj107ulncLIg== +"@smithy/node-config-provider@^4.3.10", "@smithy/node-config-provider@^4.3.9": + version "4.3.10" + resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-4.3.10.tgz#bd537206cc3b6d1905fbc174c95f35897d98819b" + integrity sha512-UALRbJtVX34AdP2VECKVlnNgidLHA2A7YgcJzwSBg1hzmnO/bZBHl/LDQQyYifzUwp1UOODnl9JJ3KNawpUJ9w== dependencies: - "@smithy/property-provider" "^4.2.8" - "@smithy/shared-ini-file-loader" "^4.4.3" - "@smithy/types" "^4.12.0" + "@smithy/property-provider" "^4.2.10" + "@smithy/shared-ini-file-loader" "^4.4.5" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/node-http-handler@^4.4.10": - version "4.4.10" - resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-4.4.10.tgz#4945e2c2e61174ec1471337e3ddd50b8e4921204" - integrity sha512-u4YeUwOWRZaHbWaebvrs3UhwQwj+2VNmcVCwXcYTvPIuVyM7Ex1ftAj+fdbG/P4AkBwLq/+SKn+ydOI4ZJE9PA== +"@smithy/node-http-handler@^4.4.11", "@smithy/node-http-handler@^4.4.12": + version "4.4.12" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-4.4.12.tgz#6202ec0c41236fc7a8302b1e116aa5cd784c1a19" + integrity sha512-zo1+WKJkR9x7ZtMeMDAAsq2PufwiLDmkhcjpWPRRkmeIuOm6nq1qjFICSZbnjBvD09ei8KMo26BWxsu2BUU+5w== dependencies: - "@smithy/abort-controller" "^4.2.8" - "@smithy/protocol-http" "^5.3.8" - "@smithy/querystring-builder" "^4.2.8" - "@smithy/types" "^4.12.0" + "@smithy/abort-controller" "^4.2.10" + "@smithy/protocol-http" "^5.3.10" + "@smithy/querystring-builder" "^4.2.10" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/property-provider@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-4.2.8.tgz#6e37b30923d2d31370c50ce303a4339020031472" - integrity sha512-EtCTbyIveCKeOXDSWSdze3k612yCPq1YbXsbqX3UHhkOSW8zKsM9NOJG5gTIya0vbY2DIaieG8pKo1rITHYL0w== +"@smithy/property-provider@^4.2.10", "@smithy/property-provider@^4.2.9": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-4.2.10.tgz#06dfc15f407d42b8514b363a83504e7008f12344" + integrity sha512-5jm60P0CU7tom0eNrZ7YrkgBaoLFXzmqB0wVS+4uK8PPGmosSrLNf6rRd50UBvukztawZ7zyA8TxlrKpF5z9jw== dependencies: - "@smithy/types" "^4.12.0" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/protocol-http@^5.3.8": - version "5.3.8" - resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-5.3.8.tgz#0938f69a3c3673694c2f489a640fce468ce75006" - integrity sha512-QNINVDhxpZ5QnP3aviNHQFlRogQZDfYlCkQT+7tJnErPQbDhysondEjhikuANxgMsZrkGeiAxXy4jguEGsDrWQ== +"@smithy/protocol-http@^5.3.10", "@smithy/protocol-http@^5.3.9": + version "5.3.10" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-5.3.10.tgz#020a0fa6e47396ebceab01296b76990931a93d5a" + integrity sha512-2NzVWpYY0tRdfeCJLsgrR89KE3NTWT2wGulhNUxYlRmtRmPwLQwKzhrfVaiNlA9ZpJvbW7cjTVChYKgnkqXj1A== dependencies: - "@smithy/types" "^4.12.0" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/querystring-builder@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-4.2.8.tgz#2fa72d29eb1844a6a9933038bbbb14d6fe385e93" - integrity sha512-Xr83r31+DrE8CP3MqPgMJl+pQlLLmOfiEUnoyAlGzzJIrEsbKsPy1hqH0qySaQm4oWrCBlUqRt+idEgunKB+iw== +"@smithy/querystring-builder@^4.2.10": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-4.2.10.tgz#05853f40c19c945784252b22dd6672ec0c2eab1f" + integrity sha512-HeN7kEvuzO2DmAzLukE9UryiUvejD3tMp9a1D1NJETerIfKobBUCLfviP6QEk500166eD2IATaXM59qgUI+YDA== dependencies: - "@smithy/types" "^4.12.0" - "@smithy/util-uri-escape" "^4.2.0" + "@smithy/types" "^4.13.0" + "@smithy/util-uri-escape" "^4.2.1" tslib "^2.6.2" -"@smithy/querystring-parser@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-4.2.8.tgz#aa3f2456180ce70242e89018d0b1ebd4782a6347" - integrity sha512-vUurovluVy50CUlazOiXkPq40KGvGWSdmusa3130MwrR1UNnNgKAlj58wlOe61XSHRpUfIIh6cE0zZ8mzKaDPA== +"@smithy/querystring-parser@^4.2.10": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-4.2.10.tgz#189755d4f99dccb5b48c2cd413aba6baf9e6b636" + integrity sha512-4Mh18J26+ao1oX5wXJfWlTT+Q1OpDR8ssiC9PDOuEgVBGloqg18Fw7h5Ct8DyT9NBYwJgtJ2nLjKKFU6RP1G1Q== dependencies: - "@smithy/types" "^4.12.0" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/service-error-classification@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-4.2.8.tgz#6d89dbad4f4978d7b75a44af8c18c22455a16cdc" - integrity sha512-mZ5xddodpJhEt3RkCjbmUQuXUOaPNTkbMGR0bcS8FE0bJDLMZlhmpgrvPNCYglVw5rsYTpSnv19womw9WWXKQQ== +"@smithy/service-error-classification@^4.2.10": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-4.2.10.tgz#0d142eb71106e1be8a9df691f4bb4b19b7261502" + integrity sha512-0R/+/Il5y8nB/By90o8hy/bWVYptbIfvoTYad0igYQO5RefhNCDmNzqxaMx7K1t/QWo0d6UynqpqN5cCQt1MCg== dependencies: - "@smithy/types" "^4.12.0" + "@smithy/types" "^4.13.0" -"@smithy/shared-ini-file-loader@^4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.4.3.tgz#6054215ecb3a6532b13aa49a9fbda640b63be50e" - integrity sha512-DfQjxXQnzC5UbCUPeC3Ie8u+rIWZTvuDPAGU/BxzrOGhRvgUanaP68kDZA+jaT3ZI+djOf+4dERGlm9mWfFDrg== +"@smithy/shared-ini-file-loader@^4.4.4", "@smithy/shared-ini-file-loader@^4.4.5": + version "4.4.5" + resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.4.5.tgz#84c29da4a1462e7b6ce21b00c49f8789ae804099" + integrity sha512-pHgASxl50rrtOztgQCPmOXFjRW+mCd7ALr/3uXNzRrRoGV5G2+78GOsQ3HlQuBVHCh9o6xqMNvlIKZjWn4Euug== dependencies: - "@smithy/types" "^4.12.0" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/signature-v4@^5.3.8": - version "5.3.8" - resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-5.3.8.tgz#796619b10b7cc9467d0625b0ebd263ae04fdfb76" - integrity sha512-6A4vdGj7qKNRF16UIcO8HhHjKW27thsxYci+5r/uVRkdcBEkOEiY8OMPuydLX4QHSrJqGHPJzPRwwVTqbLZJhg== - dependencies: - "@smithy/is-array-buffer" "^4.2.0" - "@smithy/protocol-http" "^5.3.8" - "@smithy/types" "^4.12.0" - "@smithy/util-hex-encoding" "^4.2.0" - "@smithy/util-middleware" "^4.2.8" - "@smithy/util-uri-escape" "^4.2.0" - "@smithy/util-utf8" "^4.2.0" +"@smithy/signature-v4@^5.3.9": + version "5.3.10" + resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-5.3.10.tgz#9517defc0285b9d50f1c8ad17f6f90e72f8b5976" + integrity sha512-Wab3wW8468WqTKIxI+aZe3JYO52/RYT/8sDOdzkUhjnLakLe9qoQqIcfih/qxcF4qWEFoWBszY0mj5uxffaVXA== + dependencies: + "@smithy/is-array-buffer" "^4.2.1" + "@smithy/protocol-http" "^5.3.10" + "@smithy/types" "^4.13.0" + "@smithy/util-hex-encoding" "^4.2.1" + "@smithy/util-middleware" "^4.2.10" + "@smithy/util-uri-escape" "^4.2.1" + "@smithy/util-utf8" "^4.2.1" tslib "^2.6.2" -"@smithy/smithy-client@^4.11.3": - version "4.11.3" - resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-4.11.3.tgz#94d1083d5bc3b09e510f680ad7f82395765badf3" - integrity sha512-Q7kY5sDau8OoE6Y9zJoRGgje8P4/UY0WzH8R2ok0PDh+iJ+ZnEKowhjEqYafVcubkbYxQVaqwm3iufktzhprGg== - dependencies: - "@smithy/core" "^3.23.0" - "@smithy/middleware-endpoint" "^4.4.14" - "@smithy/middleware-stack" "^4.2.8" - "@smithy/protocol-http" "^5.3.8" - "@smithy/types" "^4.12.0" - "@smithy/util-stream" "^4.5.12" +"@smithy/smithy-client@^4.11.7", "@smithy/smithy-client@^4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-4.12.0.tgz#71f01aeaa089867c31a3d6452349cf4fd4c4a9e5" + integrity sha512-R8bQ9K3lCcXyZmBnQqUZJF4ChZmtWT5NLi6x5kgWx5D+/j0KorXcA0YcFg/X5TOgnTCy1tbKc6z2g2y4amFupQ== + dependencies: + "@smithy/core" "^3.23.6" + "@smithy/middleware-endpoint" "^4.4.20" + "@smithy/middleware-stack" "^4.2.10" + "@smithy/protocol-http" "^5.3.10" + "@smithy/types" "^4.13.0" + "@smithy/util-stream" "^4.5.15" tslib "^2.6.2" -"@smithy/types@^4.12.0": - version "4.12.0" - resolved "https://registry.yarnpkg.com/@smithy/types/-/types-4.12.0.tgz#55d2479080922bda516092dbf31916991d9c6fee" - integrity sha512-9YcuJVTOBDjg9LWo23Qp0lTQ3D7fQsQtwle0jVfpbUHy9qBwCEgKuVH4FqFB3VYu0nwdHKiEMA+oXz7oV8X1kw== +"@smithy/types@^4.12.1", "@smithy/types@^4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-4.13.0.tgz#9787297a07ee72ef74d4f7d93c744d10ed664c21" + integrity sha512-COuLsZILbbQsdrwKQpkkpyep7lCsByxwj7m0Mg5v66/ZTyenlfBc40/QFQ5chO0YN/PNEH1Bi3fGtfXPnYNeDw== dependencies: tslib "^2.6.2" @@ -2437,35 +2432,35 @@ dependencies: tslib "^2.6.2" -"@smithy/url-parser@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-4.2.8.tgz#b44267cd704abe114abcd00580acdd9e4acc1177" - integrity sha512-NQho9U68TGMEU639YkXnVMV3GEFFULmmaWdlu1E9qzyIePOHsoSnagTGSDv1Zi8DCNN6btxOSdgmy5E/hsZwhA== +"@smithy/url-parser@^4.2.10", "@smithy/url-parser@^4.2.9": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-4.2.10.tgz#9c123e4acd5074cc2f4626fc629762d9dbefca18" + integrity sha512-uypjF7fCDsRk26u3qHmFI/ePL7bxxB9vKkE+2WKEciHhz+4QtbzWiHRVNRJwU3cKhrYDYQE3b0MRFtqfLYdA4A== dependencies: - "@smithy/querystring-parser" "^4.2.8" - "@smithy/types" "^4.12.0" + "@smithy/querystring-parser" "^4.2.10" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/util-base64@^4.3.0": - version "4.3.0" - resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-4.3.0.tgz#5e287b528793aa7363877c1a02cd880d2e76241d" - integrity sha512-GkXZ59JfyxsIwNTWFnjmFEI8kZpRNIBfxKjv09+nkAWPt/4aGaEWMM04m4sxgNVWkbt2MdSvE3KF/PfX4nFedQ== +"@smithy/util-base64@^4.3.1": + version "4.3.1" + resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-4.3.1.tgz#d7acc9fd3e84d1cb6c7a09866f2157457f0005c3" + integrity sha512-BKGuawX4Doq/bI/uEmg+Zyc36rJKWuin3py89PquXBIBqmbnJwBBsmKhdHfNEp0+A4TDgLmT/3MSKZ1SxHcR6w== dependencies: - "@smithy/util-buffer-from" "^4.2.0" - "@smithy/util-utf8" "^4.2.0" + "@smithy/util-buffer-from" "^4.2.1" + "@smithy/util-utf8" "^4.2.1" tslib "^2.6.2" -"@smithy/util-body-length-browser@^4.2.0": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-4.2.0.tgz#04e9fc51ee7a3e7f648a4b4bcdf96c350cfa4d61" - integrity sha512-Fkoh/I76szMKJnBXWPdFkQJl2r9SjPt3cMzLdOB6eJ4Pnpas8hVoWPYemX/peO0yrrvldgCUVJqOAjUrOLjbxg== +"@smithy/util-body-length-browser@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-4.2.1.tgz#2a2763c0df831e6071cdc38636c66fdc1cbbdd7e" + integrity sha512-SiJeLiozrAoCrgDBUgsVbmqHmMgg/2bA15AzcbcW+zan7SuyAVHN4xTSbq0GlebAIwlcaX32xacnrG488/J/6g== dependencies: tslib "^2.6.2" -"@smithy/util-body-length-node@^4.2.1": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-4.2.1.tgz#79c8a5d18e010cce6c42d5cbaf6c1958523e6fec" - integrity sha512-h53dz/pISVrVrfxV1iqXlx5pRg3V2YWFcSQyPyXZRrZoZj4R4DeWRDo1a7dd3CPTcFi3kE+98tuNyD2axyZReA== +"@smithy/util-body-length-node@^4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-4.2.2.tgz#8d7a8fa83770a35312e71e711819c9e0f1a384c2" + integrity sha512-4rHqBvxtJEBvsZcFQSPQqXP2b/yy/YlB66KlcEgcH2WNoOKCKB03DSLzXmOsXjbl8dJ4OEYTn31knhdznwk7zw== dependencies: tslib "^2.6.2" @@ -2477,95 +2472,95 @@ "@smithy/is-array-buffer" "^2.2.0" tslib "^2.6.2" -"@smithy/util-buffer-from@^4.2.0": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-4.2.0.tgz#7abd12c4991b546e7cee24d1e8b4bfaa35c68a9d" - integrity sha512-kAY9hTKulTNevM2nlRtxAG2FQ3B2OR6QIrPY3zE5LqJy1oxzmgBGsHLWTcNhWXKchgA0WHW+mZkQrng/pgcCew== +"@smithy/util-buffer-from@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-4.2.1.tgz#50342cde6b29a169abdf392c954472a8ec0f3755" + integrity sha512-/swhmt1qTiVkaejlmMPPDgZhEaWb/HWMGRBheaxwuVkusp/z+ErJyQxO6kaXumOciZSWlmq6Z5mNylCd33X7Ig== dependencies: - "@smithy/is-array-buffer" "^4.2.0" + "@smithy/is-array-buffer" "^4.2.1" tslib "^2.6.2" -"@smithy/util-config-provider@^4.2.0": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-4.2.0.tgz#2e4722937f8feda4dcb09672c59925a4e6286cfc" - integrity sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q== +"@smithy/util-config-provider@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-4.2.1.tgz#1e1fe89f31f0039e3b6f8820606842410c5e1509" + integrity sha512-462id/00U8JWFw6qBuTSWfN5TxOHvDu4WliI97qOIOnuC/g+NDAknTU8eoGXEPlLkRVgWEr03jJBLV4o2FL8+A== dependencies: tslib "^2.6.2" -"@smithy/util-defaults-mode-browser@^4.3.30": - version "4.3.30" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.30.tgz#0494c467897ddf5b09b6f87712992b7b0ebe1cc1" - integrity sha512-cMni0uVU27zxOiU8TuC8pQLC1pYeZ/xEMxvchSK/ILwleRd1ugobOcIRr5vXtcRqKd4aBLWlpeBoDPJJ91LQng== +"@smithy/util-defaults-mode-browser@^4.3.34": + version "4.3.36" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.36.tgz#a5c9f4943a62de4edeead9e52df85e255e82dfd4" + integrity sha512-R0smq7EHQXRVMxkAxtH5akJ/FvgAmNF6bUy/GwY/N20T4GrwjT633NFm0VuRpC+8Bbv8R9A0DoJ9OiZL/M3xew== dependencies: - "@smithy/property-provider" "^4.2.8" - "@smithy/smithy-client" "^4.11.3" - "@smithy/types" "^4.12.0" + "@smithy/property-provider" "^4.2.10" + "@smithy/smithy-client" "^4.12.0" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/util-defaults-mode-node@^4.2.33": - version "4.2.33" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.33.tgz#b5d8b88d398d4556fe3e6299d7a14eac2b892750" - integrity sha512-LEb2aq5F4oZUSzWBG7S53d4UytZSkOEJPXcBq/xbG2/TmK9EW5naUZ8lKu1BEyWMzdHIzEVN16M3k8oxDq+DJA== - dependencies: - "@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.3" - "@smithy/types" "^4.12.0" +"@smithy/util-defaults-mode-node@^4.2.37": + version "4.2.39" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.39.tgz#40c73cddd46c66c49674ee3780cbc1b77dd08f6e" + integrity sha512-otWuoDm35btJV1L8MyHrPl462B07QCdMTktKc7/yM+Psv6KbED/ziXiHnmr7yPHUjfIwE9S8Max0LO24Mo3ZVg== + dependencies: + "@smithy/config-resolver" "^4.4.9" + "@smithy/credential-provider-imds" "^4.2.10" + "@smithy/node-config-provider" "^4.3.10" + "@smithy/property-provider" "^4.2.10" + "@smithy/smithy-client" "^4.12.0" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/util-endpoints@^3.2.8": - version "3.2.8" - resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-3.2.8.tgz#5650bda2adac989ff2e562606088c5de3dcb1b36" - integrity sha512-8JaVTn3pBDkhZgHQ8R0epwWt+BqPSLCjdjXXusK1onwJlRuN69fbvSK66aIKKO7SwVFM6x2J2ox5X8pOaWcUEw== +"@smithy/util-endpoints@^3.2.9", "@smithy/util-endpoints@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-3.3.1.tgz#eeaa1e010c29bdacdd6833e5ef163f868d0f11f6" + integrity sha512-xyctc4klmjmieQiF9I1wssBWleRV0RhJ2DpO8+8yzi2LO1Z+4IWOZNGZGNj4+hq9kdo+nyfrRLmQTzc16Op2Vg== dependencies: - "@smithy/node-config-provider" "^4.3.8" - "@smithy/types" "^4.12.0" + "@smithy/node-config-provider" "^4.3.10" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/util-hex-encoding@^4.2.0": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-4.2.0.tgz#1c22ea3d1e2c3a81ff81c0a4f9c056a175068a7b" - integrity sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw== +"@smithy/util-hex-encoding@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-4.2.1.tgz#cec87c87492c9bac6b70bb749d3948938d40b81b" + integrity sha512-c1hHtkgAWmE35/50gmdKajgGAKV3ePJ7t6UtEmpfCWJmQE9BQAQPz0URUVI89eSkcDqCtzqllxzG28IQoZPvwA== dependencies: tslib "^2.6.2" -"@smithy/util-middleware@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-4.2.8.tgz#1da33f29a74c7ebd9e584813cb7e12881600a80a" - integrity sha512-PMqfeJxLcNPMDgvPbbLl/2Vpin+luxqTGPpW3NAQVLbRrFRzTa4rNAASYeIGjRV9Ytuhzny39SpyU04EQreF+A== +"@smithy/util-middleware@^4.2.10", "@smithy/util-middleware@^4.2.9": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-4.2.10.tgz#41ba94329f010ab34c325ad747480565ade43ad9" + integrity sha512-LxaQIWLp4y0r72eA8mwPNQ9va4h5KeLM0I3M/HV9klmFaY2kN766wf5vsTzmaOpNNb7GgXAd9a25P3h8T49PSA== dependencies: - "@smithy/types" "^4.12.0" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/util-retry@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-4.2.8.tgz#23f3f47baf0681233fd0c37b259e60e268c73b11" - integrity sha512-CfJqwvoRY0kTGe5AkQokpURNCT1u/MkRzMTASWMPPo2hNSnKtF1D45dQl3DE2LKLr4m+PW9mCeBMJr5mCAVThg== +"@smithy/util-retry@^4.2.10", "@smithy/util-retry@^4.2.9": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-4.2.10.tgz#8c9f16520238cdc109eb6fba7d8752e5f28ceb5b" + integrity sha512-HrBzistfpyE5uqTwiyLsFHscgnwB0kgv8vySp7q5kZ0Eltn/tjosaSGGDj/jJ9ys7pWzIP/icE2d+7vMKXLv7A== dependencies: - "@smithy/service-error-classification" "^4.2.8" - "@smithy/types" "^4.12.0" + "@smithy/service-error-classification" "^4.2.10" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/util-stream@^4.5.12": - version "4.5.12" - resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-4.5.12.tgz#f8734a01dce2e51530231e6afc8910397d3e300a" - integrity sha512-D8tgkrmhAX/UNeCZbqbEO3uqyghUnEmmoO9YEvRuwxjlkKKUE7FOgCJnqpTlQPe9MApdWPky58mNQQHbnCzoNg== - dependencies: - "@smithy/fetch-http-handler" "^5.3.9" - "@smithy/node-http-handler" "^4.4.10" - "@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" - "@smithy/util-utf8" "^4.2.0" +"@smithy/util-stream@^4.5.14", "@smithy/util-stream@^4.5.15": + version "4.5.15" + resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-4.5.15.tgz#2a8fa6a519d985fe4e7f1d5724142e14be9c68a3" + integrity sha512-OlOKnaqnkU9X+6wEkd7mN+WB7orPbCVDauXOj22Q7VtiTkvy7ZdSsOg4QiNAZMgI4OkvNf+/VLUC3VXkxuWJZw== + dependencies: + "@smithy/fetch-http-handler" "^5.3.11" + "@smithy/node-http-handler" "^4.4.12" + "@smithy/types" "^4.13.0" + "@smithy/util-base64" "^4.3.1" + "@smithy/util-buffer-from" "^4.2.1" + "@smithy/util-hex-encoding" "^4.2.1" + "@smithy/util-utf8" "^4.2.1" tslib "^2.6.2" -"@smithy/util-uri-escape@^4.2.0": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-4.2.0.tgz#096a4cec537d108ac24a68a9c60bee73fc7e3a9e" - integrity sha512-igZpCKV9+E/Mzrpq6YacdTQ0qTiLm85gD6N/IrmyDvQFA4UnU3d5g3m8tMT/6zG/vVkWSU+VxeUyGonL62DuxA== +"@smithy/util-uri-escape@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-4.2.1.tgz#93327b2f4327cce46d590d095f79482afdea421d" + integrity sha512-YmiUDn2eo2IOiWYYvGQkgX5ZkBSiTQu4FlDo5jNPpAxng2t6Sjb6WutnZV9l6VR4eJul1ABmCrnWBC9hKHQa6Q== dependencies: tslib "^2.6.2" @@ -2577,27 +2572,27 @@ "@smithy/util-buffer-from" "^2.2.0" tslib "^2.6.2" -"@smithy/util-utf8@^4.2.0": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-4.2.0.tgz#8b19d1514f621c44a3a68151f3d43e51087fed9d" - integrity sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw== +"@smithy/util-utf8@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-4.2.1.tgz#ef71fdae30b82ba1b94b005ee42c8e6e6315a52c" + integrity sha512-DSIwNaWtmzrNQHv8g7DBGR9mulSit65KSj5ymGEIAknmIN8IpbZefEep10LaMG/P/xquwbmJ1h9ectz8z6mV6g== dependencies: - "@smithy/util-buffer-from" "^4.2.0" + "@smithy/util-buffer-from" "^4.2.1" tslib "^2.6.2" -"@smithy/util-waiter@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-4.2.8.tgz#35d7bd8b2be7a2ebc12d8c38a0818c501b73e928" - integrity sha512-n+lahlMWk+aejGuax7DPWtqav8HYnWxQwR+LCG2BgCUmaGcTe9qZCFsmw8TMg9iG75HOwhrJCX9TCJRLH+Yzqg== +"@smithy/util-waiter@^4.2.9": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-4.2.10.tgz#8144eca7212651fc878b3358dc233a68d91d7282" + integrity sha512-4eTWph/Lkg1wZEDAyObwme0kmhEb7J/JjibY2znJdrYRgKbKqB7YoEhhJVJ4R1g/SYih4zuwX7LpJaM8RsnTVg== dependencies: - "@smithy/abort-controller" "^4.2.8" - "@smithy/types" "^4.12.0" + "@smithy/abort-controller" "^4.2.10" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/uuid@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@smithy/uuid/-/uuid-1.1.0.tgz#9fd09d3f91375eab94f478858123387df1cda987" - integrity sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw== +"@smithy/uuid@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@smithy/uuid/-/uuid-1.1.1.tgz#cafae26b6a7642752b5d4368e33c5363fe818cf2" + integrity sha512-dSfDCeihDmZlV2oyr0yWPTUfh07suS+R5OB+FZGiv/hHyK3hrFBW5rR1UYjfa57vBsrP9lciFkRPzebaV1Qujw== dependencies: tslib "^2.6.2" @@ -2609,6 +2604,11 @@ color "^5.0.2" text-hex "1.0.x" +"@sqltools/formatter@^1.2.5": + version "1.2.5" + resolved "https://registry.yarnpkg.com/@sqltools/formatter/-/formatter-1.2.5.tgz#3abc203c79b8c3e90fd6c156a0c62d5403520e12" + integrity sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw== + "@standard-schema/spec@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@standard-schema/spec/-/spec-1.0.0.tgz#f193b73dc316c4170f2e82a881da0f550d551b9c" @@ -2756,13 +2756,20 @@ dependencies: "@types/node" "*" -"@types/node@*", "@types/node@25.2.3": +"@types/node@*": version "25.2.3" resolved "https://registry.yarnpkg.com/@types/node/-/node-25.2.3.tgz#9c18245be768bdb4ce631566c7da303a5c99a7f8" integrity sha512-m0jEgYlYz+mDJZ2+F4v8D1AyQb+QzsNqRuI7xg1VQX/KlKS0qT9r1Mo16yo5F/MtifXFgaofIFsdFMox2SxIbQ== dependencies: undici-types "~7.16.0" +"@types/node@25.3.1": + version "25.3.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-25.3.1.tgz#82f3f6e30ac3b48560a092d9224a975b5c24e38d" + integrity sha512-hj9YIJimBCipHVfHKRMnvmHg+wfhKc0o4mTtXh9pKBjC8TLJzz0nzGmLi5UJsYAUgSvXFHgb0V2oY10DUFtImw== + dependencies: + undici-types "~7.18.0" + "@types/node@^22.5.5": version "22.19.1" resolved "https://registry.yarnpkg.com/@types/node/-/node-22.19.1.tgz#1188f1ddc9f46b4cc3aec76749050b4e1f459b7b" @@ -3075,7 +3082,7 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -ansi-styles@^6.2.1: +ansi-styles@^6.1.0, ansi-styles@^6.2.1: version "6.2.3" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== @@ -3090,6 +3097,11 @@ ansis@^3.16.0, ansis@^3.17.0: resolved "https://registry.yarnpkg.com/ansis/-/ansis-3.17.0.tgz#fa8d9c2a93fe7d1177e0c17f9eeb562a58a832d7" integrity sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg== +ansis@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/ansis/-/ansis-4.2.0.tgz#2e6e61c46b11726ac67f78785385618b9e658780" + integrity sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig== + anymatch@~3.1.2: version "3.1.3" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" @@ -3098,6 +3110,11 @@ anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" +app-root-path@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-3.1.0.tgz#5971a2fc12ba170369a7a1ef018c71e6e47c2e86" + integrity sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA== + arg@^4.1.0: version "4.1.3" resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" @@ -3191,16 +3208,7 @@ available-typed-arrays@^1.0.7: dependencies: possible-typed-array-names "^1.0.0" -axios@1.12.2: - version "1.12.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.12.2.tgz#6c307390136cf7a2278d09cec63b136dfc6e6da7" - integrity sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw== - dependencies: - follow-redirects "^1.15.6" - form-data "^4.0.4" - proxy-from-env "^1.1.0" - -axios@1.13.5, axios@^1.12.2: +axios@1.13.5: version "1.13.5" resolved "https://registry.yarnpkg.com/axios/-/axios-1.13.5.tgz#5e464688fa127e11a660a2c49441c009f6567a43" integrity sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q== @@ -3214,16 +3222,41 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +balanced-match@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-4.0.3.tgz#6337a2f23e0604a30481423432f99eac603599f9" + integrity sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + basic-ftp@^5.0.2: version "5.0.5" resolved "https://registry.yarnpkg.com/basic-ftp/-/basic-ftp-5.0.5.tgz#14a474f5fffecca1f4f406f1c26b18f800225ac0" integrity sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg== +better-sqlite3@12.6.2: + version "12.6.2" + resolved "https://registry.yarnpkg.com/better-sqlite3/-/better-sqlite3-12.6.2.tgz#770649f28a62e543a360f3dfa1afe4cc944b1937" + integrity sha512-8VYKM3MjCa9WcaSAI3hzwhmyHVlH8tiGFwf0RlTsZPWJ1I5MkzjiudCo4KC4DxOaL/53A5B1sI/IbldNFDbsKA== + dependencies: + bindings "^1.5.0" + prebuild-install "^7.1.1" + binary-extensions@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + bip39@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.1.0.tgz#c55a418deaf48826a6ceb34ac55b3ee1577e18a3" @@ -3231,6 +3264,15 @@ bip39@3.1.0: dependencies: "@noble/hashes" "^1.2.0" +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + bodec@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/bodec/-/bodec-0.1.0.tgz#bc851555430f23c9f7650a75ef64c6a94c3418cc" @@ -3286,6 +3328,13 @@ brace-expansion@^2.0.1: dependencies: balanced-match "^1.0.0" +brace-expansion@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.2.tgz#b6c16d0791087af6c2bc463f52a8142046c06b6f" + integrity sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw== + dependencies: + balanced-match "^4.0.2" + braces@^3.0.3, braces@~3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" @@ -3315,6 +3364,22 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + bundle-name@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-4.1.0.tgz#f3b96b34160d6431a19d7688135af7cfb8797889" @@ -3472,6 +3537,11 @@ chokidar@3.6.0, chokidar@^3.5.2: optionalDependencies: fsevents "~2.3.2" +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + clean-stack@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-3.0.1.tgz#155bf0b2221bf5f4fba89528d24c5953f17fe3a8" @@ -3541,13 +3611,6 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== -color-convert@^1.9.3: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - color-convert@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" @@ -3562,28 +3625,15 @@ color-convert@^3.0.1: dependencies: color-name "^2.0.0" -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@^1.0.0, color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - color-name@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/color-name/-/color-name-2.0.2.tgz#85054825a23e6d6f81d3503f660c4c4a2a15f04f" integrity sha512-9vEt7gE16EW7Eu7pvZnR0abW9z6ufzhXxGXZEVU9IqPdlsUiMwJeJfRtq0zePUmnbHGT9zajca7mX8zgoayo4A== -color-string@^1.6.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" - integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== color-string@^2.0.0: version "2.1.2" @@ -3592,14 +3642,6 @@ color-string@^2.0.0: dependencies: color-name "^2.0.0" -color@^3.1.3: - version "3.2.1" - resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== - dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" - color@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/color/-/color-5.0.2.tgz#712ec894007ab27b37207732d182784e001b4a3d" @@ -3613,14 +3655,6 @@ colorette@^2.0.20: resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== -colorspace@1.1.x: - version "1.1.4" - resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" - integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== - dependencies: - color "^3.1.3" - text-hex "1.0.x" - combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -3773,7 +3807,7 @@ dayjs@1.11.15: resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.15.tgz#fd7fd2db6fc92f08ffe4adc306756d45db00ada3" integrity sha512-MC+DfnSWiM9APs7fpiurHGCoeIx0Gdl6QZBy+5lu8MbYKN5FZEXqOgrundfibdfhGZ15o9hzmZ2xJjZnbvgKXQ== -dayjs@1.11.19: +dayjs@1.11.19, dayjs@^1.11.19: version "1.11.19" resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.19.tgz#15dc98e854bb43917f12021806af897c58ae2938" integrity sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw== @@ -3816,6 +3850,16 @@ decompress-response@^6.0.0: dependencies: mimic-response "^3.1.0" +dedent@^1.7.0: + version "1.7.1" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.7.1.tgz#364661eea3d73f3faba7089214420ec2f8f13e15" + integrity sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg== + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + deep-is@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" @@ -3893,7 +3937,7 @@ detect-indent@^7.0.1: resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-7.0.1.tgz#cbb060a12842b9c4d333f1cac4aa4da1bb66bc25" integrity sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g== -detect-libc@^2.1.2: +detect-libc@^2.0.0, detect-libc@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.1.2.tgz#689c5dcdc1900ef5583a4cb9f6d7b473742074ad" integrity sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ== @@ -3921,6 +3965,11 @@ dotenv@17.3.1: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-17.3.1.tgz#2706f5b0165e45a1503348187b8468f87fe6aae2" integrity sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA== +dotenv@^16.6.1: + version "16.6.1" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.6.1.tgz#773f0e69527a8315c7285d5ee73c4459d20a8020" + integrity sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow== + dunder-proto@^1.0.0, dunder-proto@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" @@ -3930,6 +3979,11 @@ dunder-proto@^1.0.0, dunder-proto@^1.0.1: es-errors "^1.3.0" gopd "^1.2.0" +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -3957,6 +4011,11 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + enabled@2.0.x: version "2.0.0" resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" @@ -3967,6 +4026,13 @@ encodeurl@^2.0.0: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== +end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.5" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.5.tgz#7344d711dea40e0b74abc2ed49778743ccedb08c" + integrity sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg== + dependencies: + once "^1.4.0" + enquirer@2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" @@ -4280,6 +4346,11 @@ eventemitter3@^5.0.1: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + expect-type@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/expect-type/-/expect-type-1.2.2.tgz#c030a329fb61184126c8447585bc75a7ec6fbff3" @@ -4369,12 +4440,29 @@ fast-levenshtein@^3.0.0: dependencies: fastest-levenshtein "^1.0.7" -fast-xml-parser@5.3.4: - version "5.3.4" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-5.3.4.tgz#06f39aafffdbc97bef0321e626c7ddd06a043ecf" - integrity sha512-EFd6afGmXlCx8H8WTZHhAoDaWaGyuIBoZJ2mknrNxug+aZKjkp0a0dlars9Izl+jF+7Gu1/5f/2h68cQpe0IiA== +fast-string-truncated-width@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/fast-string-truncated-width/-/fast-string-truncated-width-3.0.3.tgz#23afe0da67d752ca0727538f1e6967759728ce49" + integrity sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g== + +fast-string-width@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/fast-string-width/-/fast-string-width-3.0.2.tgz#16dbabb491ce5585b5ecb675b65c165d71688eeb" + integrity sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg== + dependencies: + fast-string-truncated-width "^3.0.2" + +fast-wrap-ansi@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/fast-wrap-ansi/-/fast-wrap-ansi-0.2.0.tgz#c0ae3f3982d061c3d657ec927196fbb47e22fe64" + integrity sha512-rLV8JHxTyhVmFYhBJuMujcrHqOT2cnO5Zxj37qROj23CP39GXubJRBUFF0z8KFK77Uc0SukZUf7JZhsVEQ6n8w== dependencies: - strnum "^2.1.0" + fast-string-width "^3.0.2" + +fast-xml-builder@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-xml-builder/-/fast-xml-builder-1.0.0.tgz#a485d7e8381f1db983cf006f849d1066e2935241" + integrity sha512-fpZuDogrAgnyt9oDDz+5DBz0zgPdPZz6D4IR7iESxRXElrlGTRkHJ9eEt+SACRJwT0FNFrt71DFQIUFBJfX/uQ== fast-xml-parser@5.3.6: version "5.3.6" @@ -4383,6 +4471,14 @@ fast-xml-parser@5.3.6: dependencies: strnum "^2.1.2" +fast-xml-parser@5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-5.4.1.tgz#0c81b8ecfb3021e5ad83aa3df904af19a05bc601" + integrity sha512-BQ30U1mKkvXQXXkAGcuyUA/GA26oEB7NzOtsxCDtyu62sjGw5QraKFhx2Em3WQNjPw9PG6MQ9yuIIgkSDfGu5A== + dependencies: + fast-xml-builder "^1.0.0" + strnum "^2.1.2" + fastest-levenshtein@^1.0.7: version "1.0.16" resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" @@ -4417,6 +4513,11 @@ file-entry-cache@^8.0.0: dependencies: flat-cache "^4.0.0" +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + filelist@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" @@ -4479,12 +4580,17 @@ flatted@^3.2.9: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.3.tgz#67c8fad95454a7c7abebf74bb78ee74a44023358" integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg== +flexsearch@^0.8.205: + version "0.8.212" + resolved "https://registry.yarnpkg.com/flexsearch/-/flexsearch-0.8.212.tgz#b9509af778a991b938292e36fe0809a4ece4b940" + integrity sha512-wSyJr1GUWoOOIISRu+X2IXiOcVfg9qqBRyCPRUdLMIGJqPzMo+jMRlvE83t14v1j0dRMEaBbER/adQjp6Du2pw== + fn.name@1.x.x: version "1.1.0" resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== -follow-redirects@^1.14.0, follow-redirects@^1.15.11, follow-redirects@^1.15.6: +follow-redirects@^1.14.0, follow-redirects@^1.15.11: version "1.15.11" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340" integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ== @@ -4496,12 +4602,20 @@ for-each@^0.3.3, for-each@^0.3.5: dependencies: is-callable "^1.2.7" +foreground-child@^3.1.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" + integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== + dependencies: + cross-spawn "^7.0.6" + signal-exit "^4.0.1" + form-data-encoder@^2.1.2: version "2.1.4" resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5" integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== -form-data@^4.0.4, form-data@^4.0.5: +form-data@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.5.tgz#b49e48858045ff4cbf6b03e1805cebcad3679053" integrity sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w== @@ -4522,6 +4636,11 @@ fresh@^2.0.0: resolved "https://registry.yarnpkg.com/fresh/-/fresh-2.0.0.tgz#8dd7df6a1b3a1b3a5cf186c05a5dd267622635a4" integrity sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A== +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + fs-extra@^8.1: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -4645,6 +4764,11 @@ git-sha1@^0.1.2: resolved "https://registry.yarnpkg.com/git-sha1/-/git-sha1-0.1.2.tgz#599ac192b71875825e13a445f3a6e05118c2f745" integrity sha512-2e/nZezdVlyCopOCYHeW0onkbZg7xP1Ad6pndPy1rCygeRykefUS6r7oA5cJRGEFvseiaz5a/qUHFVX1dd6Isg== +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== + github-slugger@^2: version "2.0.0" resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-2.0.0.tgz#52cf2f9279a21eb6c59dd385b410f0c0adda8f1a" @@ -4664,14 +4788,26 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -glob@^13.0.0: - version "13.0.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-13.0.0.tgz#9d9233a4a274fc28ef7adce5508b7ef6237a1be3" - integrity sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA== +glob@^10.5.0: + version "10.5.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.5.0.tgz#8ec0355919cd3338c28428a23d4f24ecc5fe738c" + integrity sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg== dependencies: - minimatch "^10.1.1" + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" minipass "^7.1.2" - path-scurry "^2.0.0" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" + +glob@^13.0.3: + version "13.0.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-13.0.6.tgz#078666566a425147ccacfbd2e332deb66a2be71d" + integrity sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw== + dependencies: + minimatch "^10.2.2" + minipass "^7.1.3" + path-scurry "^2.0.2" globals@^14.0.0: version "14.0.0" @@ -4769,7 +4905,7 @@ has-tostringtag@^1.0.2: dependencies: has-symbols "^1.0.3" -hash-wasm@4.12.0: +hash-wasm@4.12.0, hash-wasm@^4.12.0: version "4.12.0" resolved "https://registry.yarnpkg.com/hash-wasm/-/hash-wasm-4.12.0.tgz#f9f1a9f9121e027a9acbf6db5d59452ace1ef9bb" integrity sha512-+/2B2rYLb48I/evdOIhP+K/DD2ca2fgBjp6O+GBEnCDk2e4rpeXIK8GvIyRPjTezgmWn9gmKwkQjjx6BtqDHVQ== @@ -4853,7 +4989,7 @@ https-proxy-agent@^7.0.3, https-proxy-agent@^7.0.6: agent-base "^7.1.2" debug "4" -husky@9.1.7: +husky@9.1.7, husky@^9.1.7: version "9.1.7" resolved "https://registry.yarnpkg.com/husky/-/husky-9.1.7.tgz#d46a38035d101b46a70456a850ff4201344c0b2d" integrity sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA== @@ -4879,6 +5015,16 @@ iconv-lite@^0.7.2: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" +idb@^8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/idb/-/idb-8.0.3.tgz#c91e558f15a8d53f1d7f53a094d226fc3ad71fd9" + integrity sha512-LtwtVyVYO5BqRvcsKuB2iUMnHwPVByPCXFXOpuU96IZPPoPN6xjOGxZQ74pgSVVLQWtUOYgyeL4GE98BY5D3wg== + +ieee754@^1.1.13, ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + ignore-by-default@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" @@ -4912,12 +5058,12 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -inherits@^2.0.3, inherits@~2.0.4: +inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -ini@^1.3.4, ini@^1.3.5: +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== @@ -4931,6 +5077,20 @@ internal-slot@^1.1.0: hasown "^2.0.2" side-channel "^1.1.0" +internxt-crypto@0.0.13: + version "0.0.13" + resolved "https://registry.yarnpkg.com/internxt-crypto/-/internxt-crypto-0.0.13.tgz#90c83828a34667ecf6938ad7c22d94c9f0d9808b" + integrity sha512-V8Epf4oFZQZwMyIt8mcw7w36M+tryQ9VcfaiKtcruNW/129bawZnPXEeoOfLvAV+9OYlY2ZAwIYP0EtOD2ec6g== + dependencies: + "@noble/hashes" "^2.0.1" + "@noble/post-quantum" "^0.5.2" + "@scure/bip39" "^2.0.1" + flexsearch "^0.8.205" + hash-wasm "^4.12.0" + husky "^9.1.7" + idb "^8.0.3" + uuid "^13.0.0" + ip-address@^10.0.1: version "10.0.1" resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-10.0.1.tgz#a8180b783ce7788777d796286d61bce4276818ed" @@ -4955,11 +5115,6 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - is-async-function@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.1.1.tgz#3e69018c8e04e73b738793d020bfe884b9fd3523" @@ -5251,6 +5406,15 @@ istanbul-reports@^3.2.0: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + jake@^10.8.5: version "10.9.4" resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.4.tgz#d626da108c63d5cfb00ab5c25fadc7e0084af8e6" @@ -5438,7 +5602,7 @@ lowercase-keys@^3.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== -lru-cache@^10.0.1: +lru-cache@^10.0.1, lru-cache@^10.2.0: version "10.4.3" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== @@ -5562,12 +5726,12 @@ mimic-response@^4.0.0: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-4.0.0.tgz#35468b19e7c75d10f5165ea25e75a5ceea7cf70f" integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== -minimatch@^10.1.1: - version "10.1.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.1.1.tgz#e6e61b9b0c1dcab116b5a7d1458e8b6ae9e73a55" - integrity sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ== +minimatch@^10.2.1, minimatch@^10.2.2: + version "10.2.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.2.tgz#361603ee323cfb83496fea2ae17cc44ea4e1f99f" + integrity sha512-+G4CpNBxa5MprY+04MbgOw1v7So6n5JY166pFi9KfYwT78fxScCeSNQSNzp6dpPSW2rONOps6Ocam1wFhCgoVw== dependencies: - "@isaacs/brace-expansion" "^5.0.0" + brace-expansion "^5.0.2" minimatch@^3.1.2: version "3.1.2" @@ -5590,16 +5754,31 @@ minimatch@^9.0.4, minimatch@^9.0.5: dependencies: brace-expansion "^2.0.1" -minipass@^7.1.2: +minimist@^1.2.0, minimist@^1.2.3: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== +minipass@^7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.3.tgz#79389b4eb1bb2d003a9bba87d492f2bd37bdc65b" + integrity sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A== + mixme@^0.5.1: version "0.5.10" resolved "https://registry.yarnpkg.com/mixme/-/mixme-0.5.10.tgz#d653b2984b75d9018828f1ea333e51717ead5f51" integrity sha512-5H76ANWinB1H3twpJ6JY8uvAtpmFvHNArpilJAjXRKXSDDLPIMoZArw5SH0q9z+lLs8IrMw7Q2VWpWimFKFT1Q== +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + mkdirp@1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" @@ -5645,6 +5824,11 @@ nanoid@^3.3.11: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== +napi-build-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-2.0.0.tgz#13c22c0187fcfccce1461844136372a47ddc027e" + integrity sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -5677,20 +5861,27 @@ no-case@^3.0.4: lower-case "^2.0.2" tslib "^2.0.3" +node-abi@^3.3.0: + version "3.87.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.87.0.tgz#423e28fea5c2f195fddd98acded9938c001ae6dd" + integrity sha512-+CGM1L1CgmtheLcBuleyYOn7NWPVu0s0EJH2C4puxgEZb9h8QpR9G2dBfZJOAUhi7VQxuBPMd0hiISWcTyiYyQ== + dependencies: + semver "^7.3.5" + node-releases@^2.0.19: version "2.0.20" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.20.tgz#e26bb79dbdd1e64a146df389c699014c611cbc27" integrity sha512-7gK6zSXEH6neM212JgfYFXe+GmZQM+fia5SsusuBIUgnPheLFBmIPhtFoAQRj8/7wASYQnbDlHPVwY0BefoFgA== -nodemon@3.1.11: - version "3.1.11" - resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-3.1.11.tgz#04a54d1e794fbec9d8f6ffd8bf1ba9ea93a756ed" - integrity sha512-is96t8F/1//UHAjNPHpbsNY46ELPpftGUoSVNXwUfMk/qdjSylYrWSu1XavVTBOn526kFiOR733ATgNBCQyH0g== +nodemon@3.1.14: + version "3.1.14" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-3.1.14.tgz#8487ca379c515301d221ec007f27f24ecafa2b51" + integrity sha512-jakjZi93UtB3jHMWsXL68FXSAosbLfY0In5gtKq3niLSkrWznrVBzXFNOEMJUfc9+Ke7SHWoAZsiMkNP3vq6Jw== dependencies: chokidar "^3.5.2" debug "^4" ignore-by-default "^1.0.1" - minimatch "^3.1.2" + minimatch "^10.2.1" pstree.remy "^1.1.8" semver "^7.5.3" simple-update-notifier "^2.0.0" @@ -5744,13 +5935,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.77: - version "4.22.77" - resolved "https://registry.yarnpkg.com/oclif/-/oclif-4.22.77.tgz#325621695aa760a7d807fb457fd2ece376c2562d" - integrity sha512-H0iVdnKNItaNV9xU0fDAqEy3o82BRTpps9ePoqVEctrqMCqKnKS5VpNSLZCJN/WiY85fXD496llwGqoizBBVrw== +oclif@4.22.81: + version "4.22.81" + resolved "https://registry.yarnpkg.com/oclif/-/oclif-4.22.81.tgz#5466f3fcde0308094c9aa6e714608c8fb6ebdfd3" + integrity sha512-MO2bupt/3wWYqt05F8ZLwMYKN58YqDfRVdJxAvCdg/wZJg6/sDXVKoMSTSzwqsnIaJGjru2LBNvk8lH+p+1uMQ== dependencies: - "@aws-sdk/client-cloudfront" "^3.985.0" - "@aws-sdk/client-s3" "^3.985.0" + "@aws-sdk/client-cloudfront" "^3.995.0" + "@aws-sdk/client-s3" "^3.995.0" "@inquirer/confirm" "^3.1.22" "@inquirer/input" "^2.2.4" "@inquirer/select" "^2.5.0" @@ -5781,7 +5972,7 @@ on-finished@^2.4.1: dependencies: ee-first "1.1.1" -once@^1.4.0: +once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== @@ -5907,7 +6098,7 @@ pac-resolver@^7.0.1: degenerator "^5.0.0" netmask "^2.0.2" -package-json-from-dist@^1.0.1: +package-json-from-dist@^1.0.0, package-json-from-dist@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== @@ -5976,10 +6167,18 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-scurry@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.0.tgz#9f052289f23ad8bf9397a2a0425e7b8615c58580" - integrity sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg== +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +path-scurry@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.2.tgz#6be0d0ee02a10d9e0de7a98bae65e182c9061f85" + integrity sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg== dependencies: lru-cache "^11.0.0" minipass "^7.1.2" @@ -6139,6 +6338,24 @@ powershell-utils@^0.1.0: resolved "https://registry.yarnpkg.com/powershell-utils/-/powershell-utils-0.1.0.tgz#5a42c9a824fb4f2f251ccb41aaae73314f5d6ac2" integrity sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A== +prebuild-install@^7.1.1: + version "7.1.3" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.3.tgz#d630abad2b147443f20a212917beae68b8092eec" + integrity sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug== + dependencies: + detect-libc "^2.0.0" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^2.0.0" + node-abi "^3.3.0" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^4.0.0" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -6193,6 +6410,14 @@ pstree.remy@^1.1.8: resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== +pump@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.3.tgz#151d979f1a29668dc0025ec589a455b53282268d" + integrity sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + punycode@^2.1.0: version "2.3.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" @@ -6242,6 +6467,16 @@ raw-body@^3.0.1: iconv-lite "~0.7.0" unpipe "~1.0.0" +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + read@^1.0.4: version "1.0.7" resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" @@ -6249,7 +6484,7 @@ read@^1.0.4: dependencies: mute-stream "~0.0.4" -readable-stream@^3.4.0, readable-stream@^3.6.2: +readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.2: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -6371,12 +6606,12 @@ rfdc@^1.4.1: resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== -rimraf@6.1.2: - version "6.1.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-6.1.2.tgz#9a0f3cea2ab853e81291127422116ecf2a86ae89" - integrity sha512-cFCkPslJv7BAXJsYlK1dZsbP8/ZNLkCAQ0bi1hf5EKX2QHegmDFEFA6QhuYJlk7UDdc+02JjO80YSOrWPpw06g== +rimraf@6.1.3: + version "6.1.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-6.1.3.tgz#afbee236b3bd2be331d4e7ce4493bac1718981af" + integrity sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA== dependencies: - glob "^13.0.0" + glob "^13.0.3" package-json-from-dist "^1.0.1" rollup@^4.43.0: @@ -6592,6 +6827,15 @@ setprototypeof@~1.2.0: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== +sha.js@^2.4.12: + version "2.4.12" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.12.tgz#eb8b568bf383dfd1867a32c3f2b74eb52bdbf23f" + integrity sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w== + dependencies: + inherits "^2.0.4" + safe-buffer "^5.2.1" + to-buffer "^1.2.0" + sharp@0.34.5: version "0.34.5" resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.34.5.tgz#b6f148e4b8c61f1797bde11a9d1cfebbae2c57b0" @@ -6693,17 +6937,24 @@ signal-exit@^3.0.3: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -signal-exit@^4.1.0: +signal-exit@^4.0.1, signal-exit@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" + integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== dependencies: - is-arrayish "^0.3.1" + decompress-response "^6.0.0" + once "^1.3.1" + simple-concat "^1.0.0" simple-update-notifier@^2.0.0: version "2.0.0" @@ -6830,6 +7081,16 @@ sprintf-js@1.1.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== +sql-highlight@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/sql-highlight/-/sql-highlight-6.1.0.tgz#e34024b4c6eac2744648771edfe3c1f894153743" + integrity sha512-ed7OK4e9ywpE7pgRMkMQmZDPKSVdm0oX5IEtZiKnFucSF0zu6c80GZBe38UqHuVhTWJ9xsKgSMjCG2bml86KvA== + +sql.js@1.14.0: + version "1.14.0" + resolved "https://registry.yarnpkg.com/sql.js/-/sql.js-1.14.0.tgz#49d4df3b6d311a0da28aab34120d7fe2dcc68f09" + integrity sha512-NXYh+kFqLiYRCNAaHD0PcbjFgXyjuolEKLMk5vRt2DgPENtF1kkNzzMlg42dUk5wIsH8MhUzsRhaUxIisoSlZQ== + stack-trace@0.0.x: version "0.0.10" resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" @@ -6870,6 +7131,15 @@ string-argv@^0.3.2: resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -6879,6 +7149,15 @@ string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2 is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + string-width@^7.0.0: version "7.2.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-7.2.0.tgz#b5bb8e2165ce275d4d43476dd2700ad9091db6dc" @@ -6935,6 +7214,13 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -6942,7 +7228,7 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" -strip-ansi@^7.1.0: +strip-ansi@^7.0.1, strip-ansi@^7.1.0: version "7.1.2" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba" integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== @@ -6954,7 +7240,12 @@ strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -strnum@^2.1.0, strnum@^2.1.2: +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +strnum@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/strnum/-/strnum-2.1.2.tgz#a5e00ba66ab25f9cafa3726b567ce7a49170937a" integrity sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ== @@ -6990,6 +7281,27 @@ systeminformation@^5.7: resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-5.31.1.tgz#5f88aa1db7470af87b6288baf1738603cafd1c4a" integrity sha512-6pRwxoGeV/roJYpsfcP6tN9mep6pPeCtXbUOCdVa0nme05Brwcwdge/fVNhIZn2wuUitAKZm4IYa7QjnRIa9zA== +tar-fs@^2.0.0: + version "2.1.4" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.4.tgz#800824dbf4ef06ded9afea4acafe71c67c76b930" + integrity sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-stream@^2.1.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + text-hex@1.0.x: version "1.0.0" resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" @@ -7023,6 +7335,15 @@ tinyrainbow@^3.0.3: resolved "https://registry.yarnpkg.com/tinyrainbow/-/tinyrainbow-3.0.3.tgz#984a5b1c1b25854a9b6bccbe77964d0593d1ea42" integrity sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q== +to-buffer@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.2.2.tgz#ffe59ef7522ada0a2d1cb5dfe03bb8abc3cdc133" + integrity sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw== + dependencies: + isarray "^2.0.5" + safe-buffer "^5.2.1" + typed-array-buffer "^1.0.3" + to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -7189,6 +7510,27 @@ typed-array-length@^1.0.7: possible-typed-array-names "^1.0.0" reflect.getprototypeof "^1.0.6" +typeorm@0.3.28: + version "0.3.28" + resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.3.28.tgz#a3aabed8ef64287ee68da278d8ffa1d3c6c6b8ca" + integrity sha512-6GH7wXhtfq2D33ZuRXYwIsl/qM5685WZcODZb7noOOcRMteM9KF2x2ap3H0EBjnSV0VO4gNAfJT5Ukp0PkOlvg== + dependencies: + "@sqltools/formatter" "^1.2.5" + ansis "^4.2.0" + app-root-path "^3.1.0" + buffer "^6.0.3" + dayjs "^1.11.19" + debug "^4.4.3" + dedent "^1.7.0" + dotenv "^16.6.1" + glob "^10.5.0" + reflect-metadata "^0.2.2" + sha.js "^2.4.12" + sql-highlight "^6.1.0" + tslib "^2.8.1" + uuid "^11.1.0" + yargs "^17.7.2" + typescript-eslint@^8.40.0: version "8.43.0" resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.43.0.tgz#335ac16a859f385dfb23022e0d8298962364d099" @@ -7229,12 +7571,15 @@ undici-types@~7.16.0: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== -undici@5.29.0: - version "5.29.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.29.0.tgz#419595449ae3f2cdcba3580a2e8903399bd1f5a3" - integrity sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg== - dependencies: - "@fastify/busboy" "^2.0.0" +undici-types@~7.18.0: + version "7.18.2" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.18.2.tgz#29357a89e7b7ca4aef3bf0fd3fd0cd73884229e9" + integrity sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w== + +undici@7.22.0: + version "7.22.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-7.22.0.tgz#7a82590a5908e504a47d85c60b0f89ca14240e60" + integrity sha512-RqslV2Us5BrllB+JeiZnK4peryVTndy9Dnqq62S3yYRRTj0tFQCwEniUy2167skdGOy3vqRzEvl1Dm4sV2ReDg== universalify@^0.1.0: version "0.1.2" @@ -7280,16 +7625,16 @@ util-deprecate@^1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -uuid@11.1.0, uuid@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-11.1.0.tgz#9549028be1753bb934fc96e2bca09bb4105ae912" - integrity sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A== - -uuid@13.0.0: +uuid@13.0.0, uuid@^13.0.0: version "13.0.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-13.0.0.tgz#263dc341b19b4d755eb8fe36b78d95a6b65707e8" integrity sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w== +uuid@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-11.1.0.tgz#9549028be1753bb934fc96e2bca09bb4105ae912" + integrity sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A== + v8-compile-cache-lib@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" @@ -7466,23 +7811,6 @@ winston-transport@^4.9.0: readable-stream "^3.6.2" triple-beam "^1.3.0" -winston@3.17.0: - version "3.17.0" - resolved "https://registry.yarnpkg.com/winston/-/winston-3.17.0.tgz#74b8665ce9b4ea7b29d0922cfccf852a08a11423" - integrity sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw== - dependencies: - "@colors/colors" "^1.6.0" - "@dabh/diagnostics" "^2.0.2" - async "^3.2.3" - is-stream "^2.0.0" - logform "^2.7.0" - one-time "^1.0.0" - readable-stream "^3.4.0" - safe-stable-stringify "^2.3.1" - stack-trace "0.0.x" - triple-beam "^1.3.0" - winston-transport "^4.9.0" - winston@3.19.0: version "3.19.0" resolved "https://registry.yarnpkg.com/winston/-/winston-3.19.0.tgz#cc1d1262f5f45946904085cfffe73efb4b7a581d" @@ -7510,6 +7838,15 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" @@ -7528,7 +7865,16 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^9.0.0, wrap-ansi@^9.0.2: +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrap-ansi@^9.0.0: 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== @@ -7610,7 +7956,7 @@ yargs@^15.1.0: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^17.7.1: +yargs@^17.7.1, yargs@^17.7.2: version "17.7.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==