diff --git a/.cursor/commands/code-review.md b/.cursor/commands/code-review.md new file mode 100644 index 000000000..669fec771 --- /dev/null +++ b/.cursor/commands/code-review.md @@ -0,0 +1,156 @@ +--- +name: code-review +description: Automated PR review using comprehensive checklist tailored for modularized Contentstack CLI +--- + +# Code Review Command + +## Usage Patterns + +### Scope-Based Reviews +- `/code-review` - Review all current changes with full checklist +- `/code-review --scope typescript` - Focus on TypeScript configuration and patterns +- `/code-review --scope testing` - Focus on Mocha/Chai test patterns +- `/code-review --scope oclif` - Focus on command structure and OCLIF patterns +- `/code-review --scope packages` - Focus on package structure and organization + +### Severity Filtering +- `/code-review --severity critical` - Show only critical issues (security, breaking changes) +- `/code-review --severity high` - Show high and critical issues +- `/code-review --severity all` - Show all issues including suggestions + +### Package-Aware Reviews +- `/code-review --package contentstack-import` - Review changes in import package +- `/code-review --package contentstack-export` - Review changes in export package +- `/code-review --package-type plugin` - Review all plugin packages (all 12 packages are plugins) +- `/code-review --package-scope cm` - Review CM (content management) related packages + +### File Type Focus +- `/code-review --files commands` - Review command files only +- `/code-review --files tests` - Review test files only +- `/code-review --files utils` - Review utility files + +## Comprehensive Review Checklist + +### Monorepo Structure Compliance +- **Package organization**: 12 plugin packages under `packages/contentstack-*` +- **pnpm workspace**: Correct `pnpm-workspace.yaml` configuration +- **Build artifacts**: No `lib/` directories committed to version control +- **Dependencies**: Proper use of shared utilities (`@contentstack/cli-command`, `@contentstack/cli-utilities`) +- **Scripts**: Consistent build, test, and lint scripts across packages + +### Package-Specific Structure +- **All packages are plugins**: Each has `oclif.commands` configuration pointing to `./lib/commands` +- **Plugin topics**: All commands under `cm:` topic (content management) +- **Base commands**: Each plugin defines its own `BaseCommand` extending `@contentstack/cli-command` Command +- **Inter-plugin dependencies**: Some plugins depend on others (e.g., import depends on audit) +- **Dependency versions**: Using consistent versions across plugins + +### TypeScript Standards +- **Configuration compliance**: Follows package TypeScript config (`strict: false`, `target: es2017`) +- **Naming conventions**: kebab-case files, PascalCase classes, camelCase functions +- **Import patterns**: ES modules with proper default/named exports +- **Type safety**: No unnecessary `any` types in production code + +### OCLIF Command Patterns +- **Base class usage**: Extends plugin-specific `BaseCommand` or `@contentstack/cli-command` Command +- **Command structure**: Proper `static id`, `static description`, `static examples`, `static flags` +- **Topic organization**: Uses `cm:stacks:*` structure (`cm:stacks:import`, `cm:stacks:export`, `cm:stacks:audit`) +- **Error handling**: Uses `handleAndLogError` from utilities with context +- **Flag validation**: Early validation and user-friendly error messages +- **Service delegation**: Commands are thin, services handle business logic + +### Testing Excellence (Mocha/Chai Stack) +- **Framework compliance**: Uses Mocha + Chai (not Jest) +- **File patterns**: Follows `*.test.ts` naming convention +- **Directory structure**: Proper placement in `test/unit/` +- **Test organization**: Arrange-Act-Assert pattern consistently used +- **Isolation**: Proper setup/teardown with beforeEach/afterEach +- **No real API calls**: All external dependencies properly mocked + +### Error Handling Standards +- **Consistent patterns**: Use `handleAndLogError` from utilities +- **User-friendly messages**: Clear error descriptions for end users +- **Logging**: Proper use of `log.debug` for diagnostic information +- **Status messages**: Use `cliux` for user feedback (success, error, info) + +### Build and Compilation +- **TypeScript compilation**: Clean compilation with no errors +- **OCLIF manifest**: Generated for command discovery +- **README generation**: Commands documented in package README +- **Source maps**: Properly configured for debugging +- **No build artifacts in commit**: `.gitignore` excludes `lib/` directories + +### Testing Coverage +- **Test structure**: Tests in `test/unit/` with descriptive names +- **Command testing**: Uses @oclif/test for command validation +- **Error scenarios**: Tests for both success and failure paths +- **Mocking**: All dependencies properly mocked + +### Package.json Compliance +- **Correct metadata**: name, description, version, author +- **Script definitions**: build, compile, test, lint scripts present +- **Dependencies**: Correct versions of shared packages +- **Main/types**: Properly configured for library packages +- **OCLIF config**: Present for plugin packages + +### Security and Best Practices +- **No secrets**: No API keys or tokens in code or tests +- **Input validation**: Proper validation of user inputs and flags +- **Process management**: Appropriate use of error codes +- **File operations**: Safe handling of file system operations + +### Code Quality +- **Naming consistency**: Follow established conventions +- **Comments**: Only for non-obvious logic (no "narration" comments) +- **Error messages**: Clear, actionable messages for users +- **Module organization**: Proper separation of concerns + +## Review Execution + +### Automated Checks +1. **Lint compliance**: ESLint checks for code style +2. **TypeScript compiler**: Successful compilation to `lib/` directories +3. **Test execution**: All tests pass successfully +4. **Build verification**: Build scripts complete without errors + +### Manual Review Focus Areas +1. **Command usability**: Clear help text and realistic examples +2. **Error handling**: Appropriate error messages and recovery options +3. **Test quality**: Comprehensive test coverage for critical paths +4. **Monorepo consistency**: Consistent patterns across all packages +5. **Flag design**: Intuitive flag names and combinations + +### Common Issues to Flag +- **Inconsistent TypeScript settings**: Mixed strict mode without reason +- **Real API calls in tests**: Unmocked external dependencies +- **Missing error handling**: Commands that fail silently +- **Poor test organization**: Tests without clear Arrange-Act-Assert +- **Build artifacts committed**: `lib/` directories in version control +- **Unclear error messages**: Non-actionable error descriptions +- **Inconsistent flag naming**: Similar flags with different names +- **Missing command examples**: Examples not showing actual usage + +## Repository-Specific Checklist + +### For Modularized CLI +- [ ] Command properly extends `@contentstack/cli-command` Command +- [ ] Flags defined with proper types from `@contentstack/cli-utilities` +- [ ] Error handling uses `handleAndLogError` utility +- [ ] User feedback uses `cliux` utilities +- [ ] Tests use Mocha + Chai pattern with mocked dependencies +- [ ] Package.json has correct scripts (build, compile, test, lint) +- [ ] TypeScript compiles with no errors +- [ ] Tests pass: `pnpm test` +- [ ] No `.only` or `.skip` in test files +- [ ] Build succeeds: `pnpm run build` +- [ ] OCLIF manifest generated successfully + +### Before Merge +- [ ] All review items addressed +- [ ] No build artifacts in commit +- [ ] Tests added for new functionality +- [ ] Documentation updated if needed +- [ ] No console.log() statements (use log.debug instead) +- [ ] Error messages are user-friendly +- [ ] No secrets or credentials in code diff --git a/.cursor/commands/execute-tests.md b/.cursor/commands/execute-tests.md new file mode 100644 index 000000000..a27de0cdc --- /dev/null +++ b/.cursor/commands/execute-tests.md @@ -0,0 +1,252 @@ +--- +name: execute-tests +description: Run tests by scope, file, or module with intelligent filtering for this pnpm monorepo +--- + +# Execute Tests Command + +## Usage Patterns + +### Monorepo-Wide Testing +- `/execute-tests` - Run all tests across all packages +- `/execute-tests --coverage` - Run all tests with coverage reporting +- `/execute-tests --parallel` - Run package tests in parallel using pnpm + +### Package-Specific Testing +- `/execute-tests contentstack-import` - Run tests for import package +- `/execute-tests contentstack-export` - Run tests for export package +- `/execute-tests contentstack-audit` - Run tests for audit package +- `/execute-tests contentstack-clone` - Run tests for clone package +- `/execute-tests packages/contentstack-import/` - Run tests using path + +### Scope-Based Testing +- `/execute-tests unit` - Run unit tests only (`test/unit/**/*.test.ts`) +- `/execute-tests commands` - Run command tests (`test/unit/commands/**/*.test.ts`) +- `/execute-tests services` - Run service layer tests + +### File Pattern Testing +- `/execute-tests *.test.ts` - Run all TypeScript tests +- `/execute-tests test/unit/commands/` - Run tests for specific directory + +### Watch and Development +- `/execute-tests --watch` - Run tests in watch mode with file monitoring +- `/execute-tests --debug` - Run tests with debug output enabled +- `/execute-tests --bail` - Stop on first test failure + +## Intelligent Filtering + +### Repository-Aware Detection +- **Test patterns**: All use `*.test.ts` naming convention +- **Directory structures**: Standard `test/unit/` layout +- **Test locations**: `packages/*/test/unit/**/*.test.ts` +- **Build exclusion**: Ignores `lib/` directories (compiled artifacts) + +### Package Structure +The monorepo contains 12 CLI plugin packages: +- `contentstack-audit` - Stack audit and fix operations +- `contentstack-bootstrap` - Seed/bootstrap stacks +- `contentstack-branches` - Git-based branch management +- `contentstack-bulk-publish` - Bulk publish operations +- `contentstack-clone` - Clone/duplicate stacks +- `contentstack-export` - Export stack content +- `contentstack-export-to-csv` - Export to CSV format +- `contentstack-import` - Import content to stacks +- `contentstack-import-setup` - Import setup and validation +- `contentstack-migration` - Content migration workflows +- `contentstack-seed` - Seed stacks with data +- `contentstack-variants` - Manage content variants + +### Monorepo Integration +- **pnpm workspace support**: Uses `pnpm -r --filter` for package targeting +- **Dependency awareness**: Understands package interdependencies +- **Parallel execution**: Leverages pnpm's parallel capabilities +- **Selective testing**: Can target specific packages or file patterns + +### Framework Detection +- **Mocha configuration**: Respects `.mocharc.json` files per package +- **TypeScript compilation**: Handles test TypeScript setup +- **Test setup**: Detects test helper initialization files +- **Test timeout**: 30 seconds standard (configurable per package) + +## Execution Examples + +### Common Workflows +```bash +# Run all tests with coverage +/execute-tests --coverage + +# Test specific package during development +/execute-tests contentstack-import --watch + +# Run only command tests across all packages +/execute-tests commands + +# Run unit tests with detailed output +/execute-tests --debug + +# Test until first failure (quick feedback) +/execute-tests --bail +``` + +### Package-Specific Commands Generated +```bash +# For contentstack-import package +cd packages/contentstack-import && pnpm test + +# For all packages with parallel execution +pnpm -r run test + +# For specific test file +cd packages/contentstack-import && npx mocha "test/unit/commands/import.test.ts" + +# With coverage +pnpm -r run test:coverage +``` + +## Configuration Awareness + +### Mocha Integration +- Respects individual package `.mocharc.json` configurations +- Handles TypeScript compilation via ts-node/register +- Supports test helpers and initialization files +- Manages timeout settings per package (default 30 seconds) + +### Test Configuration +```json +// .mocharc.json +{ + "require": [ + "test/helpers/init.js", + "ts-node/register", + "source-map-support/register" + ], + "recursive": true, + "timeout": 30000, + "spec": "test/**/*.test.ts" +} +``` + +### pnpm Workspace Features +- Leverages workspace dependency resolution +- Supports filtered execution by package patterns +- Enables parallel test execution across packages +- Respects package-specific scripts and configurations + +## Test Structure + +### Standard Test Organization +``` +packages/*/ +├── test/ +│ └── unit/ +│ ├── commands/ # Command-specific tests +│ ├── services/ # Service/business logic tests +│ └── utils/ # Utility function tests +└── src/ + ├── commands/ # CLI commands + ├── services/ # Business logic + └── utils/ # Utilities +``` + +### Test File Naming +- **Pattern**: `*.test.ts` across all packages +- **Location**: `test/unit/` directories +- **Organization**: Mirrors `src/` structure for easy navigation + +## Performance Optimization + +### Parallel Testing +```bash +# Run tests in parallel for faster feedback +pnpm -r --filter './packages/*' run test + +# Watch mode during development +/execute-tests --watch +``` + +### Selective Testing +- Run only affected packages' tests during development +- Use `--bail` to stop on first failure for quick iteration +- Target specific test files for focused debugging + +## Troubleshooting + +### Common Issues + +**Tests not found** +- Check that files follow `*.test.ts` pattern +- Verify files are in `test/unit/` directory +- Ensure `.mocharc.json` has correct spec pattern + +**TypeScript compilation errors** +- Verify `tsconfig.json` in package root +- Check that `ts-node/register` is in `.mocharc.json` requires +- Run `pnpm compile` to check TypeScript errors + +**Watch mode not detecting changes** +- Verify `--watch` flag is supported in your Mocha version +- Check that file paths are correct +- Ensure no excessive `.gitignore` patterns + +**Port conflicts** +- Tests should not use hard-coded ports +- Use dynamic port allocation or test isolation +- Check for process cleanup in `afterEach` hooks + +## Best Practices + +### Test Execution +- Run tests before committing: `pnpm test` +- Use `--bail` during development for quick feedback +- Run full suite before opening PR +- Check coverage for critical paths + +### Test Organization +- Keep tests close to source code structure +- Use descriptive test names +- Group related tests with `describe` blocks +- Clean up resources in `afterEach` + +### Debugging +- Use `--debug` flag for detailed output +- Add `log.debug()` statements in tests +- Run individual test files for isolation +- Use `--bail` to stop at first failure + +## Integration with CI/CD + +### GitHub Actions +- Runs `pnpm test` on pull requests +- Enforces test passage before merge +- May include coverage reporting +- Runs linting and build verification + +### Local Development +```bash +# Before committing +pnpm test +pnpm run lint +pnpm run build + +# Or use watch mode for faster iteration +pnpm test --watch +``` + +## Coverage Reporting + +### Coverage Commands +```bash +# Run tests with coverage +/execute-tests --coverage + +# Coverage output location +coverage/ +├── index.html # HTML report +├── coverage-summary.json # JSON summary +└── lcov.info # LCOV format +``` + +### Coverage Goals +- **Team aspiration**: 80% minimum coverage +- **Focus on**: Critical business logic and error paths +- **Not critical**: Utility functions and edge cases diff --git a/.cursor/rules/README.md b/.cursor/rules/README.md new file mode 100644 index 000000000..cbb51b61b --- /dev/null +++ b/.cursor/rules/README.md @@ -0,0 +1,99 @@ +# Cursor Rules + +Context-aware rules that load automatically based on the files you're editing, optimized for this CLI plugins monorepo. + +## Rule Files + +| File | Scope | Always Applied | Purpose | +|------|-------|----------------|---------| +| `dev-workflow.md` | `**/*.ts`, `**/*.js`, `**/*.json` | Yes | Monorepo TDD workflow, pnpm workspace patterns (12 plugin packages) | +| `typescript.mdc` | `**/*.ts`, `**/*.tsx` | No | TypeScript configurations and naming conventions | +| `testing.mdc` | `**/test/**/*.ts`, `**/test/**/*.js`, `**/__tests__/**/*.ts`, `**/*.spec.ts`, `**/*.test.ts` | Yes | Mocha, Chai test patterns and test structure | +| `oclif-commands.mdc` | `**/commands/**/*.ts`, `**/base-command.ts` | No | OCLIF command patterns and CLI validation | +| `contentstack-plugin.mdc` | `packages/contentstack-*/src/**/*.ts`, `packages/contentstack-*/src/**/*.js` | No | CLI plugin package patterns, commands, services, and inter-plugin dependencies | + +## Commands + +| File | Trigger | Purpose | +|------|---------|---------| +| `execute-tests.md` | `/execute-tests` | Run tests by scope, package, or module with monorepo awareness | +| `code-review.md` | `/code-review` | Automated PR review with CLI-specific checklist | + +## Loading Behaviour + +### File Type Mapping +- **TypeScript files** → `typescript.mdc` + `dev-workflow.md` +- **Command files** (`packages/*/src/commands/**/*.ts`) → `oclif-commands.mdc` + `typescript.mdc` + `dev-workflow.md` +- **Base command files** (`packages/*/src/base-command.ts`, `packages/*/*base-command.ts`) → `oclif-commands.mdc` + `typescript.mdc` + `dev-workflow.md` +- **Plugin package files** (`packages/contentstack-*/src/**/*.ts`) → `contentstack-plugin.mdc` + `typescript.mdc` + `dev-workflow.md` +- **Test files** (`packages/*/test/**/*.{ts,js}`) → `testing.mdc` + `dev-workflow.md` +- **Utility files** (`packages/*/src/utils/**/*.ts`) → `typescript.mdc` + `dev-workflow.md` + +### Package-Specific Loading +- **Plugin packages** (with `oclif.commands`) → Full command and utility rules +- **Library packages** → TypeScript and utility rules only + +## Repository-Specific Features + +### Monorepo Structure + +This is a **CLI plugins** monorepo with 12 plugin packages under `packages/`: +- `contentstack-audit` - Stack audit and fix operations +- `contentstack-bootstrap` - Seed/bootstrap stacks with content +- `contentstack-branches` - Git-based branch management for stacks +- `contentstack-bulk-publish` - Bulk publish operations for entries/assets +- `contentstack-clone` - Clone/duplicate stacks +- `contentstack-export` - Export stack content to filesystem +- `contentstack-export-to-csv` - Export stack data to CSV format +- `contentstack-import` - Import content into stacks +- `contentstack-import-setup` - Setup and validation for imports +- `contentstack-migration` - Content migration workflows +- `contentstack-seed` - Seed stacks with generated data +- `contentstack-variants` - Manage content variants + +All plugins depend on: +- `@contentstack/cli-command` - Base Command class +- `@contentstack/cli-utilities` - Shared utilities and helpers +- Optionally on each other (e.g., `contentstack-import` depends on `@contentstack/cli-audit`) + +### Build Configuration +- **pnpm workspaces** configuration (all 12 plugins under `packages/`) +- **Shared dependencies**: Each plugin depends on `@contentstack/cli-command` and `@contentstack/cli-utilities` +- **Inter-plugin dependencies**: Some plugins depend on others (e.g., import → audit) +- **Build process**: TypeScript compilation → `lib/` directories +- **OCLIF manifest** generation per plugin for command discovery + +### Actual Patterns Detected +- **Testing**: Mocha + Chai (consistent across all plugins) +- **TypeScript**: Strict mode for type safety +- **Commands**: Extend `@contentstack/cli-command` Command class with plugin-specific base-commands +- **Topics**: All commands under `cm:` topic (content management) +- **Services/Modules**: Domain-specific business logic organized by concern +- **Build artifacts**: `lib/` directories (excluded from rules) + +## Performance Benefits + +- **Lightweight loading** - Only relevant rules activate based on file patterns +- **Precise glob patterns** - Avoid loading rules for build artifacts +- **Context-aware** - Rules load based on actual file structure + +## Design Principles + +### Validated Against Codebase +- Rules reflect **actual patterns** found in repository +- Glob patterns match **real file structure** +- Examples use **actual dependencies** and APIs + +### Lightweight and Focused +- Each rule has **single responsibility** +- Package-specific variations acknowledged +- `alwaysApply: true` only for truly universal patterns + +## Quick Reference + +For detailed patterns: +- **Testing**: See `testing.mdc` for Mocha/Chai test structure +- **Commands**: See `oclif-commands.mdc` for command development +- **Plugins**: See `contentstack-plugin.mdc` for plugin architecture and patterns +- **Development**: See `dev-workflow.md` for TDD and monorepo workflow +- **TypeScript**: See `typescript.mdc` for type safety patterns diff --git a/.cursor/rules/contentstack-plugin.mdc b/.cursor/rules/contentstack-plugin.mdc new file mode 100644 index 000000000..e653d2c57 --- /dev/null +++ b/.cursor/rules/contentstack-plugin.mdc @@ -0,0 +1,475 @@ +--- +description: "Contentstack CLI plugin package patterns — commands, services, base-commands, and inter-plugin dependencies" +globs: ["packages/contentstack-*/src/**/*.ts", "packages/contentstack-*/src/**/*.js"] +alwaysApply: false +--- + +# Contentstack CLI Plugin Standards + +## Overview + +The **cli-plugins** monorepo contains 12 OCLIF plugin packages under `packages/`: +- `contentstack-audit`, `contentstack-bootstrap`, `contentstack-branches`, `contentstack-bulk-publish`, `contentstack-clone`, `contentstack-export`, `contentstack-export-to-csv`, `contentstack-import`, `contentstack-import-setup`, `contentstack-migration`, `contentstack-seed`, `contentstack-variants` + +Each plugin is a self-contained OCLIF package that: +- **Defines commands** — via `oclif.commands` in `package.json` pointing to `./lib/commands` +- **Depends on shared libraries** — `@contentstack/cli-command` (Base Command class), `@contentstack/cli-utilities` (shared utils and services) +- **May depend on other plugins** — e.g., `contentstack-import` depends on `@contentstack/cli-audit` for audit operations +- **Implements business logic** — in services, modules, and utility classes +- **Has a local base-command** — extending `@contentstack/cli-command` Command class with plugin-specific initialization and flags + +## Architecture + +### Package Structure + +``` +packages/contentstack-import/ +├── src/ +│ ├── commands/ +│ │ └── cm/ +│ │ └── stacks/ +│ │ └── import.ts +│ ├── services/ +│ │ ├── import-service.ts +│ │ └── validation-service.ts +│ ├── modules/ +│ │ ├── entries.ts +│ │ ├── assets.ts +│ │ └── ... +│ ├── base-command.ts (or import-base-command.ts) +│ ├── types/ +│ ├── interfaces/ +│ ├── messages/ +│ └── utils/ +├── test/ +│ └── unit/ +│ ├── commands/ +│ ├── services/ +│ └── ... +├── package.json +├── tsconfig.json +└── .mocharc.json +``` + +### Package Configuration + +Each plugin's `package.json` declares its commands and declares itself as an OCLIF plugin: + +```json +{ + "name": "@contentstack/cli-cm-import", + "oclif": { + "commands": "./lib/commands", + "topics": { + "stacks": { + "description": "Manage stacks" + } + } + }, + "dependencies": { + "@contentstack/cli-command": "~1.8.0", + "@contentstack/cli-utilities": "~1.18.0", + "@contentstack/cli-audit": "~1.19.0" + } +} +``` + +## Base Command Pattern + +### Plugin-Specific Base Command + +Each plugin defines its own `BaseCommand` (or specialized variant like `AuditBaseCommand`): + +```typescript +// ✅ GOOD - packages/contentstack-audit/src/base-command.ts +import { Command } from '@contentstack/cli-command'; +import { Flags, FlagInput } from '@contentstack/cli-utilities'; + +export abstract class BaseCommand extends Command { + protected sharedConfig = { + basePath: process.cwd(), + }; + + static baseFlags: FlagInput = { + config: Flags.string({ + char: 'c', + description: 'Path to config file', + }), + 'data-dir': Flags.string({ + char: 'd', + description: 'Data directory path', + }), + }; + + public async init(): Promise { + await super.init(); + const { args, flags } = await this.parse({ + flags: this.ctor.flags, + args: this.ctor.args, + strict: this.ctor.strict !== false, + }); + this.args = args; + this.flags = flags; + } +} +``` + +### Specialized Base Commands + +Some plugins define specialized versions for specific concerns: + +```typescript +// ✅ GOOD - packages/contentstack-audit/src/audit-base-command.ts +// Extends BaseCommand with audit-specific logic +import { BaseCommand } from './base-command'; + +export abstract class AuditBaseCommand extends BaseCommand { + // Audit-specific initialization and helpers + protected async runAudit(): Promise { + // Common audit logic + } +} + +// Usage in commands +export default class AuditFixCommand extends AuditBaseCommand { + async run(): Promise { + await this.runAudit(); + } +} +``` + +## Command Structure + +### CM Topic Commands + +Commands are organized under the `cm` topic with subtopics for domains: + +```typescript +// ✅ GOOD - packages/contentstack-import/src/commands/cm/stacks/import.ts +import { Flags, FlagInput, cliux } from '@contentstack/cli-utilities'; +import { BaseCommand } from '../../../base-command'; + +export default class ImportCommand extends BaseCommand { + static id = 'cm:stacks:import'; + static description = 'Import content into a stack'; + static examples = [ + '$ csdx cm:stacks:import -k -d ', + '$ csdx cm:stacks:import -k -d --content-types entry,asset', + ]; + + static flags: FlagInput = { + 'stack-api-key': Flags.string({ + char: 'k', + description: 'Stack API key', + required: true, + }), + 'data-dir': Flags.string({ + char: 'd', + description: 'Directory with import data', + required: true, + }), + 'content-types': Flags.string({ + description: 'Content types to import (comma-separated)', + default: 'all', + }), + }; + + async run(): Promise { + try { + const { flags } = this; + cliux.loaderV2('Starting import...'); + + // Delegate to service + const importService = new ImportService(flags); + await importService.import(); + + cliux.success('Import completed'); + } catch (error) { + handleAndLogError(error, { + module: 'import', + command: this.id, + }); + } + } +} +``` + +## Service and Module Patterns + +### Service Layer + +Services encapsulate business logic and are used by commands: + +```typescript +// ✅ GOOD - packages/contentstack-import/src/services/import-service.ts +import { cliux, log } from '@contentstack/cli-utilities'; + +export class ImportService { + constructor(private flags: any) {} + + async import(): Promise { + // Orchestrate import workflow + await this.validateInput(); + await this.loadData(); + await this.importContent(); + } + + private async validateInput(): Promise { + log.debug('Validating input', { module: 'import-service' }); + // Validation logic + } + + private async loadData(): Promise { + // Load data from directory + } + + private async importContent(): Promise { + // Import content logic + } +} +``` + +### Module Pattern + +Some plugins use modules for domain-specific operations: + +```typescript +// ✅ GOOD - packages/contentstack-import/src/modules/entries.ts +import isEmpty from 'lodash/isEmpty'; +import { log } from '@contentstack/cli-utilities'; + +export class Entries { + constructor(private client: any, private basePath: string) {} + + async import(entries: any[]): Promise { + if (isEmpty(entries)) { + log.debug('No entries to import'); + return; + } + + for (const entry of entries) { + await this.importEntry(entry); + } + } + + private async importEntry(entry: any): Promise { + // Import individual entry + } +} +``` + +## Shared Dependencies + +All plugins depend on core libraries: + +```json +{ + "dependencies": { + "@contentstack/cli-command": "~1.8.0", + "@contentstack/cli-utilities": "~1.18.0" + } +} +``` + +### Common Utilities Used + +```typescript +// ✅ GOOD - Import and use shared utilities +import { + cliux, // CLI UI helpers (loaders, tables, success/error) + ux, // OCLIF ux utilities + log, // Structured logging + handleAndLogError, // Error handling with context + configHandler, // CLI configuration management + sanitizePath, // Path sanitization + managementSDKClient, // Contentstack API client factory +} from '@contentstack/cli-utilities'; + +import { Command, Interfaces } from '@contentstack/cli-command'; +``` + +## Inter-Plugin Dependencies + +Plugins can depend on other plugins to share functionality: + +```json +{ + "dependencies": { + "@contentstack/cli-audit": "~1.19.0" + } +} +``` + +### Using Shared Plugin Code + +```typescript +// ✅ GOOD - Import from other plugin packages +import { AuditService } from '@contentstack/cli-audit'; + +export class ImportService { + async import(): Promise { + // Do import + await new AuditService().runAudit(); + } +} +``` + +## Error Handling + +Error handling follows a consistent pattern across plugins: + +```typescript +// ✅ GOOD - Comprehensive error handling +import { handleAndLogError, CLIError } from '@contentstack/cli-utilities'; + +async run(): Promise { + try { + // Business logic + const result = await this.importService.import(); + return result; + } catch (error) { + // Log error with module/command context + handleAndLogError(error, { + module: 'import', + command: this.id, + dataDir: this.flags['data-dir'], + }); + this.exit(1); + } +} +``` + +## Build Process + +Each plugin builds independently but follows the same pattern: + +```bash +# In package.json scripts +"build": "pnpm compile && oclif manifest" +``` + +### Build Steps + +1. **compile** — TypeScript → JavaScript in `lib/` +2. **oclif manifest** — Generate `oclif.manifest.json` for command discovery + +### Build Artifacts + +- `lib/` — Compiled commands, services, modules +- `oclif.manifest.json` — Command registry for this plugin +- `README.md` — Generated command documentation (optional) + +## Configuration and Messaging + +### Messages + +Plugins store user-facing strings in centralized message files: + +```typescript +// ✅ GOOD - packages/contentstack-import/src/messages/index.ts +export const importMsg = { + IMPORT_START: 'Starting import...', + IMPORT_SUCCESS: 'Import completed successfully', + VALIDATION_ERROR: 'Validation failed: {{reason}}', +}; +``` + +### Configuration + +Plugin-specific defaults are stored in config files: + +```typescript +// ✅ GOOD - packages/contentstack-import/src/config/index.ts +export default { + batchSize: 50, + retryAttempts: 3, + timeout: 30000, + logLevel: 'info', +}; +``` + +## Testing Patterns + +### Command Testing + +Test commands using `@oclif/test`: + +```typescript +// ✅ GOOD - packages/contentstack-import/test/unit/commands/import.test.ts +import { test } from '@oclif/test'; +import { expect } from 'chai'; + +describe('ImportCommand', () => { + test + .stdout() + .command(['cm:stacks:import', '--help']) + .it('shows help message', (ctx) => { + expect(ctx.stdout).to.contain('Import content'); + }); + + test + .command(['cm:stacks:import', '-k', 'test-key', '-d', '/tmp/data']) + .it('runs import command'); +}); +``` + +### Service Testing + +Test services with unit tests: + +```typescript +// ✅ GOOD - packages/contentstack-import/test/unit/services/import-service.test.ts +import { expect } from 'chai'; +import { ImportService } from '../../../src/services/import-service'; + +describe('ImportService', () => { + let service: ImportService; + + beforeEach(() => { + service = new ImportService({ + 'stack-api-key': 'test-key', + 'data-dir': '/tmp/data', + }); + }); + + it('should validate input before import', async () => { + // Test validation logic + }); + + it('should handle import errors', async () => { + // Test error handling + }); +}); +``` + +## Best Practices + +### Command Design +- Keep commands thin — delegate to services +- Validate flags early and fail fast +- Provide clear error messages with actionable guidance +- Include command examples in static `examples` + +### Service Design +- Keep services focused on a single domain +- Make services testable by accepting dependencies via constructor +- Use modules for complex domain operations +- Document service public API clearly + +### Error Handling +- Always provide context in error logs (module, command, relevant state) +- Use structured error types (CLIError) for user-facing errors +- Include remediation guidance in error messages +- Log all errors, even those caught and handled + +### Testing +- Test commands with @oclif/test +- Test services with unit tests and mocks +- Cover both happy path and error cases +- Use fixtures for test data, not live APIs + +### Dependencies +- Always use `@contentstack/cli-utilities` for CLI concerns +- Use `@contentstack/cli-command` as base for commands +- Depend on other plugins only if truly needed (watch for circular deps) +- Pin dependency versions to minor (`~` semver) for stability diff --git a/.cursor/rules/dev-workflow.md b/.cursor/rules/dev-workflow.md new file mode 100644 index 000000000..4bfe91360 --- /dev/null +++ b/.cursor/rules/dev-workflow.md @@ -0,0 +1,206 @@ +--- +description: "Core development workflow and TDD patterns - always applied" +globs: ["**/*.ts", "**/*.js", "**/*.json"] +alwaysApply: true +--- + +# Development Workflow + +## Monorepo Structure + +### Package Organization +This **CLI plugins** monorepo has 12 packages under `packages/`: + +1. **contentstack-audit** - Stack audit and fix operations +2. **contentstack-bootstrap** - Seed/bootstrap stacks +3. **contentstack-branches** - Git-based branch management +4. **contentstack-bulk-publish** - Bulk publish operations +5. **contentstack-clone** - Clone/duplicate stacks +6. **contentstack-export** - Export stack content +7. **contentstack-export-to-csv** - Export to CSV format +8. **contentstack-import** - Import content to stacks +9. **contentstack-import-setup** - Import setup and validation +10. **contentstack-migration** - Content migration workflows +11. **contentstack-seed** - Seed stacks with data +12. **contentstack-variants** - Manage content variants + +All plugins depend on `@contentstack/cli-command` and `@contentstack/cli-utilities`. Some plugins also depend on each other. + +### pnpm Workspace Configuration +```json +{ + "workspaces": ["packages/*"] +} +``` + +### Development Commands +```bash +# Install dependencies for all packages +pnpm install + +# Run command across all packages +pnpm -r run + +# Run command in specific package +pnpm -r --filter '@contentstack/cli-cm-import' test + +# Work on specific package +cd packages/contentstack-import +pnpm test +``` + +## TDD Workflow - MANDATORY + +1. **RED** → Write ONE failing test in `test/unit/**/*.test.ts` +2. **GREEN** → Write minimal code in `src/` to pass +3. **REFACTOR** → Improve code quality while keeping tests green + +### Test-First Examples +```typescript +// ✅ GOOD - Write test first +describe('ConfigService', () => { + it('should load configuration', async () => { + // Arrange - Set up mocks + const mockConfig = { region: 'us', alias: 'default' }; + + // Act - Call the method + const result = await configService.load(); + + // Assert - Verify behavior + expect(result).to.deep.equal(mockConfig); + }); +}); +``` + +## Critical Rules + +### Testing Standards +- **NO implementation before tests** - Test-driven development only +- **Mock all external dependencies** - No real API calls in tests +- **Use Mocha + Chai** - Standard testing stack +- **Coverage aspiration**: 80% minimum + +### Code Quality +- **TypeScript configuration**: Varies by package +- **NO test.skip or .only in commits** - Clean test suites only +- **Proper error handling** - Clear error messages + +### Build Process +```bash +# Standard build process for each package +pnpm run build # tsc compilation + oclif manifest +pnpm run test # Run test suite +pnpm run lint # ESLint checks +``` + +## Package-Specific Patterns + +### Plugin Packages (auth, config) +- Have `oclif.commands` in `package.json` +- Commands in `src/commands/cm/**/*.ts` +- Built commands in `lib/commands/` +- Extend `@oclif/core` Command class +- Script: `build`: compiles TypeScript, generates OCLIF manifest and README + +### Library Packages (command, utilities, dev-dependencies) +- No OCLIF commands configuration +- Pure TypeScript/JavaScript libraries +- Consumed by other packages +- `main` points to `lib/index.js` + +### Main CLI Package (contentstack) +- Entry point through `bin/run.js` +- Aggregates plugin commands +- Package dependencies reference plugin packages + +## Script Conventions + +### Build Scripts +```json +{ + "build": "pnpm compile && oclif manifest && oclif readme", + "compile": "tsc -b tsconfig.json", + "prepack": "pnpm compile && oclif manifest && oclif readme", + "test": "mocha \"test/unit/**/*.test.ts\"", + "lint": "eslint src/**/*.ts" +} +``` + +### Key Build Steps +1. **compile** - TypeScript compilation to `lib/` +2. **oclif manifest** - Generate command manifest for discovery +3. **oclif readme** - Generate command documentation + +## Quick Reference + +For detailed patterns, see: +- `@testing` - Mocha, Chai test patterns +- `@oclif-commands` - Command structure and validation +- `@dev-workflow` (this document) - Monorepo workflow and TDD + +## Development Checklist + +### Before Starting Work +- [ ] Identify target package in `packages/` +- [ ] Check existing tests in `test/unit/` +- [ ] Understand command structure if working on commands +- [ ] Set up proper TypeScript configuration + +### During Development +- [ ] Write failing test first +- [ ] Implement minimal code to pass +- [ ] Mock external dependencies +- [ ] Follow naming conventions (kebab-case files, PascalCase classes) + +### Before Committing +- [ ] All tests pass: `pnpm test` +- [ ] No `.only` or `.skip` in test files +- [ ] Build succeeds: `pnpm run build` +- [ ] TypeScript compilation clean +- [ ] Proper error handling implemented + +## Common Patterns + +### Service/Class Architecture +```typescript +// ✅ GOOD - Separate concerns +export default class ConfigCommand extends Command { + static description = 'Manage CLI configuration'; + + async run(): Promise { + try { + const service = new ConfigService(); + await service.execute(); + this.log('Configuration updated successfully'); + } catch (error) { + this.error('Configuration update failed'); + } + } +} +``` + +### Error Handling +```typescript +// ✅ GOOD - Clear error messages +try { + await this.performAction(); +} catch (error) { + if (error instanceof ValidationError) { + this.error(`Invalid input: ${error.message}`); + } else { + this.error('Operation failed'); + } +} +``` + +## CI/CD Integration + +### GitHub Actions +- Uses workflow files in `.github/workflows/` +- Runs linting, tests, and builds on pull requests +- Enforces code quality standards + +### Pre-commit Hooks +- Husky integration for pre-commit checks +- Prevents commits with linting errors +- Located in `.husky/` diff --git a/.cursor/rules/oclif-commands.mdc b/.cursor/rules/oclif-commands.mdc new file mode 100644 index 000000000..7ca9bc25a --- /dev/null +++ b/.cursor/rules/oclif-commands.mdc @@ -0,0 +1,352 @@ +--- +description: 'OCLIF command development patterns and CLI best practices' +globs: ['**/commands/**/*.ts', '**/base-command.ts'] +alwaysApply: false +--- + +# OCLIF Command Standards + +## Command Structure + +### Standard Command Pattern +```typescript +// ✅ GOOD - Standard command structure +import { Command } from '@contentstack/cli-command'; +import { cliux, flags, FlagInput, handleAndLogError } from '@contentstack/cli-utilities'; + +export default class ConfigSetCommand extends Command { + static description = 'Set CLI configuration values'; + + static flags: FlagInput = { + region: flags.string({ + char: 'r', + description: 'Set region (us/eu)', + }), + alias: flags.string({ + char: 'a', + description: 'Configuration alias', + }), + }; + + static examples = [ + 'csdx config:set --region eu', + 'csdx config:set --region us --alias default', + ]; + + async run(): Promise { + try { + const { flags: configFlags } = await this.parse(ConfigSetCommand); + // Command logic here + } catch (error) { + handleAndLogError(error, { module: 'config-set' }); + } + } +} +``` + +## Base Classes + +### Command Base Class +```typescript +// ✅ GOOD - Extend Command from @contentstack/cli-command +import { Command } from '@contentstack/cli-command'; + +export default class MyCommand extends Command { + async run(): Promise { + // Command implementation + } +} +``` + +### Custom Base Classes +```typescript +// ✅ GOOD - Create custom base classes for shared functionality +export abstract class BaseCommand extends Command { + protected contextDetails = { + command: this.id || 'unknown', + }; + + async init(): Promise { + await super.init(); + log.debug('Command initialized', this.contextDetails); + } +} +``` + +## OCLIF Configuration + +### Package.json Setup +```json +{ + "oclif": { + "commands": "./lib/commands", + "bin": "csdx", + "topicSeparator": ":" + } +} +``` + +### Command Topics +- All commands use `cm` topic: `cm:config:set`, `cm:auth:login` +- Built commands live in `lib/commands` (compiled from `src/commands`) +- Commands use nested directories: `src/commands/config/set.ts` → `cm:config:set` + +### Command Naming +- **Topic hierarchy**: `config/remove/proxy.ts` → `cm:config:remove:proxy` +- **Descriptive names**: Use verb-noun pattern (`set`, `remove`, `show`) +- **Grouping**: Related commands share parent topics + +## Flag Management + +### Flag Definition Patterns +```typescript +// ✅ GOOD - Define flags clearly +static flags: FlagInput = { + 'stack-api-key': flags.string({ + char: 'k', + description: 'Stack API key', + required: false, + }), + region: flags.string({ + char: 'r', + description: 'Set region', + options: ['us', 'eu'], + }), + verbose: flags.boolean({ + char: 'v', + description: 'Show verbose output', + default: false, + }), +}; +``` + +### Flag Parsing +```typescript +// ✅ GOOD - Parse and validate flags +async run(): Promise { + const { flags: parsedFlags } = await this.parse(MyCommand); + + // Validate flag combinations + if (!parsedFlags['stack-api-key'] && !parsedFlags.alias) { + this.error('Either --stack-api-key or --alias is required'); + } + + // Use parsed flags + const region = parsedFlags.region || 'us'; +} +``` + +## Error Handling + +### Standard Error Pattern +```typescript +// ✅ GOOD - Use handleAndLogError from utilities +try { + await this.executeCommand(); +} catch (error) { + handleAndLogError(error, { module: 'my-command' }); +} +``` + +### User-Friendly Messages +```typescript +// ✅ GOOD - Clear user feedback +import { cliux } from '@contentstack/cli-utilities'; + +// Success message +cliux.success('Configuration updated successfully', { color: 'green' }); + +// Error message +cliux.error('Invalid region specified', { color: 'red' }); + +// Info message +cliux.print('Setting region to eu', { color: 'blue' }); +``` + +## Validation Patterns + +### Early Validation +```typescript +// ✅ GOOD - Validate flags early +async run(): Promise { + const { flags } = await this.parse(MyCommand); + + // Validate required flags + if (!flags.region) { + this.error('--region is required'); + } + + // Validate flag values + if (!['us', 'eu'].includes(flags.region)) { + this.error('Region must be "us" or "eu"'); + } + + // Proceed with validated input +} +``` + +## Progress and Logging + +### User Feedback +```typescript +// ✅ GOOD - Provide user feedback +import { log, cliux } from '@contentstack/cli-utilities'; + +// Regular logging +this.log('Starting configuration update...'); + +// Debug logging +log.debug('Detailed operation information', { context: 'data' }); + +// Status messages +cliux.print('Processing...', { color: 'blue' }); +``` + +### Progress Indication +```typescript +// ✅ GOOD - Show progress for long operations +cliux.print('Processing items...', { color: 'blue' }); +let count = 0; +for (const item of items) { + await this.processItem(item); + count++; + cliux.print(`Processed ${count}/${items.length} items`, { color: 'blue' }); +} +``` + +## Command Delegation + +### Service Layer Separation +```typescript +// ✅ GOOD - Commands orchestrate, services implement +async run(): Promise { + try { + const { flags } = await this.parse(MyCommand); + const config = this.buildConfig(flags); + const service = new ConfigService(config); + + await service.execute(); + cliux.success('Operation completed successfully'); + } catch (error) { + this.handleError(error); + } +} +``` + +## Testing Commands + +### OCLIF Test Support +```typescript +// ✅ GOOD - Use @oclif/test for command testing +import { test } from '@oclif/test'; + +describe('cm:config:set', () => { + test + .stdout() + .command(['cm:config:set', '--help']) + .it('shows help', ctx => { + expect(ctx.stdout).to.contain('Set CLI configuration'); + }); + + test + .stdout() + .command(['cm:config:set', '--region', 'eu']) + .it('sets region to eu', ctx => { + expect(ctx.stdout).to.contain('success'); + }); +}); +``` + +## Log Integration + +### Debug Logging +```typescript +// ✅ GOOD - Use structured debug logging +import { log } from '@contentstack/cli-utilities'; + +log.debug('Command started', { + command: this.id, + flags: this.flags, + timestamp: new Date().toISOString(), +}); + +log.debug('Processing complete', { + itemsProcessed: count, + module: 'my-command', +}); +``` + +### Error Context +```typescript +// ✅ GOOD - Include context in error handling +try { + await operation(); +} catch (error) { + handleAndLogError(error, { + module: 'config-set', + command: 'cm:config:set', + flags: { region: 'eu' }, + }); +} +``` + +## Multi-Topic Commands + +### Nested Command Structure +```typescript +// File: src/commands/config/show.ts +export default class ShowConfigCommand extends Command { + static description = 'Show current configuration'; + static examples = ['csdx config:show']; + async run(): Promise { } +} + +// File: src/commands/config/set.ts +export default class SetConfigCommand extends Command { + static description = 'Set configuration values'; + static examples = ['csdx config:set --region eu']; + async run(): Promise { } +} + +// Generated commands: +// - cm:config:show +// - cm:config:set +``` + +## Best Practices + +### Command Organization +```typescript +// ✅ GOOD - Well-organized command +export default class MyCommand extends Command { + static description = 'Clear, concise description'; + + static flags: FlagInput = { + // Define all flags + }; + + static examples = [ + 'csdx my:command', + 'csdx my:command --flag value', + ]; + + async run(): Promise { + try { + const { flags } = await this.parse(MyCommand); + await this.execute(flags); + } catch (error) { + handleAndLogError(error, { module: 'my-command' }); + } + } + + private async execute(flags: Flags): Promise { + // Implementation + } +} +``` + +### Clear Help Text +- Write description as action-oriented statement +- Provide multiple examples for common use cases +- Document each flag with clear description +- Show output format or examples of results diff --git a/.cursor/rules/testing.mdc b/.cursor/rules/testing.mdc new file mode 100644 index 000000000..daf6de108 --- /dev/null +++ b/.cursor/rules/testing.mdc @@ -0,0 +1,323 @@ +--- +description: 'Testing patterns and TDD workflow' +globs: ['**/test/**/*.ts', '**/test/**/*.js', '**/__tests__/**/*.ts', '**/*.spec.ts', '**/*.test.ts'] +alwaysApply: true +--- + +# Testing Standards + +## Framework Stack + +### Primary Testing Tools +- **Mocha** - Test runner (used across all packages) +- **Chai** - Assertion library +- **@oclif/test** - Command testing support (for plugin packages) + +### Test Setup +- TypeScript compilation via ts-node/register +- Source map support for stack traces +- Global test timeout: 30 seconds (configurable per package) + +## Test File Patterns + +### Naming Conventions +- **Primary**: `*.test.ts` (standard pattern across all packages) +- **Location**: `test/unit/**/*.test.ts` (most packages) + +### Directory Structure +``` +packages/*/ +├── test/ +│ └── unit/ +│ ├── commands/ # Command-specific tests +│ ├── services/ # Service/business logic tests +│ └── utils/ # Utility function tests +└── src/ # Source code + ├── commands/ # CLI commands + ├── services/ # Business logic + └── utils/ # Utilities +``` + +## Mocha Configuration + +### Standard Setup (.mocharc.json) +```json +{ + "require": [ + "test/helpers/init.js", + "ts-node/register", + "source-map-support/register" + ], + "recursive": true, + "timeout": 30000, + "spec": "test/**/*.test.ts" +} +``` + +### TypeScript Compilation +```json +// package.json scripts +{ + "test": "mocha \"test/unit/**/*.test.ts\"", + "test:coverage": "nyc mocha \"test/unit/**/*.test.ts\"" +} +``` + +## Test Structure + +### Standard Test Pattern +```typescript +// ✅ GOOD - Comprehensive test structure +describe('ConfigService', () => { + let service: ConfigService; + + beforeEach(() => { + service = new ConfigService(); + }); + + describe('loadConfig()', () => { + it('should load configuration successfully', async () => { + // Arrange + const expectedConfig = { region: 'us' }; + + // Act + const result = await service.loadConfig(); + + // Assert + expect(result).to.deep.equal(expectedConfig); + }); + + it('should handle missing configuration', async () => { + // Arrange & Act & Assert + await expect(service.loadConfig()).to.be.rejectedWith('Config not found'); + }); + }); +}); +``` + +### Async/Await Pattern +```typescript +// ✅ GOOD - Use async/await in tests +it('should process data asynchronously', async () => { + const result = await service.processAsync(); + expect(result).to.exist; +}); + +// ✅ GOOD - Explicit Promise handling +it('should return a promise', () => { + return service.asyncMethod().then(result => { + expect(result).to.be.true; + }); +}); +``` + +## Mocking Patterns + +### Class Mocking +```typescript +// ✅ GOOD - Mock class dependencies +class MockConfigService { + async loadConfig() { + return { region: 'us' }; + } +} + +it('should use mocked service', async () => { + const mockService = new MockConfigService(); + const result = await mockService.loadConfig(); + expect(result.region).to.equal('us'); +}); +``` + +### Function Stubs +```typescript +// ✅ GOOD - Stub module functions if needed +beforeEach(() => { + // Stub file system operations + // Stub network calls +}); + +afterEach(() => { + // Restore original implementations +}); +``` + +## Command Testing + +### OCLIF Test Pattern +```typescript +// ✅ GOOD - Test commands with @oclif/test +import { test } from '@oclif/test'; + +describe('cm:config:region', () => { + test + .stdout() + .command(['cm:config:region', '--help']) + .it('shows help message', ctx => { + expect(ctx.stdout).to.contain('Display region'); + }); + + test + .stdout() + .command(['cm:config:region']) + .it('shows current region', ctx => { + expect(ctx.stdout).to.contain('us'); + }); +}); +``` + +### Command Flag Testing +```typescript +// ✅ GOOD - Test command flags and arguments +describe('cm:config:set', () => { + test + .command(['cm:config:set', '--help']) + .it('shows usage information'); + + test + .command(['cm:config:set', '--region', 'eu']) + .it('sets region to eu'); +}); +``` + +## Error Testing + +### Error Handling +```typescript +// ✅ GOOD - Test error scenarios +it('should throw ValidationError on invalid input', async () => { + const invalidInput = ''; + await expect(service.validate(invalidInput)) + .to.be.rejectedWith('Invalid input'); +}); + +it('should handle network errors gracefully', async () => { + // Mock network failure + const result = await service.fetchWithRetry(); + expect(result).to.be.null; +}); +``` + +### Error Types +```typescript +// ✅ GOOD - Test specific error types +it('should throw appropriate error', async () => { + try { + await service.failingOperation(); + } catch (error) { + expect(error).to.be.instanceof(ValidationError); + expect(error.code).to.equal('INVALID_CONFIG'); + } +}); +``` + +## Test Data Management + +### Mock Data Organization +```typescript +// ✅ GOOD - Organize test data +const mockData = { + validConfig: { + region: 'us', + timeout: 30000, + }, + invalidConfig: { + region: '', + }, + users: [ + { email: 'user1@example.com', name: 'User 1' }, + { email: 'user2@example.com', name: 'User 2' }, + ], +}; +``` + +### Test Helpers +```typescript +// ✅ GOOD - Create reusable test utilities +export function createMockConfig(overrides?: Partial): Config { + return { + region: 'us', + timeout: 30000, + ...overrides, + }; +} + +export function createMockService( + config: Config = createMockConfig() +): ConfigService { + return new ConfigService(config); +} +``` + +## Coverage + +### Coverage Goals +- **Team aspiration**: 80% minimum coverage +- **Current enforcement**: Applied consistently across packages +- **Focus areas**: Critical business logic and error paths + +### Coverage Reporting +```bash +# Run tests with coverage +pnpm test:coverage + +# Coverage reports generated in: +# - coverage/index.html (HTML report) +# - coverage/coverage-summary.json (JSON report) +``` + +## Critical Testing Rules + +- **No real external calls** - Mock all dependencies +- **Test both success and failure paths** - Cover error scenarios completely +- **One assertion per test** - Focus each test on single behavior +- **Use descriptive test names** - Test name should explain what's tested +- **Arrange-Act-Assert** - Follow AAA pattern consistently +- **Test command validation** - Verify flag validation and error messages +- **Clean up after tests** - Restore any mocked state + +## Best Practices + +### Test Organization +```typescript +// ✅ GOOD - Organize related tests +describe('AuthCommand', () => { + describe('login', () => { + it('should authenticate user'); + it('should save token'); + }); + + describe('logout', () => { + it('should clear token'); + it('should reset config'); + }); +}); +``` + +### Async Test Patterns +```typescript +// ✅ GOOD - Handle async operations properly +it('should complete async operation', async () => { + const promise = service.asyncMethod(); + expect(promise).to.be.instanceof(Promise); + + const result = await promise; + expect(result).to.equal('success'); +}); +``` + +### Isolation +```typescript +// ✅ GOOD - Ensure test isolation +describe('ConfigService', () => { + let service: ConfigService; + + beforeEach(() => { + service = new ConfigService(); + }); + + afterEach(() => { + // Clean up resources + }); +}); +``` diff --git a/.cursor/rules/typescript.mdc b/.cursor/rules/typescript.mdc new file mode 100644 index 000000000..ea4d82a26 --- /dev/null +++ b/.cursor/rules/typescript.mdc @@ -0,0 +1,246 @@ +--- +description: 'TypeScript strict mode standards and naming conventions' +globs: ['**/*.ts', '**/*.tsx'] +alwaysApply: false +--- + +# TypeScript Standards + +## Configuration + +### Standard Configuration (All Packages) +```json +{ + "compilerOptions": { + "declaration": true, + "importHelpers": true, + "module": "commonjs", + "outDir": "lib", + "rootDir": "src", + "strict": false, // Relaxed for compatibility + "target": "es2017", + "sourceMap": false, + "allowJs": true, // Mixed JS/TS support + "skipLibCheck": true, + "esModuleInterop": true + }, + "include": ["src/**/*"] +} +``` + +### Root Configuration +```json +// tsconfig.json - Baseline configuration +{ + "compilerOptions": { + "strict": false, + "module": "commonjs", + "target": "es2017", + "declaration": true, + "outDir": "lib", + "rootDir": "src" + } +} +``` + +## Naming Conventions (Actual Usage) + +### Files +- **Primary pattern**: `kebab-case.ts` (e.g., `base-command.ts`, `config-handler.ts`) +- **Single-word modules**: `index.ts`, `types.ts` +- **Commands**: Follow OCLIF topic structure (`cm/auth/login.ts`, `cm/config/region.ts`) + +### Classes +```typescript +// ✅ GOOD - PascalCase for classes +export default class ConfigCommand extends Command { } +export class AuthService { } +export class ValidationError extends Error { } +``` + +### Functions and Methods +```typescript +// ✅ GOOD - camelCase for functions +export async function loadConfig(): Promise { } +async validateInput(input: string): Promise { } +createCommandContext(): CommandContext { } +``` + +### Constants +```typescript +// ✅ GOOD - SCREAMING_SNAKE_CASE for constants +const DEFAULT_REGION = 'us'; +const MAX_RETRIES = 3; +const API_BASE_URL = 'https://api.contentstack.io'; +``` + +### Interfaces and Types +```typescript +// ✅ GOOD - PascalCase for types +export interface CommandConfig { + region: string; + alias?: string; +} + +export type CommandResult = { + success: boolean; + message?: string; +}; +``` + +## Import/Export Patterns + +### ES Modules (Preferred) +```typescript +// ✅ GOOD - ES import/export syntax +import { Command } from '@oclif/core'; +import type { CommandConfig } from '../types'; +import { loadConfig } from '../utils'; + +export default class ConfigCommand extends Command { } +export { CommandConfig }; +``` + +### Default Exports +```typescript +// ✅ GOOD - Default export for commands and main classes +export default class ConfigCommand extends Command { } +``` + +### Named Exports +```typescript +// ✅ GOOD - Named exports for utilities and types +export async function delay(ms: number): Promise { } +export interface CommandOptions { } +export type ActionResult = 'success' | 'failure'; +``` + +## Type Definitions + +### Local Types +```typescript +// ✅ GOOD - Define types close to usage +export interface AuthOptions { + email: string; + password: string; + token?: string; +} + +export type ConfigResult = { + success: boolean; + config?: Record; +}; +``` + +### Type Organization +```typescript +// ✅ GOOD - Organize types in dedicated files +// src/types/index.ts +export interface CommandConfig { } +export interface AuthConfig { } +export type ConfigValue = string | number | boolean; +``` + +## Null Safety + +### Function Return Types +```typescript +// ✅ GOOD - Explicit return types +export async function getConfig(): Promise { + return await this.loadFromFile(); +} + +export function createDefaults(): CommandConfig { + return { + region: 'us', + timeout: 30000, + }; +} +``` + +### Null/Undefined Handling +```typescript +// ✅ GOOD - Handle null/undefined explicitly +function processConfig(config: CommandConfig | null): void { + if (!config) { + throw new Error('Configuration is required'); + } + // Process config safely +} +``` + +## Error Handling Types + +### Custom Error Classes +```typescript +// ✅ GOOD - Typed error classes +export class ValidationError extends Error { + constructor( + message: string, + public readonly code?: string + ) { + super(message); + this.name = 'ValidationError'; + } +} +``` + +### Error Union Types +```typescript +// ✅ GOOD - Model expected errors +type AuthResult = { + success: true; + data: T; +} | { + success: false; + error: string; +}; +``` + +## Strict Mode Adoption + +### Current Status +- Most packages use `strict: false` for compatibility +- Gradual migration path available +- Team working toward stricter TypeScript + +### Gradual Adoption +```typescript +// ✅ ACCEPTABLE - Comments for known issues +// TODO: Fix type issues in legacy code +const legacyData = unknownData as unknown; +``` + +## Package-Specific Patterns + +### Command Packages (auth, config) +- Extend `@oclif/core` Command +- Define command flags with `static flags` +- Use @oclif/core flag utilities +- Define command-specific types + +### Library Packages (command, utilities) +- No OCLIF dependencies +- Pure TypeScript interfaces +- Consumed by command packages +- Focus on type safety for exports + +### Main Package (contentstack) +- Aggregates command plugins +- May have common types +- Shared interfaces for plugin integration + +## Export Patterns + +### Package Exports (lib/index.js) +```typescript +// ✅ GOOD - Barrel exports for libraries +export { Command } from './command'; +export { loadConfig } from './config'; +export type { CommandConfig, AuthOptions } from './types'; +``` + +### Entry Points +- Libraries export from `lib/index.js` +- Commands export directly as default classes +- Type definitions included via `types` field in package.json diff --git a/.cursor/skills/SKILL.md b/.cursor/skills/SKILL.md new file mode 100644 index 000000000..db406d53e --- /dev/null +++ b/.cursor/skills/SKILL.md @@ -0,0 +1,32 @@ +--- +name: contentstack-cli-skills +description: Collection of project-specific skills for Contentstack CLI plugins monorepo development. Use when working with CLI commands, testing, framework utilities, or reviewing code changes. +--- + +# Contentstack CLI Skills + +Project-specific skills for the pnpm monorepo containing 12 CLI plugin packages. + +## Skills Overview + +| Skill | Purpose | Trigger | +|-------|---------|---------| +| **testing** | Testing patterns, TDD workflow, and test automation for CLI development | When writing tests or debugging test failures | +| **framework** | Core utilities, configuration, logging, and framework patterns | When working with utilities, config, or error handling | +| **contentstack-cli** | CLI commands, OCLIF patterns, authentication and configuration workflows | When implementing commands or integrating APIs | +| **code-review** | PR review guidelines and monorepo-aware checks | When reviewing code or pull requests | + +## Quick Links + +- **[Testing Skill](./testing/SKILL.md)** — TDD patterns, test structure, mocking strategies +- **[Framework Skill](./framework/SKILL.md)** — Utilities, configuration, logging, error handling +- **[Contentstack CLI Skill](./contentstack-cli/SKILL.md)** — Command development, API integration, auth/config patterns +- **[Code Review Skill](./code-review/SKILL.md)** — Review checklist with monorepo awareness + +## Repository Context + +- **Monorepo**: 12 pnpm workspace packages under `packages/` (all CLI plugins for content management) +- **Tech Stack**: TypeScript, OCLIF v4, Mocha+Chai, pnpm workspaces +- **Packages**: `@contentstack/cli-cm-*` scope (import, export, audit, bootstrap, branches, bulk-publish, clone, export-to-csv, import-setup, migration, seed, variants) +- **Dependencies**: All plugins depend on `@contentstack/cli-command` and `@contentstack/cli-utilities` +- **Build**: TypeScript → `lib/` directories, OCLIF manifest generation per plugin diff --git a/.cursor/skills/code-review/SKILL.md b/.cursor/skills/code-review/SKILL.md new file mode 100644 index 000000000..bc647259c --- /dev/null +++ b/.cursor/skills/code-review/SKILL.md @@ -0,0 +1,77 @@ +--- +name: code-review +description: Automated PR review checklist covering security, performance, architecture, and code quality. Use when reviewing pull requests, examining code changes, or performing code quality assessments. +--- + +# Code Review Skill + +## Quick Reference + +For comprehensive review guidelines, see: +- **[Code Review Checklist](./references/code-review-checklist.md)** - Complete PR review guidelines with severity levels and checklists + +## Review Process + +### Severity Levels +- 🔴 **Critical**: Must fix before merge (security, correctness, breaking changes) +- 🟡 **Important**: Should fix (performance, maintainability, best practices) +- 🟢 **Suggestion**: Consider improving (style, optimization, readability) + +### Quick Review Categories + +1. **Security** - No hardcoded secrets, input validation, secure error handling +2. **Correctness** - Logic validation, error scenarios, data integrity +3. **Architecture** - Code organization, design patterns, modularity +4. **Performance** - Efficiency, resource management, concurrency +5. **Testing** - Test coverage, quality tests, TDD compliance +6. **Conventions** - TypeScript standards, code style, documentation +7. **Monorepo** - Cross-package imports, workspace dependencies, manifest validity + +## Quick Checklist Template + +```markdown +## Security Review +- [ ] No hardcoded secrets or tokens +- [ ] Input validation present +- [ ] Error handling secure (no sensitive data in logs) + +## Correctness Review +- [ ] Logic correctly implemented +- [ ] Edge cases handled +- [ ] Error scenarios covered +- [ ] Async/await chains correct + +## Architecture Review +- [ ] Proper code organization +- [ ] Design patterns followed +- [ ] Good modularity +- [ ] No circular dependencies + +## Performance Review +- [ ] Efficient implementation +- [ ] No unnecessary API calls +- [ ] Memory leaks avoided +- [ ] Concurrency handled correctly + +## Testing Review +- [ ] Adequate test coverage (80%+) +- [ ] Quality tests (not just passing) +- [ ] TDD compliance +- [ ] Both success and failure paths tested + +## Code Conventions +- [ ] TypeScript strict mode +- [ ] Consistent naming conventions +- [ ] No unused imports or variables +- [ ] Documentation adequate + +## Monorepo Checks +- [ ] Cross-package imports use published names +- [ ] Workspace dependencies declared correctly +- [ ] OCLIF manifest updated if commands changed +- [ ] No breaking changes to exported APIs +``` + +## Usage + +Use the comprehensive checklist guide for detailed review guidelines, common issues, severity assessment, and best practices for code quality in the Contentstack CLI monorepo. diff --git a/.cursor/skills/code-review/references/code-review-checklist.md b/.cursor/skills/code-review/references/code-review-checklist.md new file mode 100644 index 000000000..682cc86a4 --- /dev/null +++ b/.cursor/skills/code-review/references/code-review-checklist.md @@ -0,0 +1,373 @@ +# Code Review Checklist + +Automated PR review guidelines covering security, performance, architecture, and code quality for the Contentstack CLI monorepo. + +## Review Process + +### Severity Levels +- **🔴 Critical** (must fix before merge): + - Security vulnerabilities + - Logic errors causing incorrect behavior + - Breaking API changes + - Hardcoded secrets or credentials + - Data loss scenarios + +- **🟡 Important** (should fix): + - Performance regressions + - Code maintainability issues + - Missing error handling + - Test coverage gaps + - Best practice violations + +- **🟢 Suggestion** (consider improving): + - Code readability improvements + - Minor optimizations + - Documentation enhancements + - Style inconsistencies + +## Security Review + +### Secrets and Credentials +- [ ] No hardcoded API keys, tokens, or passwords +- [ ] No secrets in environment variables exposed in logs +- [ ] No secrets in test data or fixtures +- [ ] Sensitive data not logged or exposed in error messages +- [ ] Config files don't contain real credentials + +### Input Validation +```typescript +// ✅ GOOD - Validate all user input +if (!region || typeof region !== 'string') { + throw new CLIError('Region must be a non-empty string'); +} + +if (!['us', 'eu', 'au'].includes(region)) { + throw new CLIError('Invalid region specified'); +} + +// ❌ BAD - No validation +const result = await client.setRegion(region); +``` + +### Error Handling +- [ ] No sensitive data in error messages +- [ ] Stack traces don't leak system information +- [ ] Error messages are user-friendly +- [ ] All errors properly caught and handled +- [ ] No raw error objects exposed to users + +### Authentication +- [ ] OAuth/token handling is secure +- [ ] No storing plaintext passwords +- [ ] Session tokens validated +- [ ] Auth state properly managed +- [ ] Rate limiting respected + +## Correctness Review + +### Logic Validation +- [ ] Business logic correctly implemented +- [ ] Algorithm is correct for the problem +- [ ] State transitions valid +- [ ] Data types used correctly +- [ ] Comparisons use correct operators (=== not ==) + +### Error Scenarios +- [ ] API failures handled (404, 429, 500, etc.) +- [ ] Network timeouts managed +- [ ] Empty/null responses handled +- [ ] Invalid input rejected +- [ ] Partial failures handled gracefully + +### Async/Await and Promises +```typescript +// ✅ GOOD - Proper async handling +async run(): Promise { + try { + const result = await this.fetchData(); + await this.processData(result); + } catch (error) { + handleAndLogError(error, this.contextDetails); + } +} + +// ❌ BAD - Missing await +async run(): Promise { + const result = this.fetchData(); // Missing await! + await this.processData(result); +} +``` + +### Data Integrity +- [ ] No race conditions +- [ ] State mutations atomic +- [ ] Data validation before mutations +- [ ] Rollback strategy for failures +- [ ] Concurrent operations safe + +## Architecture Review + +### Code Organization +- [ ] Classes/functions have single responsibility +- [ ] No circular dependencies +- [ ] Proper module structure +- [ ] Clear separation of concerns +- [ ] Commands delegate to services/utils + +### Design Patterns +```typescript +// ✅ GOOD - Service layer separation +export default class MyCommand extends BaseCommand { + async run(): Promise { + const service = new MyService(this.contextDetails); + const result = await service.execute(); + } +} + +// ❌ BAD - Logic in command +export default class MyCommand extends BaseCommand { + async run(): Promise { + const data = await client.fetch(); + for (const item of data) { + // Complex business logic here + } + } +} +``` + +### Modularity +- [ ] Services are reusable +- [ ] Utils are generic and testable +- [ ] Dependencies injected +- [ ] No tight coupling +- [ ] Easy to test in isolation + +### Type Safety +- [ ] TypeScript strict mode enabled +- [ ] No `any` types without justification +- [ ] Interfaces defined for contracts +- [ ] Generic types used appropriately +- [ ] Type narrowing correct + +## Performance Review + +### API Calls +- [ ] Rate limiting respected (10 req/sec for Contentstack) +- [ ] No unnecessary API calls in loops +- [ ] Pagination implemented for large datasets +- [ ] Caching used where appropriate +- [ ] Batch operations considered + +### Memory Management +- [ ] No memory leaks in event listeners +- [ ] Large arrays streamed not loaded fully +- [ ] Cleanup in try/finally blocks +- [ ] File handles properly closed +- [ ] Resources released after use + +### Concurrency +```typescript +// ✅ GOOD - Controlled concurrency +const results = await Promise.all( + items.map(item => processItem(item)) +); + +// ❌ BAD - Unbounded concurrency +for (const item of items) { + promises.push(processItem(item)); // No limit! +} +``` + +### Efficiency +- [ ] Algorithms are efficient for scale +- [ ] String concatenation uses proper methods +- [ ] Unnecessary computations avoided +- [ ] Data structures appropriate +- [ ] No repeated lookups without caching + +## Testing Review + +### Coverage +- [ ] 80%+ line coverage achieved +- [ ] 80%+ branch coverage +- [ ] Critical paths fully tested +- [ ] Error paths tested +- [ ] Edge cases included + +### Test Quality +```typescript +// ✅ GOOD - Quality test +it('should throw error when region is empty', () => { + expect(() => validateRegion('')) + .to.throw('Region is required'); +}); + +// ❌ BAD - Weak test +it('should validate region', () => { + validateRegion('us'); // No assertion! +}); +``` + +### Testing Patterns +- [ ] Descriptive test names +- [ ] Arrange-Act-Assert pattern +- [ ] One assertion per test (focus) +- [ ] Mocks properly isolated +- [ ] No test interdependencies + +### TDD Compliance +- [ ] Tests written before implementation +- [ ] All tests pass +- [ ] Code coverage requirements met +- [ ] Tests are maintainable +- [ ] Both success and failure paths covered + +## Code Conventions + +### TypeScript Standards +- [ ] `strict: true` in tsconfig +- [ ] No `any` types (use `unknown` if needed) +- [ ] Proper null/undefined handling +- [ ] Type annotations on public APIs +- [ ] Generics used appropriately + +### Naming Conventions +- [ ] Classes: PascalCase (`MyClass`) +- [ ] Functions: camelCase (`myFunction`) +- [ ] Constants: UPPER_SNAKE_CASE (`MY_CONST`) +- [ ] Booleans start with verb (`isActive`, `hasData`) +- [ ] Descriptive names (not `x`, `temp`, `data`) + +### Code Style +- [ ] No unused imports +- [ ] No unused variables +- [ ] Proper indentation (consistent spacing) +- [ ] Line length reasonable (<100 chars) +- [ ] Imports organized (group by type) + +### Documentation +- [ ] Complex logic documented +- [ ] Public APIs have JSDoc comments +- [ ] Non-obvious decisions explained +- [ ] Examples provided where helpful +- [ ] README updated if needed + +## Monorepo-Specific Checks + +### Cross-Package Imports +```typescript +// ✅ GOOD - Use published package names +import { configHandler } from '@contentstack/cli-utilities'; +import { BaseCommand } from '@contentstack/cli-command'; + +// ❌ BAD - Relative paths across packages +import { configHandler } from '../../../contentstack-utilities/src'; +``` + +### Workspace Dependencies +- [ ] Dependencies declared in correct `package.json` +- [ ] Versions consistent across packages +- [ ] No circular dependencies between packages +- [ ] Shared deps in root if used by multiple packages +- [ ] No installing globally when local version exists + +### OCLIF Configuration +- [ ] Command file paths correct in `package.json` +- [ ] OCLIF manifest regenerated (`pnpm build && pnpm oclif manifest`) +- [ ] New commands registered in plugin list if needed +- [ ] Topic separators consistent (`:`) +- [ ] Command names follow pattern + +### Build and Publishing +- [ ] TypeScript compiles without errors +- [ ] Build output in `lib/` directory +- [ ] No build artifacts committed +- [ ] ESLint passes without warnings +- [ ] Tests pass in CI environment + +## Common Issues to Look For + +### Security +- [ ] Config with default passwords +- [ ] API keys in client-side code +- [ ] SQL injection (N/A here, but parameterization pattern) +- [ ] XSS in CLI output (escape HTML if needed) + +### Performance +- [ ] API calls in loops +- [ ] Synchronous file I/O on large files +- [ ] Memory not released properly +- [ ] Rate limiting ignored + +### Logic +- [ ] Off-by-one errors in loops +- [ ] Wrong comparison operators +- [ ] Async/await chains broken +- [ ] Null/undefined not handled + +### Testing +- [ ] Tests pass locally but fail in CI +- [ ] Mocks not properly restored +- [ ] Race conditions in tests +- [ ] Hardcoded timeouts + +## Review Checklist Template + +```markdown +## Security +- [ ] No hardcoded secrets +- [ ] Input validation present +- [ ] Error handling secure + +## Correctness +- [ ] Logic is correct +- [ ] Edge cases handled +- [ ] Error scenarios covered + +## Architecture +- [ ] Good code organization +- [ ] Design patterns followed +- [ ] Modularity intact + +## Performance +- [ ] Efficient implementation +- [ ] Rate limits respected +- [ ] Memory managed properly + +## Testing +- [ ] Adequate coverage +- [ ] Quality tests +- [ ] Both paths tested + +## Conventions +- [ ] TypeScript standards met +- [ ] Code style consistent +- [ ] Documentation adequate + +## Monorepo +- [ ] Package imports correct +- [ ] Dependencies declared properly +- [ ] Manifest/build updated +- [ ] No breaking changes +``` + +## Approval Criteria + +**APPROVE when:** +- ✅ All 🔴 Critical items addressed +- ✅ Most 🟡 Important items addressed (document exceptions) +- ✅ Code follows team conventions +- ✅ Tests pass and coverage sufficient +- ✅ Monorepo integrity maintained + +**REQUEST CHANGES when:** +- ❌ Any 🔴 Critical issues present +- ❌ Multiple 🟡 Important issues unaddressed +- ❌ Test coverage below 80% +- ❌ Architecture concerns not resolved +- ❌ Breaking changes not documented + +**COMMENT for:** +- 💬 🟢 Suggestions (non-blocking) +- 💬 Questions about implementation +- 💬 Appreciation for good patterns diff --git a/.cursor/skills/contentstack-cli/SKILL.md b/.cursor/skills/contentstack-cli/SKILL.md new file mode 100644 index 000000000..df6691042 --- /dev/null +++ b/.cursor/skills/contentstack-cli/SKILL.md @@ -0,0 +1,178 @@ +--- +name: contentstack-cli +description: Contentstack CLI development patterns, OCLIF commands, API integration, and authentication/configuration workflows. Use when working with Contentstack CLI plugins, OCLIF commands, CLI commands, or Contentstack API integration. +--- + +# Contentstack CLI Development + +## Quick Reference + +For comprehensive patterns, see: +- **[Contentstack Patterns](./references/contentstack-patterns.md)** - Complete CLI commands, API integration, and configuration patterns +- **[Framework Patterns](../framework/references/framework-patterns.md)** - Utilities, configuration, and error handling + +## Key Patterns Summary + +### OCLIF Command Structure +- Extend plugin-specific `BaseCommand` or `Command` from `@contentstack/cli-command` +- Validate flags early: `if (!flags['stack-api-key']) this.error('Stack API key is required')` +- Delegate to services/modules: commands handle CLI, services handle business logic +- Show progress: `cliux.success('✅ Operation completed')` +- Include command examples: `static examples = ['$ csdx cm:stacks:import -k -d ./data', '$ csdx cm:stacks:export -k ']` + +### Command Topics +- CM topic commands: `cm:stacks:import`, `cm:stacks:export`, `cm:stacks:audit`, `cm:stacks:clone`, etc. +- File pattern: `src/commands/cm/stacks/import.ts` → command `cm:stacks:import` +- Plugin structure: Each package defines commands in `oclif.commands` pointing to `./lib/commands` + +### Flag Patterns +```typescript +static flags: FlagInput = { + username: flags.string({ + char: 'u', + description: 'Email address', + required: false + }), + oauth: flags.boolean({ + description: 'Enable SSO', + default: false, + exclusive: ['username', 'password'] + }) +}; +``` + +### Logging and Error Handling +- Use structured logging: `log.debug('Message', { context: 'data' })` +- Include contextDetails: `handleAndLogError(error, { ...this.contextDetails, module: 'auth-login' })` +- User feedback: `cliux.success()`, `cliux.error()`, `throw new CLIError()` + +### I18N Messages +- Store user-facing strings in `messages/*.json` files +- Load with `messageHandler` from utilities +- Example: `messages/en.json` for English strings + +## Command Base Class Pattern + +Each plugin defines its own `BaseCommand` extending `@contentstack/cli-command`: + +```typescript +export abstract class BaseCommand extends Command { + protected sharedConfig = { basePath: process.cwd() }; + + static baseFlags: FlagInput = { + config: Flags.string({ + char: 'c', + description: 'Path to config file', + }), + 'data-dir': Flags.string({ + char: 'd', + description: 'Data directory path', + }), + }; + + async init(): Promise { + await super.init(); + const { args, flags } = await this.parse({ + flags: this.ctor.flags, + args: this.ctor.args, + }); + this.args = args; + this.flags = flags; + } +} +``` + +Specialized base commands extend this for domain-specific concerns (e.g., `AuditBaseCommand` for audit operations). + +## Plugin Development Patterns + +### Import Plugin Example +```typescript +// packages/contentstack-import/src/commands/cm/stacks/import.ts +export default class ImportCommand extends BaseCommand { + static id = 'cm:stacks:import'; + static description = 'Import content into a stack'; + + static flags: FlagInput = { + 'stack-api-key': Flags.string({ + char: 'k', + description: 'Stack API key', + required: true, + }), + 'data-dir': Flags.string({ + char: 'd', + description: 'Directory with import data', + required: true, + }), + }; + + async run(): Promise { + const { flags } = this; + const importService = new ImportService(flags); + await importService.import(); + cliux.success('✅ Import completed'); + } +} +``` + +### Service Layer Pattern +Services encapsulate business logic separate from CLI concerns: + +```typescript +export class ImportService { + async import(): Promise { + await this.validateInput(); + await this.loadData(); + await this.importContent(); + } +} +``` + +### Module Pattern +Complex domains split work across modules: + +```typescript +export class Entries { + async import(entries: any[]): Promise { + for (const entry of entries) { + await this.importEntry(entry); + } + } +} +``` + +## API Integration + +### Management SDK Client +```typescript +import { managementSDKClient } from '@contentstack/cli-utilities'; + +const client = await managementSDKClient({ + host: this.cmaHost, + skipTokenValidity: true +}); + +const stack = client.stack({ api_key: stackApiKey }); +const entries = await stack.entry().query().find(); +``` + +### Error Handling for API Calls +```typescript +try { + const result = await this.client.stack().entry().fetch(); +} catch (error) { + if (error.status === 401) { + throw new CLIError('Authentication failed. Please login again.'); + } else if (error.status === 404) { + throw new CLIError('Entry not found.'); + } + handleAndLogError(error, { + module: 'entry-fetch', + entryId: entryUid + }); +} +``` + +## Usage + +Reference the comprehensive patterns guide above for detailed implementations, examples, and best practices for CLI command development, authentication flows, configuration management, and API integration. diff --git a/.cursor/skills/contentstack-cli/references/contentstack-patterns.md b/.cursor/skills/contentstack-cli/references/contentstack-patterns.md new file mode 100644 index 000000000..2ee74721e --- /dev/null +++ b/.cursor/skills/contentstack-cli/references/contentstack-patterns.md @@ -0,0 +1,476 @@ +# Contentstack CLI Patterns + +Contentstack CLI plugin development patterns, OCLIF commands, API integration, and workflows. + +## OCLIF Command Structure + +### Plugin Base Command Pattern +```typescript +import { BaseCommand } from '../../base-command'; +import { FlagInput, Flags } from '@contentstack/cli-utilities'; +import { cliux, handleAndLogError } from '@contentstack/cli-utilities'; + +export default class ImportCommand extends BaseCommand { + static id = 'cm:stacks:import'; + static description = 'Import content into a stack'; + + static flags: FlagInput = { + 'stack-api-key': Flags.string({ + char: 'k', + description: 'Stack API key', + required: true, + }), + 'data-dir': Flags.string({ + char: 'd', + description: 'Directory with import data', + required: true, + }), + verbose: Flags.boolean({ + char: 'v', + description: 'Show verbose output', + default: false + }) + }; + + static examples = [ + '$ csdx cm:stacks:import -k -d ./data', + '$ csdx cm:stacks:import -k -d ./data --verbose', + ]; + + async run(): Promise { + try { + const { flags: parsedFlags } = await this.parse(ImportCommand); + + // Validate flags + if (!parsedFlags['stack-api-key']) { + this.error('Stack API key is required'); + } + + // Delegate to service + cliux.print('Starting import...', { color: 'blue' }); + const importService = new ImportService(parsedFlags); + const result = await importService.import(); + + cliux.success('✅ Import completed successfully'); + } catch (error) { + handleAndLogError(error, { + module: 'import-command', + stackApiKey: this.flags['stack-api-key'] + }); + } + } +} +``` + +### Command Topics and Naming +Commands are organized by topic hierarchy under `cm`: +- `src/commands/cm/stacks/import.ts` → command `cm:stacks:import` +- `src/commands/cm/stacks/export.ts` → command `cm:stacks:export` +- `src/commands/cm/stacks/audit/index.ts` → command `cm:stacks:audit` +- `src/commands/cm/stacks/audit/fix.ts` → command `cm:stacks:audit:fix` + +### Flag Validation Patterns + +#### Early Validation +```typescript +async run(): Promise { + const { flags } = await this.parse(MyCommand); + + // Validate required flags + if (!flags.region) { + this.error('--region is required'); + } + + // Validate flag values + const validRegions = ['us', 'eu', 'au']; + if (!validRegions.includes(flags.region)) { + this.error(`Region must be one of: ${validRegions.join(', ')}`); + } +} +``` + +#### Exclusive Flags +```typescript +static flags: FlagInput = { + username: flags.string({ + char: 'u', + exclusive: ['oauth'] // Cannot use with oauth flag + }), + oauth: flags.boolean({ + exclusive: ['username', 'password'] + }) +}; +``` + +#### Dependent Flags +```typescript +static flags: FlagInput = { + cma: flags.string({ + dependsOn: ['cda', 'name'] + }), + cda: flags.string({ + dependsOn: ['cma', 'name'] + }) +}; +``` + +## Authentication Commands + +### Login Command +```typescript +export default class LoginCommand extends BaseCommand { + static description = 'User sessions login'; + static aliases = ['login']; + + static flags: FlagInput = { + username: flags.string({ + char: 'u', + description: 'Email address of your Contentstack account', + exclusive: ['oauth'] + }), + password: flags.string({ + char: 'p', + description: 'Password of your Contentstack account', + exclusive: ['oauth'] + }), + oauth: flags.boolean({ + description: 'Enable single sign-on (SSO)', + default: false, + exclusive: ['username', 'password'] + }) + }; + + async run(): Promise { + try { + const managementAPIClient = await managementSDKClient({ + host: this.cmaHost, + skipTokenValidity: true + }); + + const { flags: loginFlags } = await this.parse(LoginCommand); + authHandler.client = managementAPIClient; + + if (loginFlags.oauth) { + log.debug('Starting OAuth flow', this.contextDetails); + oauthHandler.host = this.cmaHost; + await oauthHandler.oauth(); + } else { + const username = loginFlags.username || await interactive.askUsername(); + const password = loginFlags.password || await interactive.askPassword(); + await authHandler.login(username, password); + } + + cliux.success('✅ Authenticated successfully'); + } catch (error) { + handleAndLogError(error, this.contextDetails); + } + } +} +``` + +### Logout Command +```typescript +export default class LogoutCommand extends BaseCommand { + static description = 'Logout from Contentstack'; + + async run(): Promise { + try { + await authHandler.setConfigData('logout'); + cliux.success('✅ Logged out successfully'); + } catch (error) { + handleAndLogError(error, this.contextDetails); + } + } +} +``` + +### Token Management +```typescript +// Add token +export default class TokenAddCommand extends BaseCommand { + static description = 'Add authentication token'; + + static flags: FlagInput = { + email: flags.string({ + char: 'e', + description: 'Email address', + required: true + }), + label: flags.string({ + char: 'l', + description: 'Token label', + required: false + }) + }; + + async run(): Promise { + const { flags } = await this.parse(TokenAddCommand); + // Add token logic + cliux.success('✅ Token added successfully'); + } +} +``` + +## Configuration Commands + +### Config Get Command +```typescript +export default class ConfigGetCommand extends BaseCommand { + static description = 'Get CLI configuration values'; + + async run(): Promise { + try { + const region = configHandler.get('region'); + cliux.print(`Region: ${region}`); + } catch (error) { + handleAndLogError(error, { ...this.contextDetails, module: 'config-get' }); + } + } +} +``` + +### Config Set Command +```typescript +export default class RegionSetCommand extends BaseCommand { + static description = 'Set region for CLI'; + + static args = { + region: args.string({ description: 'Region name (AWS-NA, AWS-EU, etc.)' }) + }; + + static examples = [ + '$ csdx config:set:region', + '$ csdx config:set:region AWS-NA', + '$ csdx config:set:region --cma --cda --ui-host --name "Custom"' + ]; + + async run(): Promise { + try { + const { args, flags } = await this.parse(RegionSetCommand); + + let selectedRegion = args.region; + if (!selectedRegion) { + selectedRegion = await interactive.askRegions(); + } + + const regionDetails = regionHandler.setRegion(selectedRegion); + await authHandler.setConfigData('logout'); // Reset auth on region change + + cliux.success(`✅ Region set to ${regionDetails.name}`); + cliux.print(`CMA host: ${regionDetails.cma}`); + cliux.print(`CDA host: ${regionDetails.cda}`); + } catch (error) { + handleAndLogError(error, { ...this.contextDetails, module: 'config-set-region' }); + } + } +} +``` + +### Config Remove Command +```typescript +export default class ProxyRemoveCommand extends BaseCommand { + static description = 'Remove proxy configuration'; + + async run(): Promise { + try { + configHandler.remove('proxy'); + cliux.success('✅ Proxy configuration removed'); + } catch (error) { + handleAndLogError(error, this.contextDetails); + } + } +} +``` + +## API Integration + +### Using Management SDK Client +```typescript +import { managementSDKClient } from '@contentstack/cli-utilities'; + +// Initialize client +const managementClient = await managementSDKClient({ + host: this.cmaHost, + skipTokenValidity: false +}); + +// Get stack +const stack = managementClient.stack({ api_key: stackApiKey }); + +// Fetch entry +const entry = await stack.entry(entryUid).fetch(); + +// Query entries +const entries = await stack + .entry() + .query({ query: { title: 'My Entry' } }) + .find(); + +// Update entry +const updatedEntry = await stack.entry(entryUid).update({ ...entry }); +``` + +### Error Handling for API Calls +```typescript +try { + const stack = client.stack({ api_key: apiKey }); + const entry = await stack.entry(uid).fetch(); +} catch (error: any) { + if (error.status === 401) { + throw new CLIError('Authentication failed. Please login again.'); + } else if (error.status === 404) { + throw new CLIError(`Entry with UID "${uid}" not found.`); + } else if (error.status === 429) { + throw new CLIError('Rate limited. Please try again later.'); + } + + handleAndLogError(error, { + module: 'entry-service', + entryUid: uid, + stackApiKey: apiKey + }); +} +``` + +## User Input and Interaction + +### Interactive Prompts +```typescript +import { interactive } from '../../utils'; + +// Ask for region selection +const region = await interactive.askRegions(); + +// Ask for username +const username = await interactive.askUsername(); + +// Ask for password +const password = await interactive.askPassword(); + +// Ask custom question +const customResponse = await cliux.prompt('Enter your choice:'); +``` + +### User Feedback +```typescript +// Success message +cliux.success('✅ Operation completed'); + +// Error message +cliux.error('❌ Operation failed'); + +// Info message +cliux.print('Processing...', { color: 'blue' }); + +// Show data +cliux.table([ + { name: 'Alice', region: 'us', status: 'active' }, + { name: 'Bob', region: 'eu', status: 'inactive' } +]); +``` + +## Logging Patterns + +### Structured Logging +```typescript +log.debug('LoginCommand started', this.contextDetails); +log.debug('Management API client initialized', this.contextDetails); +log.debug('Token parsed', { + ...this.contextDetails, + flags: loginFlags +}); + +try { + await this.performOperation(); +} catch (error) { + log.debug('Operation failed', { + ...this.contextDetails, + error: error.message, + errorCode: error.code + }); +} +``` + +### Context Details +The `BaseCommand` provides `contextDetails` with: +```typescript +contextDetails = { + command: 'auth:login', + userId: '12345', + email: 'user@example.com', + sessionId: 'session-123' +}; +``` + +## Messages (i18n) + +### Store User Strings +```json +// messages/en.json +{ + "auth": { + "login": { + "success": "Authentication successful", + "failed": "Authentication failed" + }, + "logout": { + "success": "Logged out successfully" + } + }, + "config": { + "region": { + "set": "Region set to {{name}}" + } + } +} +``` + +### Use Message Handler +```typescript +import { messageHandler } from '@contentstack/cli-utilities'; + +const message = messageHandler.get(['auth', 'login', 'success']); +cliux.success(message); +``` + +## Best Practices + +### Command Organization +```typescript +export default class MyCommand extends BaseCommand { + // 1. Static properties + static description = '...'; + static examples = [...]; + static flags = {...}; + + // 2. Instance variables + private someHelper: Helper; + + // 3. run method + async run(): Promise { + try { + const { flags } = await this.parse(MyCommand); + await this.execute(flags); + } catch (error) { + handleAndLogError(error, this.contextDetails); + } + } + + // 4. Private helper methods + private async execute(flags: any): Promise {} + private validate(input: any): void {} +} +``` + +### Error Messages +- Be specific about what went wrong +- Provide actionable feedback +- Example: "Region must be AWS-NA, AWS-EU, or AWS-AU" +- Not: "Invalid region" + +### Progress Indication +```typescript +cliux.print('🔄 Processing...', { color: 'blue' }); +// ... operation ... +cliux.success('✅ Completed successfully'); +``` diff --git a/.cursor/skills/framework/SKILL.md b/.cursor/skills/framework/SKILL.md new file mode 100644 index 000000000..80be284d9 --- /dev/null +++ b/.cursor/skills/framework/SKILL.md @@ -0,0 +1,142 @@ +--- +name: framework +description: Core utilities, configuration, logging, and framework patterns for CLI development. Use when working with utilities, configuration management, error handling, or core framework components. +--- + +# Framework Patterns + +## Quick Reference + +For comprehensive framework guidance, see: +- **[Framework Patterns](./references/framework-patterns.md)** - Complete utilities, configuration, logging, and framework patterns + +## Core Utilities from @contentstack/cli-utilities + +### Configuration Management +```typescript +import { configHandler } from '@contentstack/cli-utilities'; + +// Get config values +const region = configHandler.get('region'); +const email = configHandler.get('email'); +const authToken = configHandler.get('authenticationMethod'); + +// Set config values +configHandler.set('region', 'us'); +``` + +### Logging Framework +```typescript +import { log } from '@contentstack/cli-utilities'; + +// Use structured logging +log.debug('Debug message', { context: 'data' }); +log.info('Information message', { userId: '123' }); +log.warn('Warning message'); +log.error('Error message', { errorCode: 'ERR_001' }); +``` + +### Error Handling +```typescript +import { handleAndLogError, CLIError } from '@contentstack/cli-utilities'; + +try { + await operation(); +} catch (error) { + handleAndLogError(error, { + module: 'my-command', + command: 'cm:auth:login' + }); +} + +// Or throw CLI errors +throw new CLIError('User-friendly error message'); +``` + +### CLI UX / User Output +```typescript +import { cliux } from '@contentstack/cli-utilities'; + +// Success message +cliux.success('Operation completed successfully'); + +// Error message +cliux.error('Something went wrong'); + +// Print message with color +cliux.print('Processing...', { color: 'blue' }); + +// Prompt user for input +const response = await cliux.prompt('Enter region:'); + +// Show table +cliux.table([ + { name: 'Alice', region: 'us' }, + { name: 'Bob', region: 'eu' } +]); +``` + +### HTTP Client +```typescript +import { httpClient } from '@contentstack/cli-utilities'; + +// Make HTTP requests with built-in error handling +const response = await httpClient.request({ + url: 'https://api.contentstack.io/v3/stacks', + method: 'GET', + headers: { 'Authorization': `Bearer ${token}` } +}); +``` + +## Command Base Class + +```typescript +import { Command } from '@contentstack/cli-command'; + +export default class MyCommand extends Command { + static description = 'My command description'; + + static flags = { + region: flags.string({ + char: 'r', + description: 'Set region' + }) + }; + + async run(): Promise { + const { flags } = await this.parse(MyCommand); + // Command logic here + } +} +``` + +## Error Handling Patterns + +### With Context +```typescript +try { + const result = await this.client.stack().entry().fetch(); +} catch (error) { + handleAndLogError(error, { + module: 'auth-service', + command: 'cm:auth:login', + userId: this.contextDetails.userId, + email: this.contextDetails.email + }); +} +``` + +### Custom Errors +```typescript +if (response.status === 401) { + throw new CLIError('Authentication failed. Please login again.'); +} + +if (response.status === 429) { + throw new CLIError('Rate limited. Please try again later.'); +} +``` + +## Usage + +Reference the comprehensive patterns guide above for detailed implementations of configuration, logging, error handling, utilities, and dependency injection patterns. diff --git a/.cursor/skills/framework/references/framework-patterns.md b/.cursor/skills/framework/references/framework-patterns.md new file mode 100644 index 000000000..8c1d4fc19 --- /dev/null +++ b/.cursor/skills/framework/references/framework-patterns.md @@ -0,0 +1,399 @@ +# Framework Patterns + +Core utilities, configuration, logging, and framework patterns for Contentstack CLI development. + +## Configuration Management + +The `@contentstack/cli-utilities` package exports `configHandler` for centralized configuration access. + +### Using configHandler +```typescript +import { configHandler } from '@contentstack/cli-utilities'; + +// Get config values (no arguments returns all config) +const allConfig = configHandler.get(); + +// Get specific config +const region = configHandler.get('region'); +const email = configHandler.get('email'); +const authToken = configHandler.get('authenticationMethod'); +const userUid = configHandler.get('userUid'); +const oauthOrgUid = configHandler.get('oauthOrgUid'); + +// Set config +configHandler.set('region', 'us'); +configHandler.set('email', 'user@example.com'); +``` + +### Config Keys +- `region` - Current region setting (us, eu, etc.) +- `email` - User email address +- `authenticationMethod` - Auth method used +- `userUid` - User unique identifier +- `oauthOrgUid` - OAuth organization UID +- `authenticationMethod` - Authentication method + +## Logging Framework + +The `@contentstack/cli-utilities` exports a winston-based `log` (v2Logger) for structured logging. + +### Structured Logging +```typescript +import { log } from '@contentstack/cli-utilities'; + +// Debug level +log.debug('Starting operation', { + command: 'cm:auth:login', + timestamp: new Date().toISOString() +}); + +// Info level +log.info('Operation completed', { + itemsProcessed: 100, + duration: 5000 +}); + +// Warn level +log.warn('Deprecated flag used', { + flag: '--old-flag', + alternative: '--new-flag' +}); + +// Error level +log.error('Operation failed', { + errorCode: 'ERR_AUTH_001', + message: 'Invalid credentials' +}); +``` + +### Log Context Creation +```typescript +import { createLogContext } from '@contentstack/cli-utilities'; + +// Create context for logging +const logContext = createLogContext( + command, // command name + module, // module name + authMethod // authentication method +); + +// Use in command +const contextDetails = { + ...logContext, + userId: configHandler.get('userUid'), + email: configHandler.get('email') +}; +``` + +## Error Handling Framework + +The utilities provide error handling functions and error classes. + +### handleAndLogError Function +```typescript +import { handleAndLogError } from '@contentstack/cli-utilities'; + +try { + await risky operation(); +} catch (error) { + handleAndLogError(error, { + module: 'config-set-region', + command: 'cm:config:set:region', + flags: { region: 'eu' } + }); +} +``` + +### CLIError Class +```typescript +import { CLIError } from '@contentstack/cli-utilities'; + +// Throw user-friendly errors +if (!region) { + throw new CLIError('Region is required'); +} + +if (invalidEnvironments.length > 0) { + throw new CLIError(`Invalid environments: ${invalidEnvironments.join(', ')}`); +} +``` + +### Error Context +```typescript +// Include context for debugging +try { + const response = await this.client.fetch(); +} catch (error) { + handleAndLogError(error, { + module: 'asset-service', + command: this.id, + context: { + userId: this.contextDetails.userId, + email: this.contextDetails.email, + region: configHandler.get('region') + } + }); +} +``` + +## CLI UX / User Output + +The `cliux` utility provides user-friendly output functions. + +### Success Messages +```typescript +import { cliux } from '@contentstack/cli-utilities'; + +// Simple success +cliux.success('Configuration updated successfully'); + +// Success with details +cliux.success('Region set to us'); +cliux.success('CMA host: https://api.contentstack.io'); +cliux.success('CDA host: https://cdn.contentstack.io'); +``` + +### Error Messages +```typescript +cliux.error('Authentication failed'); +cliux.error('Invalid region: custom'); +cliux.error('Environment not found or inaccessible'); +``` + +### Print with Color +```typescript +// Blue for info +cliux.print('Processing items...', { color: 'blue' }); + +// Show progress +cliux.print(`Progress: ${completed}/${total} items`, { color: 'blue' }); + +// Status messages +cliux.print('✅ Operation completed', { color: 'green' }); +cliux.print('🔄 Syncing configuration...', { color: 'blue' }); +``` + +### User Input +```typescript +// Prompt for string input +const region = await cliux.prompt('Enter region:'); + +// Prompt with choices (using inquirer) +const response = await cliux.prompt('Select action:', { + choices: ['publish', 'unpublish', 'delete'] +}); +``` + +### Display Tables +```typescript +// Display data in table format +cliux.table([ + { name: 'Alice', region: 'us', status: 'active' }, + { name: 'Bob', region: 'eu', status: 'inactive' } +]); + +// With custom columns +const data = [ + { uid: 'entry-1', title: 'Entry 1', locale: 'en' }, + { uid: 'entry-2', title: 'Entry 2', locale: 'en' } +]; +cliux.table(data); +``` + +## HTTP Client + +The `httpClient` provides HTTP request functionality with error handling. + +### Basic Requests +```typescript +import { httpClient } from '@contentstack/cli-utilities'; + +// GET request +const response = await httpClient.request({ + url: 'https://api.contentstack.io/v3/stacks', + method: 'GET', + headers: { 'Authorization': `Bearer ${token}` } +}); + +// POST request +const postResponse = await httpClient.request({ + url: 'https://api.contentstack.io/v3/stacks', + method: 'POST', + headers: { + 'Authorization': `Bearer ${token}`, + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ name: 'My Stack' }) +}); +``` + +### Error Handling +```typescript +try { + const response = await httpClient.request({ + url: endpoint, + method: 'GET', + headers: getAuthHeaders() + }); +} catch (error: any) { + if (error.status === 429) { + cliux.error('Rate limited. Please try again later.'); + } else if (error.status === 401) { + cliux.error('Authentication failed. Please login again.'); + } else { + handleAndLogError(error, { module: 'http-client' }); + } +} +``` + +## Command Base Class + +Commands should extend `Command` from `@contentstack/cli-command`. + +### Basic Command Structure +```typescript +import { Command } from '@contentstack/cli-command'; +import { FlagInput, args } from '@contentstack/cli-utilities'; + +export default class MyCommand extends Command { + static description = 'Clear description of what this command does'; + + static flags: FlagInput = { + region: flags.string({ + char: 'r', + description: 'Target region (us/eu)', + required: false + }), + verbose: flags.boolean({ + char: 'v', + description: 'Show verbose output', + default: false + }) + }; + + static args = { + name: args.string({ description: 'Name of item', required: false }) + }; + + static examples = [ + '$ csdx my:command', + '$ csdx my:command --region eu' + ]; + + async run(): Promise { + try { + const { args, flags } = await this.parse(MyCommand); + // Validate flags + if (!flags.region) { + this.error('--region is required'); + } + + // Implementation + this.log('Starting operation...'); + // ... perform operation ... + cliux.success('Operation completed'); + } catch (error) { + handleAndLogError(error, { module: 'my-command' }); + } + } +} +``` + +### Command Lifecycle +```typescript +export abstract class BaseCommand extends Command { + public async init(): Promise { + await super.init(); + // Initialize context, config, logging + this.contextDetails = createLogContext( + this.context?.info?.command, + '', + configHandler.get('authenticationMethod') + ); + } + + protected async catch(err: Error & { exitCode?: number }): Promise { + // Custom error handling + return super.catch(err); + } + + protected async finally(_: Error | undefined): Promise { + // Cleanup after command + return super.finally(_); + } +} +``` + +## Authentication Patterns + +### Auth Handler +```typescript +import { authHandler } from '@contentstack/cli-utilities'; + +// Check if authenticated +const isAuthenticated = !!configHandler.get('authenticationMethod'); + +// Get auth token +const token = await authHandler.getToken(); + +// Set config data (e.g., during logout) +await authHandler.setConfigData('logout'); +``` + +### Checking Authentication in Commands +```typescript +if (!configHandler.get('authenticationMethod')) { + throw new CLIError('Authentication required. Please login first.'); +} +``` + +## Common Patterns + +### Error and Success Pattern +```typescript +async run(): Promise { + try { + this.log('Starting operation...'); + const result = await this.performOperation(); + cliux.success(`✅ Success: ${result}`); + } catch (error) { + handleAndLogError(error, { + module: 'my-command', + command: this.id + }); + } +} +``` + +### Progress Reporting Pattern +```typescript +cliux.print('Processing items...', { color: 'blue' }); +let count = 0; +for (const item of items) { + await this.processItem(item); + count++; + cliux.print(`Progress: ${count}/${items.length} items`, { color: 'blue' }); +} +cliux.success(`✅ Processed ${count} items`); +``` + +### Dependency Injection Pattern +```typescript +export class MyService { + constructor( + private configHandler: any, + private logger: any, + private httpClient: any + ) {} + + async execute(): Promise { + this.logger.debug('Starting service'); + const config = this.configHandler.get('region'); + // Use injected dependencies + } +} + +// In command +const service = new MyService(configHandler, log, httpClient); +await service.execute(); +``` diff --git a/.cursor/skills/testing/SKILL.md b/.cursor/skills/testing/SKILL.md new file mode 100644 index 000000000..d53591924 --- /dev/null +++ b/.cursor/skills/testing/SKILL.md @@ -0,0 +1,200 @@ +--- +name: testing +description: Testing patterns, TDD workflow, and test automation for CLI development. Use when writing tests, implementing TDD, setting up test coverage, or debugging test failures. +--- + +# Testing Patterns + +## Quick Reference + +For comprehensive testing guidance, see: +- **[Testing Patterns](./references/testing-patterns.md)** - Complete testing best practices and TDD workflow +- See also `.cursor/rules/testing.mdc` for workspace-wide testing standards + +## TDD Workflow Summary + +**Simple RED-GREEN-REFACTOR:** +1. **RED** → Write failing test +2. **GREEN** → Make it pass with minimal code +3. **REFACTOR** → Improve code quality while keeping tests green + +## Key Testing Rules + +- **80% minimum coverage** (lines, branches, functions) +- **Class-based mocking** (no external libraries; extend and override methods) +- **Never make real API calls** in tests +- **Mock at service boundaries**, not implementation details +- **Test both success and failure paths** +- **Use descriptive test names**: "should [behavior] when [condition]" + +## Quick Test Template + +```typescript +describe('[ServiceName]', () => { + let service: [ServiceName]; + + beforeEach(() => { + service = new [ServiceName](); + }); + + afterEach(() => { + // Clean up any resources + }); + + it('should [expected behavior] when [condition]', async () => { + // Arrange + const input = { /* test data */ }; + + // Act + const result = await service.method(input); + + // Assert + expect(result).to.deep.equal(expectedOutput); + }); + + it('should throw error when [error condition]', async () => { + // Arrange & Act & Assert + await expect(service.failingMethod()) + .to.be.rejectedWith('Expected error message'); + }); +}); +``` + +## Common Mock Patterns + +### Class-Based Mocking +```typescript +// Mock a service by extending it +class MockContentstackClient extends ContentstackClient { + async fetch() { + return mockData; + } +} + +it('should use mocked client', async () => { + const mockClient = new MockContentstackClient(config); + const result = await mockClient.fetch(); + expect(result).to.deep.equal(mockData); +}); +``` + +### Constructor Injection +```typescript +class RateLimiter { + async execute(operation: () => Promise): Promise { + return operation(); + } +} + +class MyService { + constructor(private rateLimiter: RateLimiter) {} + + async doWork() { + return this.rateLimiter.execute(() => this.performWork()); + } +} + +it('should rate limit operations', () => { + const mockLimiter = { execute: () => Promise.resolve('result') }; + const service = new MyService(mockLimiter as any); + // test service behavior +}); +``` + +## Running Tests + +### Run all tests in workspace +```bash +pnpm test +``` + +### Run tests for specific package +```bash +pnpm --filter @contentstack/cli-auth test +pnpm --filter @contentstack/cli-config test +``` + +### Run tests with coverage +```bash +pnpm test:coverage +``` + +### Run tests in watch mode +```bash +pnpm test:watch +``` + +### Run specific test file +```bash +pnpm test -- test/unit/commands/auth/login.test.ts +``` + +## Test Organization + +### File Structure +- Mirror source structure: `test/unit/commands/auth/`, `test/unit/services/`, `test/unit/utils/` +- Use consistent naming: `[module-name].test.ts` +- Integration tests: `test/integration/` + +### Test Data Management +```typescript +// Create mock data factories in test/fixtures/ +const mockAuthToken = { token: 'abc123', expiresAt: Date.now() + 3600000 }; +const mockConfig = { region: 'us', email: 'test@example.com' }; +``` + +## Error Testing + +### Rate Limit Handling +```typescript +it('should handle rate limit errors', async () => { + const error = new Error('Rate limited'); + (error as any).status = 429; + + class MockClient { + fetch() { throw error; } + } + + try { + await new MockClient().fetch(); + expect.fail('Should have thrown'); + } catch (err: any) { + expect(err.status).to.equal(429); + } +}); +``` + +### Validation Error Testing +```typescript +it('should throw validation error for invalid input', () => { + expect(() => service.validateRegion('')) + .to.throw('Region is required'); +}); +``` + +## Coverage and Quality + +### Coverage Requirements +```json +"nyc": { + "check-coverage": true, + "lines": 80, + "functions": 80, + "branches": 80, + "statements": 80 +} +``` + +### Quality Checklist +- [ ] All public methods tested +- [ ] Error paths covered (success + failure) +- [ ] Edge cases included +- [ ] No real API calls +- [ ] Descriptive test names +- [ ] Minimal test setup +- [ ] Tests run < 5s per test file +- [ ] 80%+ coverage achieved + +## Usage + +Reference the comprehensive patterns guide above for detailed test structures, mocking strategies, error testing patterns, and coverage requirements. diff --git a/.cursor/skills/testing/references/testing-patterns.md b/.cursor/skills/testing/references/testing-patterns.md new file mode 100644 index 000000000..fa4d48109 --- /dev/null +++ b/.cursor/skills/testing/references/testing-patterns.md @@ -0,0 +1,358 @@ +# Testing Patterns + +Testing best practices and TDD workflow for Contentstack CLI monorepo development. + +## TDD Workflow + +**Simple RED-GREEN-REFACTOR:** +1. **RED** → Write failing test +2. **GREEN** → Make it pass with minimal code +3. **REFACTOR** → Improve code quality while keeping tests green + +## Test Structure Standards + +### Basic Test Template +```typescript +describe('[ComponentName]', () => { + let component: [ComponentName]; + + beforeEach(() => { + // Setup mocks and test data + component = new [ComponentName](); + }); + + afterEach(() => { + // Clean up resources + }); + + it('should [expected behavior] when [condition]', async () => { + // Arrange + const input = { /* test data */ }; + + // Act + const result = await component.method(input); + + // Assert + expect(result).to.deep.equal(expectedOutput); + }); +}); +``` + +### Command Testing Example +```typescript +import { test } from '@oclif/test'; + +describe('config:set:region', () => { + test + .stdout() + .command(['config:set:region', '--help']) + .it('shows help', ctx => { + expect(ctx.stdout).to.contain('Set CLI region'); + }); + + test + .stdout() + .command(['config:set:region', 'AWS-NA']) + .it('sets region to AWS-NA', ctx => { + expect(ctx.stdout).to.contain('success'); + }); +}); +``` + +### Service Testing Example +```typescript +describe('AuthService', () => { + let authService: AuthService; + let mockConfig: any; + + beforeEach(() => { + mockConfig = { region: 'us', email: 'test@example.com' }; + authService = new AuthService(mockConfig); + }); + + it('should authenticate user with valid credentials', async () => { + const result = await authService.login('test@example.com', 'password'); + expect(result).to.have.property('token'); + }); + + it('should throw error on invalid credentials', async () => { + await expect(authService.login('test@example.com', 'wrong')) + .to.be.rejectedWith('Authentication failed'); + }); +}); +``` + +## Key Testing Rules + +### Coverage Requirements +- **80% minimum** coverage (lines, branches, functions) +- Test both success and failure paths +- Include edge cases and error scenarios + +### Mocking Standards +- **Use class-based mocking** (extend and override methods) +- **Never make real API calls** in tests +- **Mock at service boundaries**, not implementation details +- Clean up resources in `afterEach()` to prevent test pollution + +### Test Patterns +- Use descriptive test names: "should [behavior] when [condition]" +- Keep test setup minimal and focused +- Prefer async/await patterns +- Group related tests in `describe` blocks + +## Common Mock Patterns + +### Service Mocking +```typescript +// Mock a service by extending and overriding methods +class MockContentstackClient { + async fetch() { + return { + uid: 'entry-1', + title: 'Mock Entry', + content_type: 'page' + }; + } +} + +it('should process entry', async () => { + const mockClient = new MockContentstackClient(); + const result = await mockClient.fetch(); + expect(result.uid).to.equal('entry-1'); +}); +``` + +### Dependency Injection Mocking +```typescript +class RateLimiter { + constructor(private maxConcurrent: number = 1) {} + + async execute(operation: () => Promise): Promise { + return operation(); + } +} + +class MyService { + constructor(private rateLimiter: RateLimiter) {} + + async doWork() { + return this.rateLimiter.execute(() => this.performWork()); + } +} + +it('should use rate limiter', async () => { + // Pass in mock with minimal implementation + const mockLimiter = { execute: (fn) => fn() } as any; + const service = new MyService(mockLimiter); + + const result = await service.doWork(); + expect(result).to.exist; +}); +``` + +### API Error Simulation +```typescript +class MockClient { + fetch(endpoint: string) { + if (endpoint === '/rate-limited') { + const error = new Error('Rate limited'); + (error as any).status = 429; + throw error; + } + return Promise.resolve({ data: 'ok' }); + } +} + +it('should handle rate limit errors', async () => { + const client = new MockClient(); + + try { + await client.fetch('/rate-limited'); + expect.fail('Should have thrown'); + } catch (error: any) { + expect(error.status).to.equal(429); + expect(error.message).to.include('Rate limited'); + } +}); +``` + +### Configuration Mocking +```typescript +it('should load config from mock', async () => { + const mockConfig = { + region: 'us', + email: 'test@example.com', + authToken: 'token-123', + get: (key: string) => mockConfig[key as keyof typeof mockConfig] + }; + + const service = new ConfigService(mockConfig); + expect(service.region).to.equal('us'); +}); +``` + +## Error Testing Patterns + +### Rate Limit Handling +```typescript +it('should retry on rate limit error', async () => { + let callCount = 0; + + class MockService { + async call() { + callCount++; + if (callCount === 1) { + const error = new Error('Rate limited'); + (error as any).status = 429; + throw error; + } + return 'success'; + } + } + + const service = new MockService(); + + // First call throws, simulate retry + try { await service.call(); } catch (e) { /* expected */ } + const result = await service.call(); + + expect(result).to.equal('success'); + expect(callCount).to.equal(2); +}); +``` + +### Validation Error Testing +```typescript +it('should throw validation error for invalid input', () => { + class Validator { + validate(region: string): void { + if (!region || region === '') { + throw new Error('Region is required'); + } + } + } + + const validator = new Validator(); + expect(() => validator.validate('')) + .to.throw('Region is required'); +}); +``` + +### Async Error Handling +```typescript +it('should handle async operation failures', async () => { + class FailingService { + async performAsync() { + throw new Error('Operation failed'); + } + } + + const service = new FailingService(); + + try { + await service.performAsync(); + expect.fail('Should have thrown error'); + } catch (error: any) { + expect(error.message).to.include('Operation failed'); + } +}); +``` + +## Test Organization + +### File Structure +- Mirror source structure: `test/unit/services/auth-service.test.ts` +- Use consistent naming: `[module-name].test.ts` +- Group integration tests: `test/integration/` +- Commands: `test/unit/commands/auth/login.test.ts` +- Services: `test/unit/services/config-service.test.ts` +- Utils: `test/unit/utils/region-handler.test.ts` + +### Test Data Management +- Create mock data in test files or in `test/fixtures/` for reuse +- Use realistic test data that matches actual API responses +- Share common mocks across test files in a factory pattern + +### Test Configuration +```javascript +// .mocharc.json +{ + "require": [ + "test/helpers/init.js", + "ts-node/register", + "source-map-support/register" + ], + "recursive": true, + "timeout": 30000, + "spec": "test/**/*.test.ts" +} +``` + +## Monorepo Testing Commands + +### Run all tests across workspace +```bash +pnpm test +``` + +### Run tests for specific package +```bash +pnpm --filter @contentstack/cli-auth test +pnpm --filter @contentstack/cli-config test +pnpm --filter @contentstack/cli-command test +``` + +### Run tests with coverage +```bash +pnpm test:coverage +``` + +### Run tests in watch mode +```bash +pnpm test:watch +``` + +### Run specific test file +```bash +pnpm test -- test/unit/commands/config/set/region.test.ts +``` + +### Run tests matching pattern +```bash +pnpm test -- --grep "should authenticate user" +``` + +## Coverage and Quality + +### Coverage Enforcement +```json +"nyc": { + "check-coverage": true, + "lines": 80, + "functions": 80, + "branches": 80, + "statements": 80 +} +``` + +### Coverage Report Generation +```bash +# Generate coverage reports +pnpm test:coverage + +# HTML report available at coverage/index.html +open coverage/index.html +``` + +### Quality Checklist +- [ ] All public methods tested +- [ ] Error paths covered (success + failure) +- [ ] Edge cases included +- [ ] No real API calls in tests +- [ ] Descriptive test names +- [ ] Minimal test setup (fast to run) +- [ ] Tests complete in < 5 seconds per file +- [ ] 80%+ coverage achieved +- [ ] Mocks properly isolated per test +- [ ] No test pollution (afterEach cleanup) diff --git a/.talismanrc b/.talismanrc index 6cbd26fc6..45de773ac 100644 --- a/.talismanrc +++ b/.talismanrc @@ -1,4 +1,22 @@ fileignoreconfig: - - filename: pnpm-lock.yaml - checksum: 78b7fca30ae03e2570a384c5432c10f0e6b023f492b68929795adcb4613e8673 -version: '1.0' +- filename: pnpm-lock.yaml + checksum: e4c0b8eff5a2fbb954e207e1b341b6fa9e7c838695ccf829158f7203df91e56a +- filename: .cursor/skills/contentstack-cli/SKILL.md + checksum: 45f0d0c81086eaee850311e0caae198cf6dd2a7bc73bd1340b320b15047c6dae +- filename: .cursor/skills/code-review/SKILL.md + checksum: 29d812ac5c2ed4c55490f8d31e15eb592851601a6a141354cb458b1b9f1daa7a +- filename: .cursor/skills/testing/references/testing-patterns.md + checksum: 0a6cb66f27eda46b40508517063a2f43fea1b4b8df878e7ddff404ab7fc126f8 +- filename: .cursor/skills/code-review/references/code-review-checklist.md + checksum: bdf7453f08d7209deaee411f47a1132ee872b28f0eb082563dfe20aa56eab057 +- filename: .cursor/skills/contentstack-cli/references/contentstack-patterns.md + checksum: 9888d481b6a1ae8c7102d9efed0fdbae2b7592f582a62c8bff6deccf03fdf341 +- filename: .cursor/rules/dev-workflow.md + checksum: 3c3a483b44901bb440b4ce311a40d6e8c11decf9795f6d2d1d3a3787aa9981c3 +- filename: .cursor/commands/code-review.md + checksum: a2737c43d58de842cf48c06b0471648a7c38b5fa8854d7c30f3d9258cd8b48f9 +- filename: .cursor/rules/contentstack-plugin.mdc + checksum: 4d41211088c2302a533559bb1e7e80fe69e6980f23c9a2e90b8ea9d03ba3f040 +- filename: .cursor/rules/oclif-commands.mdc + checksum: 8e269309cbfc9687e4a889c4a7983f145e77066d515dae53968d7553ae726b41 +version: "1.0" \ No newline at end of file diff --git a/packages/contentstack-variants/test/unit/import/audiences.test.ts b/packages/contentstack-variants/test/unit/import/audiences.test.ts new file mode 100644 index 000000000..1f7296c1a --- /dev/null +++ b/packages/contentstack-variants/test/unit/import/audiences.test.ts @@ -0,0 +1,118 @@ +import { expect } from '@oclif/test'; +import cloneDeep from 'lodash/cloneDeep'; +import { fancy } from '@contentstack/cli-dev-dependencies'; + +import importConf from '../mock/import-config.json'; +import { Import, ImportConfig } from '../../../src'; + +describe('Audiences Import', () => { + let config: ImportConfig; + let createAudienceCalls: Array<{ name: string }> = []; + + const test = fancy.stdout({ print: process.env.PRINT === 'true' || false }); + + beforeEach(() => { + config = cloneDeep(importConf) as unknown as ImportConfig; + createAudienceCalls = []; + // Audiences uses modules.personalize and region - add them for tests + config.modules.personalize = { + ...(config.modules as any).personalization, + dirName: 'personalize', + baseURL: { + na: 'https://personalization.na-api.contentstack.com', + eu: 'https://personalization.eu-api.contentstack.com', + }, + } as any; + config.region = { name: 'eu' } as any; + config.context = config.context || {}; + }); + + describe('import method - Lytics audience skip', () => { + test + .stub(Import.Audiences.prototype, 'init', async () => {}) + .stub(Import.Audiences.prototype, 'createAudience', (async (payload: any) => { + createAudienceCalls.push({ name: payload.name }); + return { uid: `new-${payload.name.replace(/\s/g, '-')}`, name: payload.name }; + }) as any) + .it('should skip Lytics audiences and not call createAudience for them', async () => { + const audiencesInstance = new Import.Audiences(config); + await audiencesInstance.import(); + + const lyticsNames = createAudienceCalls.filter( + (c) => c.name === 'Lytics Audience' || c.name === 'Lytics Lowercase', + ); + expect(lyticsNames.length).to.equal(0); + }); + + test + .stub(Import.Audiences.prototype, 'init', async () => {}) + .stub(Import.Audiences.prototype, 'createAudience', (async (payload: any) => { + createAudienceCalls.push({ name: payload.name }); + return { uid: `new-${payload.name.replace(/\s/g, '-')}`, name: payload.name }; + }) as any) + .it('should process audiences with undefined source', async () => { + const audiencesInstance = new Import.Audiences(config); + await audiencesInstance.import(); + + const noSourceCall = createAudienceCalls.find((c) => c.name === 'No Source Audience'); + expect(noSourceCall).to.not.be.undefined; + }); + + test + .stub(Import.Audiences.prototype, 'init', async () => {}) + .stub(Import.Audiences.prototype, 'createAudience', (async (payload: any) => { + createAudienceCalls.push({ name: payload.name }); + return { uid: `new-${payload.name.replace(/\s/g, '-')}`, name: payload.name }; + }) as any) + .it('should skip audience with source "lytics" (lowercase)', async () => { + const audiencesInstance = new Import.Audiences(config); + await audiencesInstance.import(); + + const lyticsLowercaseCall = createAudienceCalls.find((c) => c.name === 'Lytics Lowercase'); + expect(lyticsLowercaseCall).to.be.undefined; + }); + + test + .stub(Import.Audiences.prototype, 'init', async () => {}) + .stub(Import.Audiences.prototype, 'createAudience', (async (payload: any) => { + createAudienceCalls.push({ name: payload.name }); + return { uid: `new-uid-${payload.name}`, name: payload.name }; + }) as any) + .it('should call createAudience only for non-Lytics audiences', async () => { + const audiencesInstance = new Import.Audiences(config); + await audiencesInstance.import(); + + // 4 audiences in mock: 2 Lytics (skip), 2 non-Lytics (Contentstack Test, No Source) + expect(createAudienceCalls.length).to.equal(2); + }); + + test + .stub(Import.Audiences.prototype, 'init', async () => {}) + .stub(Import.Audiences.prototype, 'createAudience', (async (payload: any) => { + createAudienceCalls.push({ name: payload.name }); + return { uid: 'new-contentstack-uid', name: payload.name }; + }) as any) + .it('should not add Lytics audiences to audiencesUidMapper', async () => { + const audiencesInstance = new Import.Audiences(config); + await audiencesInstance.import(); + + const mapper = (audiencesInstance as any).audiencesUidMapper; + expect(mapper['lytics-audience-001']).to.be.undefined; + expect(mapper['lytics-lowercase-001']).to.be.undefined; + }); + + test + .stub(Import.Audiences.prototype, 'init', async () => {}) + .stub(Import.Audiences.prototype, 'createAudience', (async (payload: any) => { + createAudienceCalls.push({ name: payload.name }); + return { uid: 'new-contentstack-uid', name: payload.name }; + }) as any) + .it('should add Contentstack audiences to audiencesUidMapper', async () => { + const audiencesInstance = new Import.Audiences(config); + await audiencesInstance.import(); + + const mapper = (audiencesInstance as any).audiencesUidMapper; + expect(mapper['contentstack-audience-001']).to.equal('new-contentstack-uid'); + }); + }); +}); diff --git a/packages/contentstack-variants/test/unit/mock/contents/mapper/personalize/attributes/uid-mapping.json b/packages/contentstack-variants/test/unit/mock/contents/mapper/personalize/attributes/uid-mapping.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/packages/contentstack-variants/test/unit/mock/contents/mapper/personalize/attributes/uid-mapping.json @@ -0,0 +1 @@ +{} diff --git a/packages/contentstack-variants/test/unit/mock/contents/mapper/personalize/audiences/uid-mapping.json b/packages/contentstack-variants/test/unit/mock/contents/mapper/personalize/audiences/uid-mapping.json new file mode 100644 index 000000000..5ef9e31e5 --- /dev/null +++ b/packages/contentstack-variants/test/unit/mock/contents/mapper/personalize/audiences/uid-mapping.json @@ -0,0 +1 @@ +{"contentstack-audience-001":"new-contentstack-uid","no-source-audience-001":"new-contentstack-uid"} \ No newline at end of file diff --git a/packages/contentstack-variants/test/unit/mock/contents/personalize/audiences/audiences.json b/packages/contentstack-variants/test/unit/mock/contents/personalize/audiences/audiences.json new file mode 100644 index 000000000..68e17beaa --- /dev/null +++ b/packages/contentstack-variants/test/unit/mock/contents/personalize/audiences/audiences.json @@ -0,0 +1,44 @@ +[ + { + "uid": "contentstack-audience-001", + "name": "Contentstack Test Audience", + "description": "Audience with rules", + "definition": { + "__type": "RuleCombination", + "combinationType": "AND", + "rules": [ + { + "__type": "Rule", + "attribute": { "__type": "PresetAttributeReference", "ref": "DEVICE_TYPE" }, + "attributeMatchOptions": { "__type": "StringMatchOptions", "value": "MOBILE" }, + "attributeMatchCondition": "STRING_EQUALS", + "invertCondition": false + } + ] + } + }, + { + "uid": "lytics-audience-001", + "name": "Lytics Audience", + "description": "From Lytics", + "slug": "lytics_audience", + "source": "LYTICS" + }, + { + "uid": "lytics-lowercase-001", + "name": "Lytics Lowercase", + "description": "source is lowercase", + "slug": "lytics_lowercase", + "source": "lytics" + }, + { + "uid": "no-source-audience-001", + "name": "No Source Audience", + "description": "Audience without source field", + "definition": { + "__type": "RuleCombination", + "combinationType": "AND", + "rules": [] + } + } +] diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index adfa48ee6..39e262f0f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,22 +17,22 @@ importers: version: 9.1.7 pnpm: specifier: ^10.28.0 - version: 10.32.1 + version: 10.33.0 packages/contentstack-audit: dependencies: '@contentstack/cli-command': specifier: ~2.0.0-beta.5 - version: 2.0.0-beta.5(@types/node@20.19.37) + version: 2.0.0-beta.5(@types/node@20.19.39) '@contentstack/cli-utilities': specifier: ~2.0.0-beta.5 - version: 2.0.0-beta.5(@types/node@20.19.37) + version: 2.0.0-beta.6(@types/node@20.19.39) '@oclif/core': specifier: ^4.3.0 - version: 4.10.2 + version: 4.10.5 '@oclif/plugin-help': specifier: ^6.2.28 - version: 6.2.40 + version: 6.2.44 chalk: specifier: ^5.6.2 version: 5.6.2 @@ -54,7 +54,7 @@ importers: devDependencies: '@oclif/test': specifier: ^4.1.13 - version: 4.1.17(@oclif/core@4.10.2) + version: 4.1.18(@oclif/core@4.10.5) '@types/chai': specifier: ^4.3.20 version: 4.3.20 @@ -66,7 +66,7 @@ importers: version: 10.0.10 '@types/node': specifier: ^20.17.50 - version: 20.19.37 + version: 20.19.39 '@types/uuid': specifier: ^9.0.8 version: 9.0.8 @@ -78,7 +78,7 @@ importers: version: 8.57.1 eslint-config-oclif: specifier: ^6.0.62 - version: 6.0.152(eslint@8.57.1)(typescript@5.9.3) + version: 6.0.157(eslint@8.57.1)(typescript@5.9.3) eslint-config-oclif-typescript: specifier: ^3.1.14 version: 3.1.14(eslint@8.57.1)(typescript@5.9.3) @@ -90,16 +90,16 @@ importers: version: 15.1.0 oclif: specifier: ^4.17.46 - version: 4.22.96(@types/node@20.19.37) + version: 4.23.0(@types/node@20.19.39) shx: specifier: ^0.4.0 version: 0.4.0 sinon: specifier: ^21.0.1 - version: 21.0.3 + version: 21.1.2 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@20.19.37)(typescript@5.9.3) + version: 10.9.2(@types/node@20.19.39)(typescript@5.9.3) typescript: specifier: ^5.8.3 version: 5.9.3 @@ -114,16 +114,16 @@ importers: version: 2.0.0-beta.5(@types/node@18.19.130) '@contentstack/cli-config': specifier: ~2.0.0-beta.6 - version: 2.0.0-beta.6(@types/node@18.19.130) + version: 2.0.0-beta.7(@types/node@18.19.130) '@contentstack/cli-utilities': specifier: ~2.0.0-beta.5 - version: 2.0.0-beta.5(@types/node@18.19.130) + version: 2.0.0-beta.6(@types/node@18.19.130) '@oclif/core': specifier: ^4.3.0 - version: 4.10.2 + version: 4.10.5 '@oclif/plugin-help': specifier: ^6.2.37 - version: 6.2.40 + version: 6.2.44 inquirer: specifier: 12.11.1 version: 12.11.1(@types/node@18.19.130) @@ -136,7 +136,7 @@ importers: devDependencies: '@oclif/test': specifier: ^4.1.13 - version: 4.1.17(@oclif/core@4.10.2) + version: 4.1.18(@oclif/core@4.10.5) '@types/inquirer': specifier: ^9.0.8 version: 9.0.9 @@ -157,7 +157,7 @@ importers: version: 8.57.1 eslint-config-oclif: specifier: ^6.0.62 - version: 6.0.152(eslint@8.57.1)(typescript@5.9.3) + version: 6.0.157(eslint@8.57.1)(typescript@5.9.3) eslint-config-oclif-typescript: specifier: ^3.1.14 version: 3.1.14(eslint@8.57.1)(typescript@5.9.3) @@ -169,7 +169,7 @@ importers: version: 15.1.0 oclif: specifier: ^4.17.46 - version: 4.22.96(@types/node@18.19.130) + version: 4.23.0(@types/node@18.19.130) tmp: specifier: ^0.2.5 version: 0.2.5 @@ -184,16 +184,16 @@ importers: dependencies: '@contentstack/cli-command': specifier: ~2.0.0-beta.5 - version: 2.0.0-beta.5(@types/node@22.19.15) + version: 2.0.0-beta.5(@types/node@22.19.17) '@contentstack/cli-utilities': specifier: ~2.0.0-beta.5 - version: 2.0.0-beta.5(@types/node@22.19.15) + version: 2.0.0-beta.6(@types/node@22.19.17) '@oclif/core': specifier: ^4.3.0 - version: 4.10.2 + version: 4.10.5 '@oclif/plugin-help': specifier: ^6.2.28 - version: 6.2.40 + version: 6.2.44 chalk: specifier: ^5.6.2 version: 5.6.2 @@ -224,7 +224,7 @@ importers: version: 8.57.1 eslint-config-oclif: specifier: ^6.0.62 - version: 6.0.152(eslint@8.57.1)(typescript@4.9.5) + version: 6.0.157(eslint@8.57.1)(typescript@4.9.5) mocha: specifier: 10.8.2 version: 10.8.2 @@ -233,13 +233,13 @@ importers: version: 15.1.0 oclif: specifier: ^4.17.46 - version: 4.22.96(@types/node@22.19.15) + version: 4.23.0(@types/node@22.19.17) sinon: specifier: ^21.0.1 - version: 21.0.3 + version: 21.1.2 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@22.19.15)(typescript@4.9.5) + version: 10.9.2(@types/node@22.19.17)(typescript@4.9.5) typescript: specifier: ^4.9.5 version: 4.9.5 @@ -260,13 +260,13 @@ importers: version: 2.0.0-beta.5(@types/node@18.19.130) '@contentstack/cli-utilities': specifier: ~2.0.0-beta.5 - version: 2.0.0-beta.5(@types/node@18.19.130) + version: 2.0.0-beta.6(@types/node@18.19.130) '@oclif/core': specifier: ^4.3.0 - version: 4.10.2 + version: 4.10.5 '@oclif/plugin-help': specifier: ^6.2.28 - version: 6.2.40 + version: 6.2.44 chalk: specifier: ^5.6.2 version: 5.6.2 @@ -291,7 +291,7 @@ importers: devDependencies: '@oclif/test': specifier: ^4.1.13 - version: 4.1.17(@oclif/core@4.10.2) + version: 4.1.18(@oclif/core@4.10.5) '@types/chai': specifier: ^4.3.0 version: 4.3.20 @@ -306,7 +306,7 @@ importers: version: 10.0.20 '@typescript-eslint/eslint-plugin': specifier: ^5.62.0 - version: 5.62.0(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + version: 5.62.0(@typescript-eslint/parser@8.58.2(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) chai: specifier: ^4.5.0 version: 4.5.0 @@ -315,7 +315,7 @@ importers: version: 8.57.1 eslint-config-oclif: specifier: ^6.0.62 - version: 6.0.152(eslint@8.57.1)(typescript@5.9.3) + version: 6.0.157(eslint@8.57.1)(typescript@5.9.3) mocha: specifier: ^10.8.2 version: 10.8.2 @@ -324,10 +324,10 @@ importers: version: 15.1.0 oclif: specifier: ^4.17.46 - version: 4.22.96(@types/node@18.19.130) + version: 4.23.0(@types/node@18.19.130) sinon: specifier: ^21.0.1 - version: 21.0.3 + version: 21.1.2 ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@18.19.130)(typescript@5.9.3) @@ -339,16 +339,16 @@ importers: dependencies: '@contentstack/cli-command': specifier: ~2.0.0-beta.5 - version: 2.0.0-beta.5(@types/node@22.19.15) + version: 2.0.0-beta.5(@types/node@22.19.17) '@contentstack/cli-utilities': specifier: ~2.0.0-beta.5 - version: 2.0.0-beta.5(@types/node@22.19.15) + version: 2.0.0-beta.6(@types/node@22.19.17) '@contentstack/cli-variants': specifier: ~2.0.0-beta.11 version: link:../contentstack-variants '@oclif/core': specifier: ^4.8.0 - version: 4.10.2 + version: 4.10.5 async: specifier: ^3.2.6 version: 3.2.6 @@ -382,19 +382,19 @@ importers: devDependencies: '@contentstack/cli-auth': specifier: ~2.0.0-beta.9 - version: 2.0.0-beta.9(@types/node@22.19.15) + version: 2.0.0-beta.10(@types/node@22.19.17) '@contentstack/cli-config': specifier: ~2.0.0-beta.5 - version: 2.0.0-beta.5(@types/node@22.19.15) + version: 2.0.0-beta.7(@types/node@22.19.17) '@contentstack/cli-dev-dependencies': specifier: ~2.0.0-beta.0 version: 2.0.0-beta.0 '@oclif/plugin-help': specifier: ^6.2.28 - version: 6.2.40 + version: 6.2.44 '@oclif/test': specifier: ^4.1.13 - version: 4.1.17(@oclif/core@4.10.2) + version: 4.1.18(@oclif/core@4.10.5) '@types/big-json': specifier: ^3.2.5 version: 3.2.5 @@ -427,7 +427,7 @@ importers: version: 8.57.1 eslint-config-oclif: specifier: ^6.0.68 - version: 6.0.152(eslint@8.57.1)(typescript@4.9.5) + version: 6.0.157(eslint@8.57.1)(typescript@4.9.5) mocha: specifier: 10.8.2 version: 10.8.2 @@ -436,7 +436,7 @@ importers: version: 15.1.0 oclif: specifier: ^4.17.46 - version: 4.22.96(@types/node@22.19.15) + version: 4.23.0(@types/node@22.19.17) sinon: specifier: ^17.0.1 version: 17.0.2 @@ -445,7 +445,7 @@ importers: version: 0.5.21 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@22.19.15)(typescript@4.9.5) + version: 10.9.2(@types/node@22.19.17)(typescript@4.9.5) typescript: specifier: ^4.9.5 version: 4.9.5 @@ -454,23 +454,23 @@ importers: dependencies: '@contentstack/cli-command': specifier: ~2.0.0-beta.5 - version: 2.0.0-beta.5(@types/node@20.19.37) + version: 2.0.0-beta.5(@types/node@20.19.39) '@contentstack/cli-utilities': specifier: ~2.0.0-beta.5 - version: 2.0.0-beta.5(@types/node@20.19.37) + version: 2.0.0-beta.6(@types/node@20.19.39) '@oclif/core': specifier: ^4.8.0 - version: 4.10.2 + version: 4.10.5 '@oclif/plugin-help': specifier: ^6.2.32 - version: 6.2.40 + version: 6.2.44 fast-csv: specifier: ^4.3.6 version: 4.3.6 devDependencies: '@oclif/test': specifier: ^4.1.13 - version: 4.1.17(@oclif/core@4.10.2) + version: 4.1.18(@oclif/core@4.10.5) '@types/chai': specifier: ^4.3.20 version: 4.3.20 @@ -482,7 +482,7 @@ importers: version: 10.0.10 '@types/node': specifier: ^20.17.50 - version: 20.19.37 + version: 20.19.39 chai: specifier: ^4.5.0 version: 4.5.0 @@ -491,7 +491,7 @@ importers: version: 8.57.1 eslint-config-oclif: specifier: ^6.0.62 - version: 6.0.152(eslint@8.57.1)(typescript@5.9.3) + version: 6.0.157(eslint@8.57.1)(typescript@5.9.3) eslint-config-oclif-typescript: specifier: ^3.1.14 version: 3.1.14(eslint@8.57.1)(typescript@5.9.3) @@ -506,13 +506,13 @@ importers: version: 15.1.0 oclif: specifier: ^4.17.46 - version: 4.22.96(@types/node@20.19.37) + version: 4.23.0(@types/node@20.19.39) sinon: specifier: ^21.0.1 - version: 21.0.3 + version: 21.1.2 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@20.19.37)(typescript@5.9.3) + version: 10.9.2(@types/node@20.19.39)(typescript@5.9.3) typescript: specifier: ^5.8.3 version: 5.9.3 @@ -527,13 +527,13 @@ importers: version: 2.0.0-beta.5(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-utilities': specifier: ~2.0.0-beta.5 - version: 2.0.0-beta.5(@types/node@14.18.63)(debug@4.4.3) + version: 2.0.0-beta.6(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-variants': specifier: ~2.0.0-beta.11 version: link:../contentstack-variants '@oclif/core': specifier: ^4.3.0 - version: 4.10.2 + version: 4.10.5 big-json: specifier: ^3.2.0 version: 3.2.0 @@ -573,7 +573,7 @@ importers: devDependencies: '@oclif/test': specifier: ^4.1.16 - version: 4.1.17(@oclif/core@4.10.2) + version: 4.1.18(@oclif/core@4.10.5) '@types/big-json': specifier: ^3.2.5 version: 3.2.5 @@ -603,13 +603,13 @@ importers: version: 9.0.8 '@typescript-eslint/eslint-plugin': specifier: ^5.62.0 - version: 5.62.0(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5) + version: 5.62.0(@typescript-eslint/parser@8.58.2(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5) eslint: specifier: ^8.57.1 version: 8.57.1 eslint-config-oclif: specifier: ^6.0.89 - version: 6.0.152(eslint@8.57.1)(typescript@4.9.5) + version: 6.0.157(eslint@8.57.1)(typescript@4.9.5) mocha: specifier: ^10.8.2 version: 10.8.2 @@ -618,7 +618,7 @@ importers: version: 15.1.0 oclif: specifier: ^4.17.46 - version: 4.22.96(@types/node@14.18.63) + version: 4.23.0(@types/node@14.18.63) rewire: specifier: ^9.0.1 version: 9.0.1 @@ -636,10 +636,10 @@ importers: version: 2.0.0-beta.5(@types/node@14.18.63) '@contentstack/cli-utilities': specifier: ~2.0.0-beta.5 - version: 2.0.0-beta.5(@types/node@14.18.63)(debug@4.4.3) + version: 2.0.0-beta.6(@types/node@14.18.63)(debug@4.4.3) '@oclif/core': specifier: ^4.3.0 - version: 4.10.2 + version: 4.10.5 big-json: specifier: ^3.2.0 version: 3.2.0 @@ -697,7 +697,7 @@ importers: version: 9.0.8 '@typescript-eslint/eslint-plugin': specifier: ^5.62.0 - version: 5.62.0(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5) + version: 5.62.0(@typescript-eslint/parser@8.58.2(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5) chai: specifier: ^4.5.0 version: 4.5.0 @@ -706,7 +706,7 @@ importers: version: 8.57.1 eslint-config-oclif: specifier: ^6.0.62 - version: 6.0.152(eslint@8.57.1)(typescript@4.9.5) + version: 6.0.157(eslint@8.57.1)(typescript@4.9.5) mocha: specifier: ^10.8.2 version: 10.8.2 @@ -715,13 +715,13 @@ importers: version: 15.1.0 oclif: specifier: ^4.17.46 - version: 4.22.96(@types/node@14.18.63) + version: 4.23.0(@types/node@14.18.63) rewire: specifier: ^9.0.1 version: 9.0.1 sinon: specifier: ^21.0.1 - version: 21.0.3 + version: 21.1.2 ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@14.18.63)(typescript@4.9.5) @@ -739,13 +739,13 @@ importers: version: 2.0.0-beta.5(@types/node@14.18.63) '@contentstack/cli-utilities': specifier: ~2.0.0-beta.5 - version: 2.0.0-beta.5(@types/node@14.18.63)(debug@4.4.3) + version: 2.0.0-beta.6(@types/node@14.18.63)(debug@4.4.3) '@oclif/core': specifier: ^4.3.0 - version: 4.10.2 + version: 4.10.5 '@oclif/plugin-help': specifier: ^6.2.28 - version: 6.2.40 + version: 6.2.44 async: specifier: ^3.2.6 version: 3.2.6 @@ -773,7 +773,7 @@ importers: devDependencies: '@oclif/test': specifier: ^4.1.13 - version: 4.1.17(@oclif/core@4.10.2) + version: 4.1.18(@oclif/core@4.10.5) '@types/mocha': specifier: ^8.2.3 version: 8.2.3 @@ -788,7 +788,7 @@ importers: version: 8.57.1 eslint-config-oclif: specifier: ^6.0.62 - version: 6.0.152(eslint@8.57.1)(typescript@4.9.5) + version: 6.0.157(eslint@8.57.1)(typescript@4.9.5) jsdoc-to-markdown: specifier: ^8.0.3 version: 8.0.3 @@ -803,10 +803,10 @@ importers: version: 15.1.0 oclif: specifier: ^4.17.46 - version: 4.22.96(@types/node@14.18.63) + version: 4.23.0(@types/node@14.18.63) sinon: specifier: ^21.0.1 - version: 21.0.3 + version: 21.1.2 source-map-support: specifier: ^0.5.21 version: 0.5.21 @@ -827,7 +827,7 @@ importers: version: 2.0.0-beta.5(@types/node@18.19.130) '@contentstack/cli-utilities': specifier: ~2.0.0-beta.5 - version: 2.0.0-beta.5(@types/node@18.19.130) + version: 2.0.0-beta.6(@types/node@18.19.130) inquirer: specifier: 12.11.1 version: 12.11.1(@types/node@18.19.130) @@ -843,7 +843,7 @@ importers: devDependencies: '@oclif/plugin-help': specifier: ^6.2.28 - version: 6.2.40 + version: 6.2.44 '@types/inquirer': specifier: ^9.0.9 version: 9.0.9 @@ -864,13 +864,13 @@ importers: version: 0.2.6 axios: specifier: ^1.13.5 - version: 1.13.6(debug@4.4.3) + version: 1.15.0(debug@4.4.3) eslint: specifier: ^8.57.1 version: 8.57.1 eslint-config-oclif: specifier: ^6.0.137 - version: 6.0.152(eslint@8.57.1)(typescript@5.9.3) + version: 6.0.157(eslint@8.57.1)(typescript@5.9.3) eslint-config-oclif-typescript: specifier: ^3.1.14 version: 3.1.14(eslint@8.57.1)(typescript@5.9.3) @@ -879,10 +879,10 @@ importers: version: 29.7.0(@types/node@18.19.130)(ts-node@8.10.2(typescript@5.9.3)) oclif: specifier: ^4.17.46 - version: 4.22.96(@types/node@18.19.130) + version: 4.23.0(@types/node@18.19.130) ts-jest: specifier: ^29.4.6 - version: 29.4.6(@babel/core@7.29.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.0))(jest-util@29.7.0)(jest@29.7.0(@types/node@18.19.130)(ts-node@8.10.2(typescript@5.9.3)))(typescript@5.9.3) + version: 29.4.9(@babel/core@7.29.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.0))(jest-util@29.7.0)(jest@29.7.0(@types/node@18.19.130)(ts-node@8.10.2(typescript@5.9.3)))(typescript@5.9.3) ts-node: specifier: ^8.10.2 version: 8.10.2(typescript@5.9.3) @@ -894,13 +894,13 @@ importers: dependencies: '@contentstack/cli-utilities': specifier: ~2.0.0-beta.5 - version: 2.0.0-beta.5(@types/node@20.19.37) + version: 2.0.0-beta.6(@types/node@20.19.39) '@oclif/core': specifier: ^4.3.0 - version: 4.10.2 + version: 4.10.5 '@oclif/plugin-help': specifier: ^6.2.28 - version: 6.2.40 + version: 6.2.44 lodash: specifier: ^4.18.1 version: 4.18.1 @@ -916,10 +916,10 @@ importers: version: 2.0.0-beta.0 '@oclif/test': specifier: ^4.1.13 - version: 4.1.17(@oclif/core@4.10.2) + version: 4.1.18(@oclif/core@4.10.5) '@types/node': specifier: ^20.17.50 - version: 20.19.37 + version: 20.19.39 mocha: specifier: ^10.8.2 version: 10.8.2 @@ -928,7 +928,7 @@ importers: version: 15.1.0 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@20.19.37)(typescript@5.9.3) + version: 10.9.2(@types/node@20.19.39)(typescript@5.9.3) typescript: specifier: ^5.8.3 version: 5.9.3 @@ -966,123 +966,123 @@ packages: resolution: {integrity: sha512-0XLrOT4Cm3NEhhiME7l/8LbTXS4KdsbR4dSrY207KNKTcHLLTZ9EXt4ZpgnTfLvWQF3pGP2us4Zi1fYLo0N+Ow==} engines: {node: '>=20.0.0'} - '@aws-sdk/core@3.973.24': - resolution: {integrity: sha512-vvf82RYQu2GidWAuQq+uIzaPz9V0gSCXVqdVzRosgl5rXcspXOpSD3wFreGGW6AYymPr97Z69kjVnLePBxloDw==} + '@aws-sdk/core@3.974.0': + resolution: {integrity: sha512-8j+dMtyDqNXFmi09CBdz8TY6Ltf2jhfHuP6ZvG4zVjndRc6JF0aeBUbRwQLndbptFCsdctRQgdNWecy4TIfXAw==} engines: {node: '>=20.0.0'} - '@aws-sdk/crc64-nvme@3.972.5': - resolution: {integrity: sha512-2VbTstbjKdT+yKi8m7b3a9CiVac+pL/IY2PHJwsaGkkHmuuqkJZIErPck1h6P3T9ghQMLSdMPyW6Qp7Di5swFg==} + '@aws-sdk/crc64-nvme@3.972.7': + resolution: {integrity: sha512-QUagVVBbC8gODCF6e1aV0mE2TXWB9Opz4k8EJFdNrujUVQm5R4AjJa1mpOqzwOuROBzqJU9zawzig7M96L8Ejg==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-env@3.972.22': - resolution: {integrity: sha512-cXp0VTDWT76p3hyK5D51yIKEfpf6/zsUvMfaB8CkyqadJxMQ8SbEeVroregmDlZbtG31wkj9ei0WnftmieggLg==} + '@aws-sdk/credential-provider-env@3.972.26': + resolution: {integrity: sha512-WBHAMxyPdgeJY6ZGLvq9mJwzZ+GaNUROQbfdVshtMsDVBrZTj5ZuFjKclSjSHvKSHJ4Y4O2yvI/aA/hrJbYfng==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-http@3.972.24': - resolution: {integrity: sha512-h694K7+tRuepSRJr09wTvQfaEnjzsKZ5s7fbESrVds02GT/QzViJ94/HCNwM7bUfFxqpPXHxulZfL6Cou0dwPg==} + '@aws-sdk/credential-provider-http@3.972.28': + resolution: {integrity: sha512-+1DwCjjpo1WoiZTN08yGitI3nUwZUSQWVWFrW4C46HqZwACjcUQ7C66tnKPBTVxrEYYDOP11A6Afmu1L6ylt3g==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-ini@3.972.24': - resolution: {integrity: sha512-O46fFmv0RDFWiWEA9/e6oW92BnsyAXuEgTTasxHligjn2RCr9L/DK773m/NoFaL3ZdNAUz8WxgxunleMnHAkeQ==} + '@aws-sdk/credential-provider-ini@3.972.30': + resolution: {integrity: sha512-Fg1oJcoijwOZjTxdbx+ubqbQl8YEQ4Cwhjw6TWzQjuDEvQYNhnCXW2pN7eKtdTrdE4a6+5TVKGSm2I+i2BKIQg==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-login@3.972.24': - resolution: {integrity: sha512-sIk8oa6AzDoUhxsR11svZESqvzGuXesw62Rl2oW6wguZx8i9cdGCvkFg+h5K7iucUZP8wyWibUbJMc+J66cu5g==} + '@aws-sdk/credential-provider-login@3.972.30': + resolution: {integrity: sha512-nchIrrI/7dgjG1bW/DEWOJc00K9n+kkl6B8Mk0KO6d4GfWBOXlVr9uHp7CJR9FIrjmov5SGjHXG2q9XAtkRw6Q==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-node@3.972.25': - resolution: {integrity: sha512-m7dR0Dsva2P+VUpL+VkC0WwiDby5pgmWXkRVDB5rlwv0jXJrQJf7YMtCoM8Wjk0H9jPeCYOxOXXcIgp/qp5Alg==} + '@aws-sdk/credential-provider-node@3.972.31': + resolution: {integrity: sha512-99OHVQ6eZ5DTxiOWgHdjBMvLqv7xoY4jLK6nZ1NcNSQbAnYZkQNIHi/VqInc9fnmg7of9si/z+waE6YL9OQIlw==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-process@3.972.22': - resolution: {integrity: sha512-Os32s8/4gTZjBk5BtoS/cuTILaj+K72d0dVG7TCJX/fC4598cxwLDmf1AEHEpER5oL3K//yETjvFaz0V8oO5Xw==} + '@aws-sdk/credential-provider-process@3.972.26': + resolution: {integrity: sha512-jibxNld3m+vbmQwn98hcQ+fLIVrx3cQuhZlSs1/hix48SjDS5/pjMLwpmtLD/lFnd6ve1AL4o1bZg3X1WRa2SQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-sso@3.972.24': - resolution: {integrity: sha512-PaFv7snEfypU2yXkpvfyWgddEbDLtgVe51wdZlinhc2doubBjUzJZZpgwuF2Jenl1FBydMhNpMjD6SBUM3qdSA==} + '@aws-sdk/credential-provider-sso@3.972.30': + resolution: {integrity: sha512-honYIM17F/+QSWJRE84T4u//ofqEi7rLbnwmIpu7fgFX5PML78wbtdSAy5Xwyve3TLpE9/f9zQx0aBVxSjAOPw==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-web-identity@3.972.24': - resolution: {integrity: sha512-J6H4R1nvr3uBTqD/EeIPAskrBtET4WFfNhpFySr2xW7bVZOXpQfPjrLSIx65jcNjBmLXzWq8QFLdVoGxiGG/SA==} + '@aws-sdk/credential-provider-web-identity@3.972.30': + resolution: {integrity: sha512-CyL4oWUlONQRN2SsYMVrA9Z3i3QfLWTQctI8tuKbjNGCVVDCnJf/yMbSJCOZgpPFRtxh7dgQwvpqwmJm+iytmw==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-bucket-endpoint@3.972.8': - resolution: {integrity: sha512-WR525Rr2QJSETa9a050isktyWi/4yIGcmY3BQ1kpHqb0LqUglQHCS8R27dTJxxWNZvQ0RVGtEZjTCbZJpyF3Aw==} + '@aws-sdk/middleware-bucket-endpoint@3.972.10': + resolution: {integrity: sha512-Vbc2frZH7wXlMNd+ZZSXUEs/l1Sv8Jj4zUnIfwrYF5lwaLdXHZ9xx4U3rjUcaye3HRhFVc+E5DbBxpRAbB16BA==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-expect-continue@3.972.8': - resolution: {integrity: sha512-5DTBTiotEES1e2jOHAq//zyzCjeMB78lEHd35u15qnrid4Nxm7diqIf9fQQ3Ov0ChH1V3Vvt13thOnrACmfGVQ==} + '@aws-sdk/middleware-expect-continue@3.972.10': + resolution: {integrity: sha512-2Yn0f1Qiq/DjxYR3wfI3LokXnjOhFM7Ssn4LTdFDIxRMCE6I32MAsVnhPX1cUZsuVA9tiZtwwhlSLAtFGxAZlQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-flexible-checksums@3.974.4': - resolution: {integrity: sha512-fhCbZXPAyy8btnNbnBlR7Cc1nD54cETSvGn2wey71ehsM89AKPO8Dpco9DBAAgvrUdLrdHQepBXcyX4vxC5OwA==} + '@aws-sdk/middleware-flexible-checksums@3.974.8': + resolution: {integrity: sha512-c+bD9J3f56oOPmmseCfT6PhkykiC5vtq0/ZDaK7U1Da/u/b7ZhhidfTHGnqa1pMCro9ZkM4QBcJ70lP7RgnPWg==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-host-header@3.972.8': - resolution: {integrity: sha512-wAr2REfKsqoKQ+OkNqvOShnBoh+nkPurDKW7uAeVSu6kUECnWlSJiPvnoqxGlfousEY/v9LfS9sNc46hjSYDIQ==} + '@aws-sdk/middleware-host-header@3.972.10': + resolution: {integrity: sha512-IJSsIMeVQ8MMCPbuh1AbltkFhLBLXn7aejzfX5YKT/VLDHn++Dcz8886tXckE+wQssyPUhaXrJhdakO2VilRhg==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-location-constraint@3.972.8': - resolution: {integrity: sha512-KaUoFuoFPziIa98DSQsTPeke1gvGXlc5ZGMhy+b+nLxZ4A7jmJgLzjEF95l8aOQN2T/qlPP3MrAyELm8ExXucw==} + '@aws-sdk/middleware-location-constraint@3.972.10': + resolution: {integrity: sha512-rI3NZvJcEvjoD0+0PI0iUAwlPw2IlSlhyvgBK/3WkKJQE/YiKFedd9dMN2lVacdNxPNhxL/jzQaKQdrGtQagjQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-logger@3.972.8': - resolution: {integrity: sha512-CWl5UCM57WUFaFi5kB7IBY1UmOeLvNZAZ2/OZ5l20ldiJ3TiIz1pC65gYj8X0BCPWkeR1E32mpsCk1L1I4n+lA==} + '@aws-sdk/middleware-logger@3.972.10': + resolution: {integrity: sha512-OOuGvvz1Dm20SjZo5oEBePFqxt5nf8AwkNDSyUHvD9/bfNASmstcYxFAHUowy4n6Io7mWUZ04JURZwSBvyQanQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-recursion-detection@3.972.8': - resolution: {integrity: sha512-BnnvYs2ZEpdlmZ2PNlV2ZyQ8j8AEkMTjN79y/YA475ER1ByFYrkVR85qmhni8oeTaJcDqbx364wDpitDAA/wCA==} + '@aws-sdk/middleware-recursion-detection@3.972.11': + resolution: {integrity: sha512-+zz6f79Kj9V5qFK2P+D8Ehjnw4AhphAlCAsPjUqEcInA9umtSSKMrHbSagEeOIsDNuvVrH98bjRHcyQukTrhaQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-sdk-s3@3.972.24': - resolution: {integrity: sha512-4sXxVC/enYgMkZefNMOzU6C6KtAXEvwVJLgNcUx1dvROH6GvKB5Sm2RGnGzTp0/PwkibIyMw4kOzF8tbLfaBAQ==} + '@aws-sdk/middleware-sdk-s3@3.972.29': + resolution: {integrity: sha512-ayk68penP1WDZmyDZVeUQzq+HI3iDq5xezohUxIQoKFKE0KdCnDcxLCNnLanhBfgQDaKiGHVXhxZMDWJAEEBsQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-ssec@3.972.8': - resolution: {integrity: sha512-wqlK0yO/TxEC2UsY9wIlqeeutF6jjLe0f96Pbm40XscTo57nImUk9lBcw0dPgsm0sppFtAkSlDrfpK+pC30Wqw==} + '@aws-sdk/middleware-ssec@3.972.10': + resolution: {integrity: sha512-Gli9A0u8EVVb+5bFDGS/QbSVg28w/wpEidg1ggVcSj65BDTdGR6punsOcVjqdiu1i42WHWo51MCvARPIIz9juw==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-user-agent@3.972.25': - resolution: {integrity: sha512-QxiMPofvOt8SwSynTOmuZfvvPM1S9QfkESBxB22NMHTRXCJhR5BygLl8IXfC4jELiisQgwsgUby21GtXfX3f/g==} + '@aws-sdk/middleware-user-agent@3.972.30': + resolution: {integrity: sha512-lCz6JfelhjD6Eco1urXM2rOYRaxROSqeoY6IEKx+soegFJOajmIBCMHTAWuJl25Wf9IAST+i0/yOk9G3rMV26A==} engines: {node: '>=20.0.0'} - '@aws-sdk/nested-clients@3.996.14': - resolution: {integrity: sha512-fSESKvh1VbfjtV3QMnRkCPZWkUbQof6T/DOpiLp33yP2wA+rbwwnZeG3XT3Ekljgw2I8X4XaQPnw+zSR8yxJ5Q==} + '@aws-sdk/nested-clients@3.996.20': + resolution: {integrity: sha512-bzPdsNQnCh6TvvUmTHLZlL8qgyME6mNiUErcRMyJPywIl1BEu2VZRShel3mUoSh89bOBEXEWtjocDMolFxd/9A==} engines: {node: '>=20.0.0'} - '@aws-sdk/region-config-resolver@3.972.9': - resolution: {integrity: sha512-eQ+dFU05ZRC/lC2XpYlYSPlXtX3VT8sn5toxN2Fv7EXlMoA2p9V7vUBKqHunfD4TRLpxUq8Y8Ol/nCqiv327Ng==} + '@aws-sdk/region-config-resolver@3.972.12': + resolution: {integrity: sha512-QQI43Mxd53nBij0pm8HXC+t4IOC6gnhhZfzxE0OATQyO6QfPV4e+aTIRRuAJKA6Nig/cR8eLwPryqYTX9ZrjAQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/signature-v4-multi-region@3.996.12': - resolution: {integrity: sha512-abRObSqjVeKUUHIZfAp78PTYrEsxCgVKDs/YET357pzT5C02eDDEvmWyeEC2wglWcYC4UTbBFk22gd2YJUlCQg==} + '@aws-sdk/signature-v4-multi-region@3.996.17': + resolution: {integrity: sha512-qDwhXw+SIM5vMAMgflA8LPRa7xP+/wgXYr++llzCOwp7kkM2v7GGGWzoRW8e1CACaO4ljZd/NSQbsRLKm1sMWw==} engines: {node: '>=20.0.0'} - '@aws-sdk/token-providers@3.1015.0': - resolution: {integrity: sha512-3OSD4y110nisRhHzFOjoEeHU4GQL4KpzkX9PxzWaiZe0Yg2+thZKM0Pn9DjYwezH5JYfh/K++xK/SE0IHGrmCQ==} + '@aws-sdk/token-providers@3.1031.0': + resolution: {integrity: sha512-zj/PvnbQK/2KJNln5K2QRI9HSsy+B4emz2gbQyUHkk6l7Lidu83P/9tfmC2cJXkcC3vdmyKH2DP3Iw/FDfKQuQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/types@3.973.6': - resolution: {integrity: sha512-Atfcy4E++beKtwJHiDln2Nby8W/mam64opFPTiHEqgsthqeydFS1pY+OUlN1ouNOmf8ArPU/6cDS65anOP3KQw==} + '@aws-sdk/types@3.973.8': + resolution: {integrity: sha512-gjlAdtHMbtR9X5iIhVUvbVcy55KnznpC6bkDUWW9z915bi0ckdUr5cjf16Kp6xq0bP5HBD2xzgbL9F9Quv5vUw==} engines: {node: '>=20.0.0'} '@aws-sdk/util-arn-parser@3.972.3': resolution: {integrity: sha512-HzSD8PMFrvgi2Kserxuff5VitNq2sgf3w9qxmskKDiDTThWfVteJxuCS9JXiPIPtmCrp+7N9asfIaVhBFORllA==} engines: {node: '>=20.0.0'} - '@aws-sdk/util-endpoints@3.996.5': - resolution: {integrity: sha512-Uh93L5sXFNbyR5sEPMzUU8tJ++Ku97EY4udmC01nB8Zu+xfBPwpIwJ6F7snqQeq8h2pf+8SGN5/NoytfKgYPIw==} + '@aws-sdk/util-endpoints@3.996.7': + resolution: {integrity: sha512-ty4LQxN1QC+YhUP28NfEgZDEGXkyqOQy+BDriBozqHsrYO4JMgiPhfizqOGF7P+euBTZ5Ez6SKlLAMCLo8tzmw==} engines: {node: '>=20.0.0'} '@aws-sdk/util-locate-window@3.965.5': resolution: {integrity: sha512-WhlJNNINQB+9qtLtZJcpQdgZw3SCDCpXdUJP7cToGwHbCWCnRckGlc6Bx/OhWwIYFNAn+FIydY8SZ0QmVu3xTQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/util-user-agent-browser@3.972.8': - resolution: {integrity: sha512-B3KGXJviV2u6Cdw2SDY2aDhoJkVfY/Q/Trwk2CMSkikE1Oi6gRzxhvhIfiRpHfmIsAhV4EA54TVEX8K6CbHbkA==} + '@aws-sdk/util-user-agent-browser@3.972.10': + resolution: {integrity: sha512-FAzqXvfEssGdSIz8ejatan0bOdx1qefBWKF/gWmVBXIP1HkS7v/wjjaqrAGGKvyihrXTXW00/2/1nTJtxpXz7g==} - '@aws-sdk/util-user-agent-node@3.973.11': - resolution: {integrity: sha512-1qdXbXo2s5MMLpUvw00284LsbhtlQ4ul7Zzdn5n+7p4WVgCMLqhxImpHIrjSoc72E/fyc4Wq8dLtUld2Gsh+lA==} + '@aws-sdk/util-user-agent-node@3.973.16': + resolution: {integrity: sha512-ccvu0FNCI0C6OqmxI/tWn7BD8qGooWuURssiIM+6vbksFO8opXR4JOGtGYPj8QYzN/vfwNYrcK344PPbYuvzRg==} engines: {node: '>=20.0.0'} peerDependencies: aws-crt: '>=1.0.0' @@ -1090,8 +1090,8 @@ packages: aws-crt: optional: true - '@aws-sdk/xml-builder@3.972.15': - resolution: {integrity: sha512-PxMRlCFNiQnke9YR29vjFQwz4jq+6Q04rOVFeTDR2K7Qpv9h9FOWOxG+zJjageimYbWqE3bTuLjmryWHAWbvaA==} + '@aws-sdk/xml-builder@3.972.18': + resolution: {integrity: sha512-BMDNVG1ETXRhl1tnisQiYBef3RShJ1kfZA7x7afivTFMLirfHNTb6U71K569HNXhSXbQZsweHvSDZ6euBw8hPA==} engines: {node: '>=20.0.0'} '@aws/lambda-invoke-store@0.2.4': @@ -1271,40 +1271,36 @@ packages: resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} engines: {node: '>=0.1.90'} - '@contentstack/cli-auth@2.0.0-beta.9': - resolution: {integrity: sha512-BHxs/NqwVx6D/Q99Mtl3smXdMmoCZ62fjWejyfQY/1tIZv7s5uHw8vt3f8EaYDWwdkgkNIeRJ1O1gXnmG922Pw==} + '@contentstack/cli-auth@2.0.0-beta.10': + resolution: {integrity: sha512-yl1gvhgVbkKzQ5XrQstcaoRMnU/1HolnlQh9sSjdluLkfSF04oOpbq/5jb7CZuIVW8Y5dX7jWQDIKLHeYUASMQ==} engines: {node: '>=14.0.0'} '@contentstack/cli-command@2.0.0-beta.5': resolution: {integrity: sha512-fsvawypwNfaje4e0FAe/H6b93GXMnZV5xl8ON99IGRdtJ9RFFHsZG8zbUM89MAm9ivTbpAksJ4zBn4hZHf66iA==} engines: {node: '>=14.0.0'} - '@contentstack/cli-config@2.0.0-beta.5': - resolution: {integrity: sha512-lbfIbUmTC88cm3POoe1uUq+oqLvjFO31/wuHnhObQ1E3ql9Ldrjs8qDcpFArr2QkpS9o3VxM5pDDluDmX8IgXg==} - engines: {node: '>=14.0.0'} - - '@contentstack/cli-config@2.0.0-beta.6': - resolution: {integrity: sha512-wJvxZGSv7PRBEKfm/Jm6iorA+e4q0QVo5NCvn7xWp61aNixs9B53yO0ZwHYd0qi0B+d+H5qlgpm9BMad5EKfRg==} + '@contentstack/cli-config@2.0.0-beta.7': + resolution: {integrity: sha512-Pv5OSERA6z//3Jsz4HwBggr8dnH2gzzF64jSYiN3YAWGHO4c4yzJtFU5/h8rH7g0CA07tEnYj5UoREN0yfs2ag==} engines: {node: '>=14.0.0'} '@contentstack/cli-dev-dependencies@2.0.0-beta.0': resolution: {integrity: sha512-tLP05taIeepvp5Xte2LKDTKeYtDjCxOLlNWzwMFhMFYU1Z7oOgiCu8RVHNz+EkAm5xScKORx1OyEgyNLFoTLBw==} - '@contentstack/cli-utilities@2.0.0-beta.5': - resolution: {integrity: sha512-rURu8H5ZpYlxtpWunQaMHwH3Q0oAbgmqbrnHoFBKZeNSm7BSq3/y9udNWgYzrfyGjVRHetoACL9jsQj1Ayt9Rg==} + '@contentstack/cli-utilities@2.0.0-beta.6': + resolution: {integrity: sha512-x6Sa13oO9MJKMr+sVWFphiRWJZHlxAHQ/yC3QCugKg+rsI6PqEXvSKcsfm/BDhJCXT3cAFOcgk8ojxTkzEhX2Q==} - '@contentstack/management@1.29.1': - resolution: {integrity: sha512-TFzimKEcqLCXxh5GH9QnNCV0Ta0PrsSWMmXtshQYGw7atbtKpQNHhoZqO4ifVoMFlSnSe21MQrsJUoVbigSOSA==} + '@contentstack/management@1.29.2': + resolution: {integrity: sha512-ZTlxhUTlMIX0t3orbh4bJ73KOyC0553CC/1I12GavnOcVEbtJ26YLj7IG20lO4vDo3KjgSs604X+e2yX/0g1aA==} engines: {node: '>=8.0.0'} - '@contentstack/marketplace-sdk@1.5.0': - resolution: {integrity: sha512-n2USMwswXBDtmVOg0t5FUks8X0d49u0UDFSrwxti09X/SONeP0P8wSqIDCjoB2gGRQc6fg/Fg2YPRvejUWeR4A==} + '@contentstack/marketplace-sdk@1.5.1': + resolution: {integrity: sha512-XoQODTWZ4cQeo7iIAcYcYLX9bSHvgeF1J230GTM2dVhN3w9aTylZ35zZttvsa76fDZWgRmZBO5AE99dVVq7xyA==} '@contentstack/utils@1.7.1': resolution: {integrity: sha512-b/0t1malpJeFCNd9+1uN3BuO8mRn2b5+aNtrYEZ6YlSNjYNRu9IjqSxZ5Clhs5267950UV1ayhgFE8z3qre2eQ==} - '@contentstack/utils@1.8.0': - resolution: {integrity: sha512-pqCFbn2dynSCW6LUD2AH74LIy32dxxe52OL+HpUxNVXV5doFyClkFjP9toqdAZ81VbCEaOc4WK+VS/RdtMpxDA==} + '@contentstack/utils@1.9.1': + resolution: {integrity: sha512-THZM0rNuq0uOSKkKnvzp8lsPDvvdKIvJIcMa9JBv4foL9rC8RWkWffa2yMyb+9m/5HZrdAmpEWdubkGwARa8WQ==} '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} @@ -1313,171 +1309,171 @@ packages: '@dabh/diagnostics@2.0.8': resolution: {integrity: sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q==} - '@emnapi/core@1.9.1': - resolution: {integrity: sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==} + '@emnapi/core@1.10.0': + resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} - '@emnapi/runtime@1.9.1': - resolution: {integrity: sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==} + '@emnapi/runtime@1.10.0': + resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} - '@emnapi/wasi-threads@1.2.0': - resolution: {integrity: sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==} + '@emnapi/wasi-threads@1.2.1': + resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} '@es-joy/jsdoccomment@0.50.2': resolution: {integrity: sha512-YAdE/IJSpwbOTiaURNCKECdAwqrJuFiZhylmesBcIRawtYKnBR2wxPhoIewMg+Yu+QuYvHfJNReWpoxGBKOChA==} engines: {node: '>=18'} - '@esbuild/aix-ppc64@0.27.4': - resolution: {integrity: sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==} + '@esbuild/aix-ppc64@0.27.7': + resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.27.4': - resolution: {integrity: sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==} + '@esbuild/android-arm64@0.27.7': + resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.27.4': - resolution: {integrity: sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==} + '@esbuild/android-arm@0.27.7': + resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.27.4': - resolution: {integrity: sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==} + '@esbuild/android-x64@0.27.7': + resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.27.4': - resolution: {integrity: sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==} + '@esbuild/darwin-arm64@0.27.7': + resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.27.4': - resolution: {integrity: sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==} + '@esbuild/darwin-x64@0.27.7': + resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.27.4': - resolution: {integrity: sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==} + '@esbuild/freebsd-arm64@0.27.7': + resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.4': - resolution: {integrity: sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==} + '@esbuild/freebsd-x64@0.27.7': + resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.27.4': - resolution: {integrity: sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==} + '@esbuild/linux-arm64@0.27.7': + resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.27.4': - resolution: {integrity: sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==} + '@esbuild/linux-arm@0.27.7': + resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.27.4': - resolution: {integrity: sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==} + '@esbuild/linux-ia32@0.27.7': + resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.27.4': - resolution: {integrity: sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==} + '@esbuild/linux-loong64@0.27.7': + resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.27.4': - resolution: {integrity: sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==} + '@esbuild/linux-mips64el@0.27.7': + resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.27.4': - resolution: {integrity: sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==} + '@esbuild/linux-ppc64@0.27.7': + resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.27.4': - resolution: {integrity: sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==} + '@esbuild/linux-riscv64@0.27.7': + resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.27.4': - resolution: {integrity: sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==} + '@esbuild/linux-s390x@0.27.7': + resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.27.4': - resolution: {integrity: sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==} + '@esbuild/linux-x64@0.27.7': + resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.27.4': - resolution: {integrity: sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==} + '@esbuild/netbsd-arm64@0.27.7': + resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.4': - resolution: {integrity: sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==} + '@esbuild/netbsd-x64@0.27.7': + resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.27.4': - resolution: {integrity: sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==} + '@esbuild/openbsd-arm64@0.27.7': + resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.4': - resolution: {integrity: sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==} + '@esbuild/openbsd-x64@0.27.7': + resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.27.4': - resolution: {integrity: sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==} + '@esbuild/openharmony-arm64@0.27.7': + resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] - '@esbuild/sunos-x64@0.27.4': - resolution: {integrity: sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==} + '@esbuild/sunos-x64@0.27.7': + resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.27.4': - resolution: {integrity: sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==} + '@esbuild/win32-arm64@0.27.7': + resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.27.4': - resolution: {integrity: sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==} + '@esbuild/win32-ia32@0.27.7': + resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.27.4': - resolution: {integrity: sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==} + '@esbuild/win32-x64@0.27.7': + resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -1762,8 +1758,8 @@ packages: resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} engines: {node: '>=8'} - '@istanbuljs/schema@0.1.3': - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + '@istanbuljs/schema@0.1.6': + resolution: {integrity: sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==} engines: {node: '>=8'} '@jest/console@29.7.0': @@ -1855,8 +1851,8 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@jsdoc/salty@0.2.10': - resolution: {integrity: sha512-VFHSsQAQp8y1NJvAJBpLs9I2shHE6hz9TwukocDObuUgGVAq62yZGbTgJg04Z3Fj0XSMWe0sJqGg5dhKGTV92A==} + '@jsdoc/salty@0.2.12': + resolution: {integrity: sha512-TuB0x50EoAvEX/UEWITd8Mkn3WhiTjSvbTMCLj0BhsQEl5iUzjXdA0bETEVpTk+5TGTLR6QktI9H4hLviVeaAQ==} engines: {node: '>=v12.0.0'} '@napi-rs/wasm-runtime@0.2.12': @@ -1878,28 +1874,28 @@ packages: resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} engines: {node: '>=12.4.0'} - '@oclif/core@4.10.2': - resolution: {integrity: sha512-3GvDh5nqpIE8566qUF5cBHKog9DFV9XgBeuR0nUrz0OMuz2FPYHat1AZHOwyQbvH9OKL4gJNQZHcsDOqDM/FRA==} + '@oclif/core@4.10.5': + resolution: {integrity: sha512-qcdCF7NrdWPfme6Kr34wwljRCXbCVpL1WVxiNy0Ep6vbWKjxAjFQwuhqkoyL0yjI+KdwtLcOCGn5z2yzdijc8w==} engines: {node: '>=18.0.0'} '@oclif/core@4.9.0': resolution: {integrity: sha512-k/ntRgDcUprTT+aaNoF+whk3cY3f9fRD2lkF6ul7JeCUg2MaMXVXZXfbRhJCfsiX51X8/5Pqo0LGdO9SLYXNHg==} engines: {node: '>=18.0.0'} - '@oclif/plugin-help@6.2.40': - resolution: {integrity: sha512-sU/PMrz1LnnnNk4T3qvZU8dTUiSc0MZaL7woh2wfuNSXbCnxicJzx4kX1sYeY6eF0NmqFiYlpNEQJykBG0g1sA==} + '@oclif/plugin-help@6.2.44': + resolution: {integrity: sha512-x03Se2LtlOOlGfTuuubt5C4Z8NHeR4zKXtVnfycuLU+2VOMu2WpsGy9nbs3nYuInuvsIY1BizjVaTjUz060Sig==} engines: {node: '>=18.0.0'} - '@oclif/plugin-not-found@3.2.77': - resolution: {integrity: sha512-bU9lpYYk8aTafGFbsEoj88KLqJGFcY2w84abcuAUHsGgwpGA/G67Z3DwzaSkfuH6HZ58orC3ueEKGCMpF5nUDQ==} + '@oclif/plugin-not-found@3.2.80': + resolution: {integrity: sha512-yTLjWvR1r/Rd/cO2LxHdMCDoL5sQhBYRUcOMCmxZtWVWhx4rAZ8KVUPDVsb+SvjJDV5ADTDBgt1H52fFx7YWqg==} engines: {node: '>=18.0.0'} - '@oclif/plugin-warn-if-update-available@3.1.57': - resolution: {integrity: sha512-y8BiMMiX3gnDO3kSck7R61bB74N8SI38pN9LbpaDlhZcjcN27wuIR5trePFxTxx85iow1YC5qvzYtwUZsDVjXg==} + '@oclif/plugin-warn-if-update-available@3.1.60': + resolution: {integrity: sha512-cRKBZm14IuA6G8W84dfd3iXj3BTAoxQ5o3pUE8DKEQ4n/tVha20t5nkVeD+ISC68e0Fuw5koTMvRwXb1lJSnzg==} engines: {node: '>=18.0.0'} - '@oclif/test@4.1.17': - resolution: {integrity: sha512-OaD6/2vW9MqL58ZtaTGO1wc2vnPxZ/LLN0qp/+HVdMsBt/UDubxZreC3cxGR9rT8SMfyBvGIU8MzmZEBuiikAQ==} + '@oclif/test@4.1.18': + resolution: {integrity: sha512-SIy/8x8OHKh5Z32aS8jpzTDc+FC9531mMyypoH5HiZ0vXNjKJ9+SpbW4nYK2c/X44WcPdmjIImStZ/Wgc2zZnQ==} engines: {node: '>=18.0.0'} peerDependencies: '@oclif/core': '>= 3.0.0' @@ -1965,25 +1961,21 @@ packages: '@sinonjs/fake-timers@11.3.1': resolution: {integrity: sha512-EVJO7nW5M/F5Tur0Rf2z/QoMo+1Ia963RiMtapiQrEWvY0iBUvADo8Beegwjpnle5BHkyHuoxSTW3jF43H1XRA==} - '@sinonjs/fake-timers@15.1.1': - resolution: {integrity: sha512-cO5W33JgAPbOh07tvZjUOJ7oWhtaqGHiZw+11DPbyqh2kHTBc3eF/CjJDeQ4205RLQsX6rxCuYOroFQwl7JDRw==} + '@sinonjs/fake-timers@15.3.2': + resolution: {integrity: sha512-mrn35Jl2pCpns+mE3HaZa1yPN5EYCRgiMI+135COjr2hr8Cls9DXqIZ57vZe2cz7y2XVSq92tcs6kGQcT1J8Rw==} + + '@sinonjs/samsam@10.0.2': + resolution: {integrity: sha512-8lVwD1Df1BmzoaOLhMcGGcz/Jyr5QY2KSB75/YK1QgKzoabTeLdIVyhXNZK9ojfSKSdirbXqdbsXXqP9/Ve8+A==} '@sinonjs/samsam@8.0.3': resolution: {integrity: sha512-hw6HbX+GyVZzmaYNh82Ecj1vdGZrqVIn/keDTg63IgAwiQPO+xCz99uG6Woqgb4tM0mUiFENKZ4cqd7IX94AXQ==} - '@sinonjs/samsam@9.0.3': - resolution: {integrity: sha512-ZgYY7Dc2RW+OUdnZ1DEHg00lhRt+9BjymPKHog4PRFzr1U3MbK57+djmscWyKxzO1qfunHqs4N45WWyKIFKpiQ==} - '@sinonjs/text-encoding@0.7.3': resolution: {integrity: sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA==} deprecated: |- Deprecated: no longer maintained and no longer used by Sinon packages. See https://github.com/sinonjs/nise/issues/243 for replacement details. - '@smithy/abort-controller@4.2.12': - resolution: {integrity: sha512-xolrFw6b+2iYGl6EcOL7IJY71vvyZ0DJ3mcKtpykqPe2uscwtzDZJa1uVQXyP7w9Dd+kGwYnPbMsJrGISKiY/Q==} - engines: {node: '>=18.0.0'} - '@smithy/chunked-blob-reader-native@4.2.3': resolution: {integrity: sha512-jA5k5Udn7Y5717L86h4EIv06wIr3xn8GM1qHRi/Nf31annXcXHJjBKvgztnbn2TxH3xWrPBfgwHsOwZf0UmQWw==} engines: {node: '>=18.0.0'} @@ -1992,56 +1984,56 @@ packages: resolution: {integrity: sha512-St+kVicSyayWQca+I1rGitaOEH6uKgE8IUWoYnnEX26SWdWQcL6LvMSD19Lg+vYHKdT9B2Zuu7rd3i6Wnyb/iw==} engines: {node: '>=18.0.0'} - '@smithy/config-resolver@4.4.13': - resolution: {integrity: sha512-iIzMC5NmOUP6WL6o8iPBjFhUhBZ9pPjpUpQYWMUFQqKyXXzOftbfK8zcQCz/jFV1Psmf05BK5ypx4K2r4Tnwdg==} + '@smithy/config-resolver@4.4.16': + resolution: {integrity: sha512-GFlGPNLZKrGfqWpqVb31z7hvYCA9ZscfX1buYnvvMGcRYsQQnhH+4uN6mWWflcD5jB4OXP/LBrdpukEdjl41tg==} engines: {node: '>=18.0.0'} - '@smithy/core@3.23.12': - resolution: {integrity: sha512-o9VycsYNtgC+Dy3I0yrwCqv9CWicDnke0L7EVOrZtJpjb2t0EjaEofmMrYc0T1Kn3yk32zm6cspxF9u9Bj7e5w==} + '@smithy/core@3.23.15': + resolution: {integrity: sha512-E7GVCgsQttzfujEZb6Qep005wWf4xiL4x06apFEtzQMWYBPggZh/0cnOxPficw5cuK/YjjkehKoIN4YUaSh0UQ==} engines: {node: '>=18.0.0'} - '@smithy/credential-provider-imds@4.2.12': - resolution: {integrity: sha512-cr2lR792vNZcYMriSIj+Um3x9KWrjcu98kn234xA6reOAFMmbRpQMOv8KPgEmLLtx3eldU6c5wALKFqNOhugmg==} + '@smithy/credential-provider-imds@4.2.14': + resolution: {integrity: sha512-Au28zBN48ZAoXdooGUHemuVBrkE+Ie6RPmGNIAJsFqj33Vhb6xAgRifUydZ2aY+M+KaMAETAlKk5NC5h1G7wpg==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-codec@4.2.12': - resolution: {integrity: sha512-FE3bZdEl62ojmy8x4FHqxq2+BuOHlcxiH5vaZ6aqHJr3AIZzwF5jfx8dEiU/X0a8RboyNDjmXjlbr8AdEyLgiA==} + '@smithy/eventstream-codec@4.2.14': + resolution: {integrity: sha512-erZq0nOIpzfeZdCyzZjdJb4nVSKLUmSkaQUVkRGQTXs30gyUGeKnrYEg+Xe1W5gE3aReS7IgsvANwVPxSzY6Pw==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-browser@4.2.12': - resolution: {integrity: sha512-XUSuMxlTxV5pp4VpqZf6Sa3vT/Q75FVkLSpSSE3KkWBvAQWeuWt1msTv8fJfgA4/jcJhrbrbMzN1AC/hvPmm5A==} + '@smithy/eventstream-serde-browser@4.2.14': + resolution: {integrity: sha512-8IelTCtTctWRbb+0Dcy+C0aICh1qa0qWXqgjcXDmMuCvPJRnv26hiDZoAau2ILOniki65mCPKqOQs/BaWvO4CQ==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-config-resolver@4.3.12': - resolution: {integrity: sha512-7epsAZ3QvfHkngz6RXQYseyZYHlmWXSTPOfPmXkiS+zA6TBNo1awUaMFL9vxyXlGdoELmCZyZe1nQE+imbmV+Q==} + '@smithy/eventstream-serde-config-resolver@4.3.14': + resolution: {integrity: sha512-sqHiHpYRYo3FJlaIxD1J8PhbcmJAm7IuM16mVnwSkCToD7g00IBZzKuiLNMGmftULmEUX6/UAz8/NN5uMP8bVA==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-node@4.2.12': - resolution: {integrity: sha512-D1pFuExo31854eAvg89KMn9Oab/wEeJR6Buy32B49A9Ogdtx5fwZPqBHUlDzaCDpycTFk2+fSQgX689Qsk7UGA==} + '@smithy/eventstream-serde-node@4.2.14': + resolution: {integrity: sha512-Ht/8BuGlKfFTy0H3+8eEu0vdpwGztCnaLLXtpXNdQqiR7Hj4vFScU3T436vRAjATglOIPjJXronY+1WxxNLSiw==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-universal@4.2.12': - resolution: {integrity: sha512-+yNuTiyBACxOJUTvbsNsSOfH9G9oKbaJE1lNL3YHpGcuucl6rPZMi3nrpehpVOVR2E07YqFFmtwpImtpzlouHQ==} + '@smithy/eventstream-serde-universal@4.2.14': + resolution: {integrity: sha512-lWyt4T2XQZUZgK3tQ3Wn0w3XBvZsK/vjTuJl6bXbnGZBHH0ZUSONTYiK9TgjTTzU54xQr3DRFwpjmhp0oLm3gg==} engines: {node: '>=18.0.0'} - '@smithy/fetch-http-handler@5.3.15': - resolution: {integrity: sha512-T4jFU5N/yiIfrtrsb9uOQn7RdELdM/7HbyLNr6uO/mpkj1ctiVs7CihVr51w4LyQlXWDpXFn4BElf1WmQvZu/A==} + '@smithy/fetch-http-handler@5.3.17': + resolution: {integrity: sha512-bXOvQzaSm6MnmLaWA1elgfQcAtN4UP3vXqV97bHuoOrHQOJiLT3ds6o9eo5bqd0TJfRFpzdGnDQdW3FACiAVdw==} engines: {node: '>=18.0.0'} - '@smithy/hash-blob-browser@4.2.13': - resolution: {integrity: sha512-YrF4zWKh+ghLuquldj6e/RzE3xZYL8wIPfkt0MqCRphVICjyyjH8OwKD7LLlKpVEbk4FLizFfC1+gwK6XQdR3g==} + '@smithy/hash-blob-browser@4.2.15': + resolution: {integrity: sha512-0PJ4Al3fg2nM4qKrAIxyNcApgqHAXcBkN8FeizOz69z0rb26uZ6lMESYtxegaTlXB5Hj84JfwMPavMrwDMjucA==} engines: {node: '>=18.0.0'} - '@smithy/hash-node@4.2.12': - resolution: {integrity: sha512-QhBYbGrbxTkZ43QoTPrK72DoYviDeg6YKDrHTMJbbC+A0sml3kSjzFtXP7BtbyJnXojLfTQldGdUR0RGD8dA3w==} + '@smithy/hash-node@4.2.14': + resolution: {integrity: sha512-8ZBDY2DD4wr+GGjTpPtiglEsqr0lUP+KHqgZcWczFf6qeZ/YRjMIOoQWVQlmwu7EtxKTd8YXD8lblmYcpBIA1g==} engines: {node: '>=18.0.0'} - '@smithy/hash-stream-node@4.2.12': - resolution: {integrity: sha512-O3YbmGExeafuM/kP7Y8r6+1y0hIh3/zn6GROx0uNlB54K9oihAL75Qtc+jFfLNliTi6pxOAYZrRKD9A7iA6UFw==} + '@smithy/hash-stream-node@4.2.14': + resolution: {integrity: sha512-tw4GANWkZPb6+BdD4Fgucqzey2+r73Z/GRo9zklsCdwrnxxumUV83ZIaBDdudV4Ylazw3EPTiJZhpX42105ruQ==} engines: {node: '>=18.0.0'} - '@smithy/invalid-dependency@4.2.12': - resolution: {integrity: sha512-/4F1zb7Z8LOu1PalTdESFHR0RbPwHd3FcaG1sI3UEIriQTWakysgJr65lc1jj6QY5ye7aFsisajotH6UhWfm/g==} + '@smithy/invalid-dependency@4.2.14': + resolution: {integrity: sha512-c21qJiTSb25xvvOp+H2TNZzPCngrvl5vIPqPB8zQ/DmJF4QWXO19x1dWfMJZ6wZuuWUPPm0gV8C0cU3+ifcWuw==} engines: {node: '>=18.0.0'} '@smithy/is-array-buffer@2.2.0': @@ -2052,76 +2044,76 @@ packages: resolution: {integrity: sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow==} engines: {node: '>=18.0.0'} - '@smithy/md5-js@4.2.12': - resolution: {integrity: sha512-W/oIpHCpWU2+iAkfZYyGWE+qkpuf3vEXHLxQQDx9FPNZTTdnul0dZ2d/gUFrtQ5je1G2kp4cjG0/24YueG2LbQ==} + '@smithy/md5-js@4.2.14': + resolution: {integrity: sha512-V2v0vx+h0iUSNG1Alt+GNBMSLGCrl9iVsdd+Ap67HPM9PN479x12V8LkuMoKImNZxn3MXeuyUjls+/7ZACZghA==} engines: {node: '>=18.0.0'} - '@smithy/middleware-content-length@4.2.12': - resolution: {integrity: sha512-YE58Yz+cvFInWI/wOTrB+DbvUVz/pLn5mC5MvOV4fdRUc6qGwygyngcucRQjAhiCEbmfLOXX0gntSIcgMvAjmA==} + '@smithy/middleware-content-length@4.2.14': + resolution: {integrity: sha512-xhHq7fX4/3lv5NHxLUk3OeEvl0xZ+Ek3qIbWaCL4f9JwgDZEclPBElljaZCAItdGPQl/kSM4LPMOpy1MYgprpw==} engines: {node: '>=18.0.0'} - '@smithy/middleware-endpoint@4.4.27': - resolution: {integrity: sha512-T3TFfUgXQlpcg+UdzcAISdZpj4Z+XECZ/cefgA6wLBd6V4lRi0svN2hBouN/be9dXQ31X4sLWz3fAQDf+nt6BA==} + '@smithy/middleware-endpoint@4.4.30': + resolution: {integrity: sha512-qS2XqhKeXmdZ4nEQ4cOxIczSP/Y91wPAHYuRwmWDCh975B7/57uxsm5d6sisnUThn2u2FwzMdJNM7AbO1YPsPg==} engines: {node: '>=18.0.0'} - '@smithy/middleware-retry@4.4.44': - resolution: {integrity: sha512-Y1Rav7m5CFRPQyM4CI0koD/bXjyjJu3EQxZZhtLGD88WIrBrQ7kqXM96ncd6rYnojwOo/u9MXu57JrEvu/nLrA==} + '@smithy/middleware-retry@4.5.3': + resolution: {integrity: sha512-TE8dJNi6JuxzGSxMCVd3i9IEWDndCl3bmluLsBNDWok8olgj65OfkndMhl9SZ7m14c+C5SQn/PcUmrDl57rSFw==} engines: {node: '>=18.0.0'} - '@smithy/middleware-serde@4.2.15': - resolution: {integrity: sha512-ExYhcltZSli0pgAKOpQQe1DLFBLryeZ22605y/YS+mQpdNWekum9Ujb/jMKfJKgjtz1AZldtwA/wCYuKJgjjlg==} + '@smithy/middleware-serde@4.2.18': + resolution: {integrity: sha512-M6CSgnp3v4tYz9ynj2JHbA60woBZcGqEwNjTKjBsNHPV26R1ZX52+0wW8WsZU18q45jD0tw2wL22S17Ze9LpEw==} engines: {node: '>=18.0.0'} - '@smithy/middleware-stack@4.2.12': - resolution: {integrity: sha512-kruC5gRHwsCOuyCd4ouQxYjgRAym2uDlCvQ5acuMtRrcdfg7mFBg6blaxcJ09STpt3ziEkis6bhg1uwrWU7txw==} + '@smithy/middleware-stack@4.2.14': + resolution: {integrity: sha512-2dvkUKLuFdKsCRmOE4Mn63co0Djtsm+JMh0bYZQupN1pJwMeE8FmQmRLLzzEMN0dnNi7CDCYYH8F0EVwWiPBeA==} engines: {node: '>=18.0.0'} - '@smithy/node-config-provider@4.3.12': - resolution: {integrity: sha512-tr2oKX2xMcO+rBOjobSwVAkV05SIfUKz8iI53rzxEmgW3GOOPOv0UioSDk+J8OpRQnpnhsO3Af6IEBabQBVmiw==} + '@smithy/node-config-provider@4.3.14': + resolution: {integrity: sha512-S+gFjyo/weSVL0P1b9Ts8C/CwIfNCgUPikk3sl6QVsfE/uUuO+QsF+NsE/JkpvWqqyz1wg7HFdiaZuj5CoBMRg==} engines: {node: '>=18.0.0'} - '@smithy/node-http-handler@4.5.0': - resolution: {integrity: sha512-Rnq9vQWiR1+/I6NZZMNzJHV6pZYyEHt2ZnuV3MG8z2NNenC4i/8Kzttz7CjZiHSmsN5frhXhg17z3Zqjjhmz1A==} + '@smithy/node-http-handler@4.5.3': + resolution: {integrity: sha512-lc5jFL++x17sPhIwMWJ3YOnqmSjw/2Po6VLDlUIXvxVWRuJwRXnJ4jOBBLB0cfI5BB5ehIl02Fxr1PDvk/kxDw==} engines: {node: '>=18.0.0'} - '@smithy/property-provider@4.2.12': - resolution: {integrity: sha512-jqve46eYU1v7pZ5BM+fmkbq3DerkSluPr5EhvOcHxygxzD05ByDRppRwRPPpFrsFo5yDtCYLKu+kreHKVrvc7A==} + '@smithy/property-provider@4.2.14': + resolution: {integrity: sha512-WuM31CgfsnQ/10i7NYr0PyxqknD72Y5uMfUMVSniPjbEPceiTErb4eIqJQ+pdxNEAUEWrewrGjIRjVbVHsxZiQ==} engines: {node: '>=18.0.0'} - '@smithy/protocol-http@5.3.12': - resolution: {integrity: sha512-fit0GZK9I1xoRlR4jXmbLhoN0OdEpa96ul8M65XdmXnxXkuMxM0Y8HDT0Fh0Xb4I85MBvBClOzgSrV1X2s1Hxw==} + '@smithy/protocol-http@5.3.14': + resolution: {integrity: sha512-dN5F8kHx8RNU0r+pCwNmFZyz6ChjMkzShy/zup6MtkRmmix4vZzJdW+di7x//b1LiynIev88FM18ie+wwPcQtQ==} engines: {node: '>=18.0.0'} - '@smithy/querystring-builder@4.2.12': - resolution: {integrity: sha512-6wTZjGABQufekycfDGMEB84BgtdOE/rCVTov+EDXQ8NHKTUNIp/j27IliwP7tjIU9LR+sSzyGBOXjeEtVgzCHg==} + '@smithy/querystring-builder@4.2.14': + resolution: {integrity: sha512-XYA5Z0IqTeF+5XDdh4BBmSA0HvbgVZIyv4cmOoUheDNR57K1HgBp9ukUMx3Cr3XpDHHpLBnexPE3LAtDsZkj2A==} engines: {node: '>=18.0.0'} - '@smithy/querystring-parser@4.2.12': - resolution: {integrity: sha512-P2OdvrgiAKpkPNKlKUtWbNZKB1XjPxM086NeVhK+W+wI46pIKdWBe5QyXvhUm3MEcyS/rkLvY8rZzyUdmyDZBw==} + '@smithy/querystring-parser@4.2.14': + resolution: {integrity: sha512-hr+YyqBD23GVvRxGGrcc/oOeNlK3PzT5Fu4dzrDXxzS1LpFiuL2PQQqKPs87M79aW7ziMs+nvB3qdw77SqE7Lw==} engines: {node: '>=18.0.0'} - '@smithy/service-error-classification@4.2.12': - resolution: {integrity: sha512-LlP29oSQN0Tw0b6D0Xo6BIikBswuIiGYbRACy5ujw/JgWSzTdYj46U83ssf6Ux0GyNJVivs2uReU8pt7Eu9okQ==} + '@smithy/service-error-classification@4.2.14': + resolution: {integrity: sha512-vVimoUnGxlx4eLLQbZImdOZFOe+Zh+5ACntv8VxZuGP72LdWu5GV3oEmCahSEReBgRJoWjypFkrehSj7BWx1HQ==} engines: {node: '>=18.0.0'} - '@smithy/shared-ini-file-loader@4.4.7': - resolution: {integrity: sha512-HrOKWsUb+otTeo1HxVWeEb99t5ER1XrBi/xka2Wv6NVmTbuCUC1dvlrksdvxFtODLBjsC+PHK+fuy2x/7Ynyiw==} + '@smithy/shared-ini-file-loader@4.4.9': + resolution: {integrity: sha512-495/V2I15SHgedSJoDPD23JuSfKAp726ZI1V0wtjB07Wh7q/0tri/0e0DLefZCHgxZonrGKt/OCTpAtP1wE1kQ==} engines: {node: '>=18.0.0'} - '@smithy/signature-v4@5.3.12': - resolution: {integrity: sha512-B/FBwO3MVOL00DaRSXfXfa/TRXRheagt/q5A2NM13u7q+sHS59EOVGQNfG7DkmVtdQm5m3vOosoKAXSqn/OEgw==} + '@smithy/signature-v4@5.3.14': + resolution: {integrity: sha512-1D9Y/nmlVjCeSivCbhZ7hgEpmHyY1h0GvpSZt3l0xcD9JjmjVC1CHOozS6+Gh+/ldMH8JuJ6cujObQqfayAVFA==} engines: {node: '>=18.0.0'} - '@smithy/smithy-client@4.12.7': - resolution: {integrity: sha512-q3gqnwml60G44FECaEEsdQMplYhDMZYCtYhMCzadCnRnnHIobZJjegmdoUo6ieLQlPUzvrMdIJUpx6DoPmzANQ==} + '@smithy/smithy-client@4.12.11': + resolution: {integrity: sha512-wzz/Wa1CH/Tlhxh0s4DQPEcXSxSVfJ59AZcUh9Gu0c6JTlKuwGf4o/3P2TExv0VbtPFt8odIBG+eQGK2+vTECg==} engines: {node: '>=18.0.0'} - '@smithy/types@4.13.1': - resolution: {integrity: sha512-787F3yzE2UiJIQ+wYW1CVg2odHjmaWLGksnKQHUrK/lYZSEcy1msuLVvxaR/sI2/aDe9U+TBuLsXnr3vod1g0g==} + '@smithy/types@4.14.1': + resolution: {integrity: sha512-59b5HtSVrVR/eYNei3BUj3DCPKD/G7EtDDe7OEJE7i7FtQFugYo6MxbotS8mVJkLNVf8gYaAlEBwwtJ9HzhWSg==} engines: {node: '>=18.0.0'} - '@smithy/url-parser@4.2.12': - resolution: {integrity: sha512-wOPKPEpso+doCZGIlr+e1lVI6+9VAKfL4kZWFgzVgGWY2hZxshNKod4l2LXS3PRC9otH/JRSjtEHqQ/7eLciRA==} + '@smithy/url-parser@4.2.14': + resolution: {integrity: sha512-p06BiBigJ8bTA3MgnOfCtDUWnAMY0YfedO/GRpmc7p+wg3KW8vbXy1xwSu5ASy0wV7rRYtlfZOIKH4XqfhjSQQ==} engines: {node: '>=18.0.0'} '@smithy/util-base64@4.3.2': @@ -2148,32 +2140,32 @@ packages: resolution: {integrity: sha512-dWU03V3XUprJwaUIFVv4iOnS1FC9HnMHDfUrlNDSh4315v0cWyaIErP8KiqGVbf5z+JupoVpNM7ZB3jFiTejvQ==} engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-browser@4.3.43': - resolution: {integrity: sha512-Qd/0wCKMaXxev/z00TvNzGCH2jlKKKxXP1aDxB6oKwSQthe3Og2dMhSayGCnsma1bK/kQX1+X7SMP99t6FgiiQ==} + '@smithy/util-defaults-mode-browser@4.3.47': + resolution: {integrity: sha512-zlIuXai3/SHjQUQ8y3g/woLvrH573SK2wNjcDaHu5e9VOcC0JwM1MI0Sq0GZJyN3BwSUneIhpjZ18nsiz5AtQw==} engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-node@4.2.47': - resolution: {integrity: sha512-qSRbYp1EQ7th+sPFuVcVO05AE0QH635hycdEXlpzIahqHHf2Fyd/Zl+8v0XYMJ3cgDVPa0lkMefU7oNUjAP+DQ==} + '@smithy/util-defaults-mode-node@4.2.52': + resolution: {integrity: sha512-cQBz8g68Vnw1W2meXlkb3D/hXJU+Taiyj9P8qLJtjREEV9/Td65xi4A/H1sRQ8EIgX5qbZbvdYPKygKLholZ3w==} engines: {node: '>=18.0.0'} - '@smithy/util-endpoints@3.3.3': - resolution: {integrity: sha512-VACQVe50j0HZPjpwWcjyT51KUQ4AnsvEaQ2lKHOSL4mNLD0G9BjEniQ+yCt1qqfKfiAHRAts26ud7hBjamrwig==} + '@smithy/util-endpoints@3.4.1': + resolution: {integrity: sha512-wMxNDZJrgS5mQV9oxCs4TWl5767VMgOfqfZ3JHyCkMtGC2ykW9iPqMvFur695Otcc5yxLG8OKO/80tsQBxrhXg==} engines: {node: '>=18.0.0'} '@smithy/util-hex-encoding@4.2.2': resolution: {integrity: sha512-Qcz3W5vuHK4sLQdyT93k/rfrUwdJ8/HZ+nMUOyGdpeGA1Wxt65zYwi3oEl9kOM+RswvYq90fzkNDahPS8K0OIg==} engines: {node: '>=18.0.0'} - '@smithy/util-middleware@4.2.12': - resolution: {integrity: sha512-Er805uFUOvgc0l8nv0e0su0VFISoxhJ/AwOn3gL2NWNY2LUEldP5WtVcRYSQBcjg0y9NfG8JYrCJaYDpupBHJQ==} + '@smithy/util-middleware@4.2.14': + resolution: {integrity: sha512-1Su2vj9RYNDEv/V+2E+jXkkwGsgR7dc4sfHn9Z7ruzQHJIEni9zzw5CauvRXlFJfmgcqYP8fWa0dkh2Q2YaQyw==} engines: {node: '>=18.0.0'} - '@smithy/util-retry@4.2.12': - resolution: {integrity: sha512-1zopLDUEOwumjcHdJ1mwBHddubYF8GMQvstVCLC54Y46rqoHwlIU+8ZzUeaBcD+WCJHyDGSeZ2ml9YSe9aqcoQ==} + '@smithy/util-retry@4.3.2': + resolution: {integrity: sha512-2+KTsJEwTi63NUv4uR9IQ+IFT1yu6Rf6JuoBK2WKaaJ/TRvOiOVGcXAsEqX/TQN2thR9yII21kPUJq1UV/WI2A==} engines: {node: '>=18.0.0'} - '@smithy/util-stream@4.5.20': - resolution: {integrity: sha512-4yXLm5n/B5SRBR2p8cZ90Sbv4zL4NKsgxdzCzp/83cXw2KxLEumt5p+GAVyRNZgQOSrzXn9ARpO0lUe8XSlSDw==} + '@smithy/util-stream@4.5.23': + resolution: {integrity: sha512-N6on1+ngJ3RznZOnDWNveIwnTSlqxNnXuNAh7ez889ZZaRdXoNRTXKgmYOLe6dB0gCmAVtuRScE1hymQFl4hpg==} engines: {node: '>=18.0.0'} '@smithy/util-uri-escape@4.2.2': @@ -2188,8 +2180,8 @@ packages: resolution: {integrity: sha512-75MeYpjdWRe8M5E3AW0O4Cx3UadweS+cwdXjwYGBW5h/gxxnbeZ877sLPX/ZJA9GVTlL/qG0dXP29JWFCD1Ayw==} engines: {node: '>=18.0.0'} - '@smithy/util-waiter@4.2.13': - resolution: {integrity: sha512-2zdZ9DTHngRtcYxJK1GUDxruNr53kv5W2Lupe0LMU+Imr6ohQg8M2T14MNkj1Y0wS3FFwpgpGQyvuaMF7CiTmQ==} + '@smithy/util-waiter@4.2.16': + resolution: {integrity: sha512-GtclrKoZ3Lt7jPQ7aTIYKfjY92OgceScftVnkTsG8e1KV8rkvZgN+ny6YSRhd9hxB8rZtwVbmln7NTvE5O3GmQ==} engines: {node: '>=18.0.0'} '@smithy/uuid@1.1.2': @@ -2320,11 +2312,11 @@ packages: '@types/node@18.19.130': resolution: {integrity: sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==} - '@types/node@20.19.37': - resolution: {integrity: sha512-8kzdPJ3FsNsVIurqBs7oodNnCEVbni9yUEkaHbgptDACOPW04jimGagZ51E6+lXUwJjgnBw+hyko/lkFWCldqw==} + '@types/node@20.19.39': + resolution: {integrity: sha512-orrrD74MBUyK8jOAD/r0+lfa1I2MO6I+vAkmAWzMYbCcgrN4lCrmK52gRFQq/JRxfYPfonkr4b0jcY7Olqdqbw==} - '@types/node@22.19.15': - resolution: {integrity: sha512-F0R/h2+dsy5wJAUe3tAU6oqa2qbWY5TpNfL/RGmo1y38hiyO1w3x2jPtt76wmuaJI4DQnOBu21cNXQ2STIUUWg==} + '@types/node@22.19.17': + resolution: {integrity: sha512-wGdMcf+vPYM6jikpS/qhg6WiqSV/OhG+jeeHT/KlVqxYfD40iYJf9/AE1uQxVWFvU7MipKRkRv8NSHiCGgPr8Q==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -2399,13 +2391,13 @@ packages: typescript: optional: true - '@typescript-eslint/eslint-plugin@8.57.2': - resolution: {integrity: sha512-NZZgp0Fm2IkD+La5PR81sd+g+8oS6JwJje+aRWsDocxHkjyRw0J5L5ZTlN3LI1LlOcGL7ph3eaIUmTXMIjLk0w==} + '@typescript-eslint/eslint-plugin@8.58.2': + resolution: {integrity: sha512-aC2qc5thQahutKjP+cl8cgN9DWe3ZUqVko30CMSZHnFEHyhOYoZSzkGtAI2mcwZ38xeImDucI4dnqsHiOYuuCw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.57.2 + '@typescript-eslint/parser': ^8.58.2 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' '@typescript-eslint/parser@6.21.0': resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} @@ -2417,18 +2409,18 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.57.2': - resolution: {integrity: sha512-30ScMRHIAD33JJQkgfGW1t8CURZtjc2JpTrq5n2HFhOefbAhb7ucc7xJwdWcrEtqUIYJ73Nybpsggii6GtAHjA==} + '@typescript-eslint/parser@8.58.2': + resolution: {integrity: sha512-/Zb/xaIDfxeJnvishjGdcR4jmr7S+bda8PKNhRGdljDM+elXhlvN0FyPSsMnLmJUrVG9aPO6dof80wjMawsASg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.57.2': - resolution: {integrity: sha512-FuH0wipFywXRTHf+bTTjNyuNQQsQC3qh/dYzaM4I4W0jrCqjCVuUh99+xd9KamUfmCGPvbO8NDngo/vsnNVqgw==} + '@typescript-eslint/project-service@8.58.2': + resolution: {integrity: sha512-Cq6UfpZZk15+r87BkIh5rDpi38W4b+Sjnb8wQCPPDDweS/LRCFjCyViEbzHk5Ck3f2QDfgmlxqSa7S7clDtlfg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' '@typescript-eslint/scope-manager@5.62.0': resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} @@ -2442,15 +2434,15 @@ packages: resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@8.57.2': - resolution: {integrity: sha512-snZKH+W4WbWkrBqj4gUNRIGb/jipDW3qMqVJ4C9rzdFc+wLwruxk+2a5D+uoFcKPAqyqEnSb4l2ULuZf95eSkw==} + '@typescript-eslint/scope-manager@8.58.2': + resolution: {integrity: sha512-SgmyvDPexWETQek+qzZnrG6844IaO02UVyOLhI4wpo82dpZJY9+6YZCKAMFzXb7qhx37mFK1QcPQ18tud+vo6Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.57.2': - resolution: {integrity: sha512-3Lm5DSM+DCowsUOJC+YqHHnKEfFh5CoGkj5Z31NQSNF4l5wdOwqGn99wmwN/LImhfY3KJnmordBq/4+VDe2eKw==} + '@typescript-eslint/tsconfig-utils@8.58.2': + resolution: {integrity: sha512-3SR+RukipDvkkKp/d0jP0dyzuls3DbGmwDpVEc5wqk5f38KFThakqAAO0XMirWAE+kT00oTauTbzMFGPoAzB0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' '@typescript-eslint/type-utils@5.62.0': resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} @@ -2472,12 +2464,12 @@ packages: typescript: optional: true - '@typescript-eslint/type-utils@8.57.2': - resolution: {integrity: sha512-Co6ZCShm6kIbAM/s+oYVpKFfW7LBc6FXoPXjTRQ449PPNBY8U0KZXuevz5IFuuUj2H9ss40atTaf9dlGLzbWZg==} + '@typescript-eslint/type-utils@8.58.2': + resolution: {integrity: sha512-Z7EloNR/B389FvabdGeTo2XMs4W9TjtPiO9DAsmT0yom0bwlPyRjkJ1uCdW1DvrrrYP50AJZ9Xc3sByZA9+dcg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' '@typescript-eslint/types@5.62.0': resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} @@ -2491,8 +2483,8 @@ packages: resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@8.57.2': - resolution: {integrity: sha512-/iZM6FnM4tnx9csuTxspMW4BOSegshwX5oBDznJ7S4WggL7Vczz5d2W11ecc4vRrQMQHXRSxzrCsyG5EsPPTbA==} + '@typescript-eslint/types@8.58.2': + resolution: {integrity: sha512-9TukXyATBQf/Jq9AMQXfvurk+G5R2MwfqQGDR2GzGz28HvY/lXNKGhkY+6IOubwcquikWk5cjlgPvD2uAA7htQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@5.62.0': @@ -2522,11 +2514,11 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.57.2': - resolution: {integrity: sha512-2MKM+I6g8tJxfSmFKOnHv2t8Sk3T6rF20A1Puk0svLK+uVapDZB/4pfAeB7nE83uAZrU6OxW+HmOd5wHVdXwXA==} + '@typescript-eslint/typescript-estree@8.58.2': + resolution: {integrity: sha512-ELGuoofuhhoCvNbQjFFiobFcGgcDCEm0ThWdmO4Z0UzLqPXS3KFvnEZ+SHewwOYHjM09tkzOWXNTv9u6Gqtyuw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' '@typescript-eslint/utils@5.62.0': resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} @@ -2546,12 +2538,12 @@ packages: peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/utils@8.57.2': - resolution: {integrity: sha512-krRIbvPK1ju1WBKIefiX+bngPs+odIQUtR7kymzPfo1POVw3jlF+nLkmexdSSd4UCbDcQn+wMBATOOmpBbqgKg==} + '@typescript-eslint/utils@8.58.2': + resolution: {integrity: sha512-QZfjHNEzPY8+l0+fIXMvuQ2sJlplB4zgDZvA+NmvZsZv3EQwOcc1DuIU1VJUTWZ/RKouBMhDyNaBMx4sWvrzRA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' '@typescript-eslint/visitor-keys@5.62.0': resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} @@ -2565,8 +2557,8 @@ packages: resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@8.57.2': - resolution: {integrity: sha512-zhahknjobV2FiD6Ee9iLbS7OV9zi10rG26odsQdfBO/hjSzUQbkIYgda+iNKK1zNiW2ey+Lf8MU5btN17V3dUw==} + '@typescript-eslint/visitor-keys@8.58.2': + resolution: {integrity: sha512-f1WO2Lx8a9t8DARmcWAUPJbu0G20bJlj8L4z72K00TMeJAoyLr/tHhI/pzYBLrR4dXWkcxO1cWYZEOX8DKHTqA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': @@ -2879,8 +2871,8 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - axios@1.13.6: - resolution: {integrity: sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==} + axios@1.15.0: + resolution: {integrity: sha512-wWyJDlAatxk30ZJer+GeCWS209sA42X+N5jU2jy6oHTp7ufw8uzUTVFBX9+wTfAlhiJXGS0Bq7X6efruWjuK9Q==} babel-jest@29.7.0: resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} @@ -2914,8 +2906,8 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.10.10: - resolution: {integrity: sha512-sUoJ3IMxx4AyRqO4MLeHlnGDkyXRoUG0/AI9fjK+vS72ekpV0yWVY7O0BVjmBcRtkNcsAO2QDZ4tdKKGoI6YaQ==} + baseline-browser-mapping@2.10.19: + resolution: {integrity: sha512-qCkNLi2sfBOn8XhZQ0FXsT1Ki/Yo5P90hrkRamVFRS7/KV9hpfA4HkoWNU152+8w0zPjnxo5psx5NL3PSGgv5g==} engines: {node: '>=6.0.0'} hasBin: true @@ -2949,8 +2941,8 @@ packages: browser-stdout@1.3.1: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} - browserslist@4.28.1: - resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} + browserslist@4.28.2: + resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -2997,8 +2989,8 @@ packages: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} - call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + call-bind@1.0.9: + resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==} engines: {node: '>= 0.4'} call-bound@1.0.4: @@ -3020,8 +3012,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001781: - resolution: {integrity: sha512-RdwNCyMsNBftLjW6w01z8bKEvT6e/5tpPVEgtn22TiLGlstHOVecsX2KHFkD5e/vRnIE4EGzpuIODb3mtswtkw==} + caniuse-lite@1.0.30001788: + resolution: {integrity: sha512-6q8HFp+lOQtcf7wBK+uEenxymVWkGKkjFpCvw5W25cmMwEDU45p1xQFBQv8JDlMMry7eNxyBaR+qxgmTUZkIRQ==} capital-case@1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} @@ -3468,8 +3460,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.321: - resolution: {integrity: sha512-L2C7Q279W2D/J4PLZLk7sebOILDSWos7bMsMNN06rK482umHUrh/3lM8G7IlHFOYip2oAg5nha1rCMxr/rs6ZQ==} + electron-to-chromium@1.5.340: + resolution: {integrity: sha512-908qahOGocRMinT2nM3ajCEM99H4iPdv84eagPP3FfZy/1ZGeOy2CZYzjhms81ckOPCXPlW7LkY4XpxD8r1DrA==} elegant-spinner@1.0.1: resolution: {integrity: sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ==} @@ -3503,8 +3495,8 @@ packages: error-ex@1.3.4: resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} - es-abstract@1.24.1: - resolution: {integrity: sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==} + es-abstract@1.24.2: + resolution: {integrity: sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==} engines: {node: '>= 0.4'} es-define-property@1.0.1: @@ -3537,8 +3529,8 @@ packages: es6-promise@4.2.8: resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} - esbuild@0.27.4: - resolution: {integrity: sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ==} + esbuild@0.27.7: + resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} engines: {node: '>=18'} hasBin: true @@ -3573,8 +3565,8 @@ packages: resolution: {integrity: sha512-NNTyyolSmKJicgxtoWZ/hoy2Rw56WIoWCFxgnBkXqDgi9qPKMwZs2Nx2b6SHLJvCiWWhZhWr5V46CFPo3PSPag==} engines: {node: '>=18.0.0'} - eslint-config-oclif@6.0.152: - resolution: {integrity: sha512-0zg9CwqPBjaz2ZcrMcesSUXYl0Ws7Sr4FjBt8WxwEGW/tqrNl14kCw427LcWpdJHyIQHXv/BG9HesiUTJRkgZw==} + eslint-config-oclif@6.0.157: + resolution: {integrity: sha512-Kt4MBzjWY4FLJgVeMsG4oZwmWbkQuqQioKtnXp9RDb6LR472Isr9yAfuLEsNTZMXfYEv5lsTv2zyg619HkL19Q==} engines: {node: '>=18.18.0'} eslint-config-xo-space@0.35.0: @@ -3595,8 +3587,8 @@ packages: peerDependencies: eslint: '>=9.33.0' - eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + eslint-import-resolver-node@0.3.10: + resolution: {integrity: sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ==} eslint-import-resolver-typescript@3.10.1: resolution: {integrity: sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==} @@ -3857,8 +3849,8 @@ packages: fast-uri@3.1.0: resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} - fast-xml-builder@1.1.4: - resolution: {integrity: sha512-f2jhpN4Eccy0/Uz9csxh3Nu6q4ErKxf0XIsasomfOihuSUa3/xw6w8dnOtCDgEItQFJG8KyXPzQXzcODDrrbOg==} + fast-xml-builder@1.1.5: + resolution: {integrity: sha512-4TJn/8FKLeslLAH3dnohXqE3QSoxkhvaMzepOIZytwJXZO69Bfz0HBdDHzOTOon6G59Zrk6VQ2bEiv1t61rfkA==} fast-xml-parser@5.5.8: resolution: {integrity: sha512-Z7Fh2nVQSb2d+poDViM063ix2ZGt9jmY1nWhPfHBOK2Hgnb/OW3P4Et3P/81SEej0J7QbWtJqxO05h8QYfK7LQ==} @@ -3967,8 +3959,8 @@ packages: fn.name@1.1.0: resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} - follow-redirects@1.15.11: - resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} + follow-redirects@1.16.0: + resolution: {integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -4076,8 +4068,8 @@ packages: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} - get-tsconfig@4.13.7: - resolution: {integrity: sha512-7tN6rFgBlMgpBML5j8typ92BKFi2sFQvIdpAqLA2beia5avZDrMs0FLZiM5etShWq5irVyGcGMEA1jcDaK7A/Q==} + get-tsconfig@4.14.0: + resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==} git-hooks-list@3.2.0: resolution: {integrity: sha512-ZHG9a1gEhUMX1TvGrLdyWb9kDopCBbTnI8z4JgRMYxsijWipgjSEYoPWqBuIB0DnRnvqlQSEeVmzpeuPm7NdFQ==} @@ -4153,8 +4145,8 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - handlebars@4.7.8: - resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + handlebars@4.7.9: + resolution: {integrity: sha512-4E71E0rpOaQuJR2A3xDZ+GM1HyWYv1clR58tC8emQNeQe3RH7MAzSbat+V0wG78LQBo6m6bzSG/L4pBuCsgnUQ==} engines: {node: '>=0.4.7'} hasBin: true @@ -4943,8 +4935,8 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@11.2.7: - resolution: {integrity: sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==} + lru-cache@11.3.5: + resolution: {integrity: sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==} engines: {node: 20 || >=22} lru-cache@5.1.1: @@ -5035,8 +5027,8 @@ packages: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} - minimatch@10.2.4: - resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} engines: {node: 18 || 20 || >=22} minimatch@3.1.5: @@ -5137,6 +5129,10 @@ packages: resolution: {integrity: sha512-o2zOYiCpzRqSzPj0Zt/dQ/DqZeYoaQ7TUonc/xUPjCGl9WeHpNbxgVvOquXYAaJzI0M9BXV3HTzG0p8IUAbBTQ==} engines: {node: '>= 10.13'} + node-exports-info@1.6.0: + resolution: {integrity: sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==} + engines: {node: '>= 0.4'} + node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} @@ -5144,8 +5140,8 @@ packages: resolution: {integrity: sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==} engines: {node: '>=8'} - node-releases@2.0.36: - resolution: {integrity: sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==} + node-releases@2.0.37: + resolution: {integrity: sha512-1h5gKZCF+pO/o3Iqt5Jp7wc9rH3eJJ0+nh/CIoiRwjRxde/hAHyLPXYN4V3CqKAbiZPSeJFSWHmJsbkicta0Eg==} normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} @@ -5206,6 +5202,10 @@ packages: resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} engines: {node: '>= 0.4'} + object.entries@1.1.9: + resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} + engines: {node: '>= 0.4'} + object.fromentries@2.0.8: resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} engines: {node: '>= 0.4'} @@ -5218,8 +5218,8 @@ packages: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} - oclif@4.22.96: - resolution: {integrity: sha512-aWM9cMb7Q3KW09qi5Mkw0Hq9sIM7DjVlyMAUl8Q2FP3+e5afBlUU9vmL3EJazVPhqcbg5u18E3z+6kCMk72KYw==} + oclif@4.23.0: + resolution: {integrity: sha512-0Rz8YsJx6NQORMgyDeDr6i0OlJa6h4oLXBht9iRZhn/YI/by/ONKgcJIPXyTgeLK21JmhbFqJn6Y1AME0EH1Dw==} engines: {node: '>=18.0.0'} hasBin: true @@ -5349,8 +5349,8 @@ packages: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} - path-expression-matcher@1.2.0: - resolution: {integrity: sha512-DwmPWeFn+tq7TiyJ2CxezCAirXjFxvaiD03npak3cRjlP9+OjTmSy1EpIrEbh+l6JgUundniloMLDQ/6VTdhLQ==} + path-expression-matcher@1.5.0: + resolution: {integrity: sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ==} engines: {node: '>=14.0.0'} path-is-absolute@1.0.1: @@ -5405,8 +5405,8 @@ packages: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} - pnpm@10.32.1: - resolution: {integrity: sha512-pwaTjw6JrBRWtlY+q07fHR+vM2jRGR/FxZeQ6W3JGORFarLmfWE94QQ9LoyB+HMD5rQNT/7KnfFe8a1Wc0jyvg==} + pnpm@10.33.0: + resolution: {integrity: sha512-EFaLtKavtYyes2MNqQzJUWQXq+vT+rvmc58K55VyjaFJHp21pUTHatjrdXD1xLs9bGN7LLQb/c20f6gjyGSTGQ==} engines: {node: '>=18.12'} hasBin: true @@ -5454,8 +5454,9 @@ packages: proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} - proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + proxy-from-env@2.1.0: + resolution: {integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==} + engines: {node: '>=10'} pump@3.0.4: resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} @@ -5471,8 +5472,8 @@ packages: pure-rand@6.1.0: resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} - qs@6.15.0: - resolution: {integrity: sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==} + qs@6.15.1: + resolution: {integrity: sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==} engines: {node: '>=0.6'} queue-microtask@1.2.3: @@ -5626,8 +5627,13 @@ packages: resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} engines: {node: '>=10'} - resolve@1.22.11: - resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} + resolve@1.22.12: + resolution: {integrity: sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==} + engines: {node: '>= 0.4'} + hasBin: true + + resolve@2.0.0-next.6: + resolution: {integrity: sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==} engines: {node: '>= 0.4'} hasBin: true @@ -5777,8 +5783,8 @@ packages: engines: {node: '>=18'} hasBin: true - side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + side-channel-list@1.0.1: + resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} engines: {node: '>= 0.4'} side-channel-map@1.0.1: @@ -5804,8 +5810,8 @@ packages: resolution: {integrity: sha512-uihLiaB9FhzesElPDFZA7hDcNABzsVHwr3YfmM9sBllVwab3l0ltGlRV1XhpNfIacNDLGD1QRZNLs5nU5+hTuA==} deprecated: There - sinon@21.0.3: - resolution: {integrity: sha512-0x8TQFr8EjADhSME01u1ZK31yv2+bd6Z5NrBCHVM+n4qL1wFqbxftmeyi3bwlr49FbbzRfrqSFOpyHCOh/YmYA==} + sinon@21.1.2: + resolution: {integrity: sha512-FS6mN+/bx7e2ajpXkEmOcWB6xBzWiuNoAQT18/+a20SS4U7FSYl8Ms7N6VTUxN/1JAjkx7aXp+THMC8xdpp0gA==} sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} @@ -5984,8 +5990,8 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - strnum@2.2.2: - resolution: {integrity: sha512-DnR90I+jtXNSTXWdwrEy9FakW7UX+qUZg28gj5fk2vxxl7uS/3bpI4fjFYVmdK9etptYBPNkpahuQnEwhwECqA==} + strnum@2.2.3: + resolution: {integrity: sha512-oKx6RUCuHfT3oyVjtnrmn19H1SiCqgJSg+54XqURKp5aCMbrXrhLjRN9TjuwMjiYstZ0MzDrHqkGZ5dFTKd+zg==} supports-color@2.0.0: resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} @@ -6062,8 +6068,8 @@ packages: tiny-jsonc@1.0.2: resolution: {integrity: sha512-f5QDAfLq6zIVSyCZQZhhyl0QS6MvAyTxgz4X4x3+EoCktNWEYJ6PeoEA97fyb98njpBNNi88ybpD7m+BDFXaCw==} - tinyglobby@0.2.15: - resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + tinyglobby@0.2.16: + resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} engines: {node: '>=12.0.0'} tmp@0.0.33: @@ -6106,8 +6112,8 @@ packages: peerDependencies: typescript: '>=4.0.0' - ts-jest@29.4.6: - resolution: {integrity: sha512-fSpWtOO/1AjSNQguk43hb/JCo16oJDnMJf3CdEGNkqsEX3t0KX96xvyX1D7PfLCpVoKu4MfVrqUkFyblYoY4lA==} + ts-jest@29.4.9: + resolution: {integrity: sha512-LTb9496gYPMCqjeDLdPrKuXtncudeV1yRZnF4Wo5l3SFi0RYEnYRNgMrFIdg+FHvfzjCyQk1cLncWVqiSX+EvQ==} engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -6118,7 +6124,7 @@ packages: esbuild: '*' jest: ^29.0.0 || ^30.0.0 jest-util: ^29.0.0 || ^30.0.0 - typescript: '>=4.3 <6' + typescript: '>=4.3 <7' peerDependenciesMeta: '@babel/core': optional: true @@ -6240,12 +6246,12 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typescript-eslint@8.57.2: - resolution: {integrity: sha512-VEPQ0iPgWO/sBaZOU1xo4nuNdODVOajPnTIbog2GKYr31nIlZ0fWPoCQgGfF3ETyBl1vn63F/p50Um9Z4J8O8A==} + typescript-eslint@8.58.2: + resolution: {integrity: sha512-V8iSng9mRbdZjl54VJ9NKr6ZB+dW0J3TzRXRGcSbLIej9jV86ZRtlYeTKDR/QLxXykocJ5icNzbsl2+5TzIvcQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' typescript@4.9.5: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} @@ -6516,20 +6522,20 @@ snapshots: '@aws-crypto/crc32@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.6 + '@aws-sdk/types': 3.973.8 tslib: 2.8.1 '@aws-crypto/crc32c@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.6 + '@aws-sdk/types': 3.973.8 tslib: 2.8.1 '@aws-crypto/sha1-browser@5.2.0': dependencies: '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.6 + '@aws-sdk/types': 3.973.8 '@aws-sdk/util-locate-window': 3.965.5 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 @@ -6539,7 +6545,7 @@ snapshots: '@aws-crypto/sha256-js': 5.2.0 '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.6 + '@aws-sdk/types': 3.973.8 '@aws-sdk/util-locate-window': 3.965.5 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 @@ -6547,7 +6553,7 @@ snapshots: '@aws-crypto/sha256-js@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.6 + '@aws-sdk/types': 3.973.8 tslib: 2.8.1 '@aws-crypto/supports-web-crypto@5.2.0': @@ -6556,7 +6562,7 @@ snapshots: '@aws-crypto/util@5.2.0': dependencies: - '@aws-sdk/types': 3.973.6 + '@aws-sdk/types': 3.973.8 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 @@ -6564,44 +6570,44 @@ snapshots: dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.24 - '@aws-sdk/credential-provider-node': 3.972.25 - '@aws-sdk/middleware-host-header': 3.972.8 - '@aws-sdk/middleware-logger': 3.972.8 - '@aws-sdk/middleware-recursion-detection': 3.972.8 - '@aws-sdk/middleware-user-agent': 3.972.25 - '@aws-sdk/region-config-resolver': 3.972.9 - '@aws-sdk/types': 3.973.6 - '@aws-sdk/util-endpoints': 3.996.5 - '@aws-sdk/util-user-agent-browser': 3.972.8 - '@aws-sdk/util-user-agent-node': 3.973.11 - '@smithy/config-resolver': 4.4.13 - '@smithy/core': 3.23.12 - '@smithy/fetch-http-handler': 5.3.15 - '@smithy/hash-node': 4.2.12 - '@smithy/invalid-dependency': 4.2.12 - '@smithy/middleware-content-length': 4.2.12 - '@smithy/middleware-endpoint': 4.4.27 - '@smithy/middleware-retry': 4.4.44 - '@smithy/middleware-serde': 4.2.15 - '@smithy/middleware-stack': 4.2.12 - '@smithy/node-config-provider': 4.3.12 - '@smithy/node-http-handler': 4.5.0 - '@smithy/protocol-http': 5.3.12 - '@smithy/smithy-client': 4.12.7 - '@smithy/types': 4.13.1 - '@smithy/url-parser': 4.2.12 + '@aws-sdk/core': 3.974.0 + '@aws-sdk/credential-provider-node': 3.972.31 + '@aws-sdk/middleware-host-header': 3.972.10 + '@aws-sdk/middleware-logger': 3.972.10 + '@aws-sdk/middleware-recursion-detection': 3.972.11 + '@aws-sdk/middleware-user-agent': 3.972.30 + '@aws-sdk/region-config-resolver': 3.972.12 + '@aws-sdk/types': 3.973.8 + '@aws-sdk/util-endpoints': 3.996.7 + '@aws-sdk/util-user-agent-browser': 3.972.10 + '@aws-sdk/util-user-agent-node': 3.973.16 + '@smithy/config-resolver': 4.4.16 + '@smithy/core': 3.23.15 + '@smithy/fetch-http-handler': 5.3.17 + '@smithy/hash-node': 4.2.14 + '@smithy/invalid-dependency': 4.2.14 + '@smithy/middleware-content-length': 4.2.14 + '@smithy/middleware-endpoint': 4.4.30 + '@smithy/middleware-retry': 4.5.3 + '@smithy/middleware-serde': 4.2.18 + '@smithy/middleware-stack': 4.2.14 + '@smithy/node-config-provider': 4.3.14 + '@smithy/node-http-handler': 4.5.3 + '@smithy/protocol-http': 5.3.14 + '@smithy/smithy-client': 4.12.11 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 '@smithy/util-base64': 4.3.2 '@smithy/util-body-length-browser': 4.2.2 '@smithy/util-body-length-node': 4.2.3 - '@smithy/util-defaults-mode-browser': 4.3.43 - '@smithy/util-defaults-mode-node': 4.2.47 - '@smithy/util-endpoints': 3.3.3 - '@smithy/util-middleware': 4.2.12 - '@smithy/util-retry': 4.2.12 - '@smithy/util-stream': 4.5.20 + '@smithy/util-defaults-mode-browser': 4.3.47 + '@smithy/util-defaults-mode-node': 4.2.52 + '@smithy/util-endpoints': 3.4.1 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-retry': 4.3.2 + '@smithy/util-stream': 4.5.23 '@smithy/util-utf8': 4.2.2 - '@smithy/util-waiter': 4.2.13 + '@smithy/util-waiter': 4.2.16 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -6611,393 +6617,393 @@ snapshots: '@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.24 - '@aws-sdk/credential-provider-node': 3.972.25 - '@aws-sdk/middleware-bucket-endpoint': 3.972.8 - '@aws-sdk/middleware-expect-continue': 3.972.8 - '@aws-sdk/middleware-flexible-checksums': 3.974.4 - '@aws-sdk/middleware-host-header': 3.972.8 - '@aws-sdk/middleware-location-constraint': 3.972.8 - '@aws-sdk/middleware-logger': 3.972.8 - '@aws-sdk/middleware-recursion-detection': 3.972.8 - '@aws-sdk/middleware-sdk-s3': 3.972.24 - '@aws-sdk/middleware-ssec': 3.972.8 - '@aws-sdk/middleware-user-agent': 3.972.25 - '@aws-sdk/region-config-resolver': 3.972.9 - '@aws-sdk/signature-v4-multi-region': 3.996.12 - '@aws-sdk/types': 3.973.6 - '@aws-sdk/util-endpoints': 3.996.5 - '@aws-sdk/util-user-agent-browser': 3.972.8 - '@aws-sdk/util-user-agent-node': 3.973.11 - '@smithy/config-resolver': 4.4.13 - '@smithy/core': 3.23.12 - '@smithy/eventstream-serde-browser': 4.2.12 - '@smithy/eventstream-serde-config-resolver': 4.3.12 - '@smithy/eventstream-serde-node': 4.2.12 - '@smithy/fetch-http-handler': 5.3.15 - '@smithy/hash-blob-browser': 4.2.13 - '@smithy/hash-node': 4.2.12 - '@smithy/hash-stream-node': 4.2.12 - '@smithy/invalid-dependency': 4.2.12 - '@smithy/md5-js': 4.2.12 - '@smithy/middleware-content-length': 4.2.12 - '@smithy/middleware-endpoint': 4.4.27 - '@smithy/middleware-retry': 4.4.44 - '@smithy/middleware-serde': 4.2.15 - '@smithy/middleware-stack': 4.2.12 - '@smithy/node-config-provider': 4.3.12 - '@smithy/node-http-handler': 4.5.0 - '@smithy/protocol-http': 5.3.12 - '@smithy/smithy-client': 4.12.7 - '@smithy/types': 4.13.1 - '@smithy/url-parser': 4.2.12 + '@aws-sdk/core': 3.974.0 + '@aws-sdk/credential-provider-node': 3.972.31 + '@aws-sdk/middleware-bucket-endpoint': 3.972.10 + '@aws-sdk/middleware-expect-continue': 3.972.10 + '@aws-sdk/middleware-flexible-checksums': 3.974.8 + '@aws-sdk/middleware-host-header': 3.972.10 + '@aws-sdk/middleware-location-constraint': 3.972.10 + '@aws-sdk/middleware-logger': 3.972.10 + '@aws-sdk/middleware-recursion-detection': 3.972.11 + '@aws-sdk/middleware-sdk-s3': 3.972.29 + '@aws-sdk/middleware-ssec': 3.972.10 + '@aws-sdk/middleware-user-agent': 3.972.30 + '@aws-sdk/region-config-resolver': 3.972.12 + '@aws-sdk/signature-v4-multi-region': 3.996.17 + '@aws-sdk/types': 3.973.8 + '@aws-sdk/util-endpoints': 3.996.7 + '@aws-sdk/util-user-agent-browser': 3.972.10 + '@aws-sdk/util-user-agent-node': 3.973.16 + '@smithy/config-resolver': 4.4.16 + '@smithy/core': 3.23.15 + '@smithy/eventstream-serde-browser': 4.2.14 + '@smithy/eventstream-serde-config-resolver': 4.3.14 + '@smithy/eventstream-serde-node': 4.2.14 + '@smithy/fetch-http-handler': 5.3.17 + '@smithy/hash-blob-browser': 4.2.15 + '@smithy/hash-node': 4.2.14 + '@smithy/hash-stream-node': 4.2.14 + '@smithy/invalid-dependency': 4.2.14 + '@smithy/md5-js': 4.2.14 + '@smithy/middleware-content-length': 4.2.14 + '@smithy/middleware-endpoint': 4.4.30 + '@smithy/middleware-retry': 4.5.3 + '@smithy/middleware-serde': 4.2.18 + '@smithy/middleware-stack': 4.2.14 + '@smithy/node-config-provider': 4.3.14 + '@smithy/node-http-handler': 4.5.3 + '@smithy/protocol-http': 5.3.14 + '@smithy/smithy-client': 4.12.11 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 '@smithy/util-base64': 4.3.2 '@smithy/util-body-length-browser': 4.2.2 '@smithy/util-body-length-node': 4.2.3 - '@smithy/util-defaults-mode-browser': 4.3.43 - '@smithy/util-defaults-mode-node': 4.2.47 - '@smithy/util-endpoints': 3.3.3 - '@smithy/util-middleware': 4.2.12 - '@smithy/util-retry': 4.2.12 - '@smithy/util-stream': 4.5.20 + '@smithy/util-defaults-mode-browser': 4.3.47 + '@smithy/util-defaults-mode-node': 4.2.52 + '@smithy/util-endpoints': 3.4.1 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-retry': 4.3.2 + '@smithy/util-stream': 4.5.23 '@smithy/util-utf8': 4.2.2 - '@smithy/util-waiter': 4.2.13 + '@smithy/util-waiter': 4.2.16 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/core@3.973.24': - dependencies: - '@aws-sdk/types': 3.973.6 - '@aws-sdk/xml-builder': 3.972.15 - '@smithy/core': 3.23.12 - '@smithy/node-config-provider': 4.3.12 - '@smithy/property-provider': 4.2.12 - '@smithy/protocol-http': 5.3.12 - '@smithy/signature-v4': 5.3.12 - '@smithy/smithy-client': 4.12.7 - '@smithy/types': 4.13.1 + '@aws-sdk/core@3.974.0': + dependencies: + '@aws-sdk/types': 3.973.8 + '@aws-sdk/xml-builder': 3.972.18 + '@smithy/core': 3.23.15 + '@smithy/node-config-provider': 4.3.14 + '@smithy/property-provider': 4.2.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/signature-v4': 5.3.14 + '@smithy/smithy-client': 4.12.11 + '@smithy/types': 4.14.1 '@smithy/util-base64': 4.3.2 - '@smithy/util-middleware': 4.2.12 + '@smithy/util-middleware': 4.2.14 '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@aws-sdk/crc64-nvme@3.972.5': + '@aws-sdk/crc64-nvme@3.972.7': dependencies: - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-env@3.972.22': + '@aws-sdk/credential-provider-env@3.972.26': dependencies: - '@aws-sdk/core': 3.973.24 - '@aws-sdk/types': 3.973.6 - '@smithy/property-provider': 4.2.12 - '@smithy/types': 4.13.1 + '@aws-sdk/core': 3.974.0 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-http@3.972.24': - dependencies: - '@aws-sdk/core': 3.973.24 - '@aws-sdk/types': 3.973.6 - '@smithy/fetch-http-handler': 5.3.15 - '@smithy/node-http-handler': 4.5.0 - '@smithy/property-provider': 4.2.12 - '@smithy/protocol-http': 5.3.12 - '@smithy/smithy-client': 4.12.7 - '@smithy/types': 4.13.1 - '@smithy/util-stream': 4.5.20 + '@aws-sdk/credential-provider-http@3.972.28': + dependencies: + '@aws-sdk/core': 3.974.0 + '@aws-sdk/types': 3.973.8 + '@smithy/fetch-http-handler': 5.3.17 + '@smithy/node-http-handler': 4.5.3 + '@smithy/property-provider': 4.2.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/smithy-client': 4.12.11 + '@smithy/types': 4.14.1 + '@smithy/util-stream': 4.5.23 tslib: 2.8.1 - '@aws-sdk/credential-provider-ini@3.972.24': - dependencies: - '@aws-sdk/core': 3.973.24 - '@aws-sdk/credential-provider-env': 3.972.22 - '@aws-sdk/credential-provider-http': 3.972.24 - '@aws-sdk/credential-provider-login': 3.972.24 - '@aws-sdk/credential-provider-process': 3.972.22 - '@aws-sdk/credential-provider-sso': 3.972.24 - '@aws-sdk/credential-provider-web-identity': 3.972.24 - '@aws-sdk/nested-clients': 3.996.14 - '@aws-sdk/types': 3.973.6 - '@smithy/credential-provider-imds': 4.2.12 - '@smithy/property-provider': 4.2.12 - '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.13.1 + '@aws-sdk/credential-provider-ini@3.972.30': + dependencies: + '@aws-sdk/core': 3.974.0 + '@aws-sdk/credential-provider-env': 3.972.26 + '@aws-sdk/credential-provider-http': 3.972.28 + '@aws-sdk/credential-provider-login': 3.972.30 + '@aws-sdk/credential-provider-process': 3.972.26 + '@aws-sdk/credential-provider-sso': 3.972.30 + '@aws-sdk/credential-provider-web-identity': 3.972.30 + '@aws-sdk/nested-clients': 3.996.20 + '@aws-sdk/types': 3.973.8 + '@smithy/credential-provider-imds': 4.2.14 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-login@3.972.24': + '@aws-sdk/credential-provider-login@3.972.30': dependencies: - '@aws-sdk/core': 3.973.24 - '@aws-sdk/nested-clients': 3.996.14 - '@aws-sdk/types': 3.973.6 - '@smithy/property-provider': 4.2.12 - '@smithy/protocol-http': 5.3.12 - '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.13.1 + '@aws-sdk/core': 3.974.0 + '@aws-sdk/nested-clients': 3.996.20 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-node@3.972.25': - dependencies: - '@aws-sdk/credential-provider-env': 3.972.22 - '@aws-sdk/credential-provider-http': 3.972.24 - '@aws-sdk/credential-provider-ini': 3.972.24 - '@aws-sdk/credential-provider-process': 3.972.22 - '@aws-sdk/credential-provider-sso': 3.972.24 - '@aws-sdk/credential-provider-web-identity': 3.972.24 - '@aws-sdk/types': 3.973.6 - '@smithy/credential-provider-imds': 4.2.12 - '@smithy/property-provider': 4.2.12 - '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.13.1 + '@aws-sdk/credential-provider-node@3.972.31': + dependencies: + '@aws-sdk/credential-provider-env': 3.972.26 + '@aws-sdk/credential-provider-http': 3.972.28 + '@aws-sdk/credential-provider-ini': 3.972.30 + '@aws-sdk/credential-provider-process': 3.972.26 + '@aws-sdk/credential-provider-sso': 3.972.30 + '@aws-sdk/credential-provider-web-identity': 3.972.30 + '@aws-sdk/types': 3.973.8 + '@smithy/credential-provider-imds': 4.2.14 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-process@3.972.22': + '@aws-sdk/credential-provider-process@3.972.26': dependencies: - '@aws-sdk/core': 3.973.24 - '@aws-sdk/types': 3.973.6 - '@smithy/property-provider': 4.2.12 - '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.13.1 + '@aws-sdk/core': 3.974.0 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-sso@3.972.24': + '@aws-sdk/credential-provider-sso@3.972.30': dependencies: - '@aws-sdk/core': 3.973.24 - '@aws-sdk/nested-clients': 3.996.14 - '@aws-sdk/token-providers': 3.1015.0 - '@aws-sdk/types': 3.973.6 - '@smithy/property-provider': 4.2.12 - '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.13.1 + '@aws-sdk/core': 3.974.0 + '@aws-sdk/nested-clients': 3.996.20 + '@aws-sdk/token-providers': 3.1031.0 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-web-identity@3.972.24': + '@aws-sdk/credential-provider-web-identity@3.972.30': dependencies: - '@aws-sdk/core': 3.973.24 - '@aws-sdk/nested-clients': 3.996.14 - '@aws-sdk/types': 3.973.6 - '@smithy/property-provider': 4.2.12 - '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.13.1 + '@aws-sdk/core': 3.974.0 + '@aws-sdk/nested-clients': 3.996.20 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/middleware-bucket-endpoint@3.972.8': + '@aws-sdk/middleware-bucket-endpoint@3.972.10': dependencies: - '@aws-sdk/types': 3.973.6 + '@aws-sdk/types': 3.973.8 '@aws-sdk/util-arn-parser': 3.972.3 - '@smithy/node-config-provider': 4.3.12 - '@smithy/protocol-http': 5.3.12 - '@smithy/types': 4.13.1 + '@smithy/node-config-provider': 4.3.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 '@smithy/util-config-provider': 4.2.2 tslib: 2.8.1 - '@aws-sdk/middleware-expect-continue@3.972.8': + '@aws-sdk/middleware-expect-continue@3.972.10': dependencies: - '@aws-sdk/types': 3.973.6 - '@smithy/protocol-http': 5.3.12 - '@smithy/types': 4.13.1 + '@aws-sdk/types': 3.973.8 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@aws-sdk/middleware-flexible-checksums@3.974.4': + '@aws-sdk/middleware-flexible-checksums@3.974.8': dependencies: '@aws-crypto/crc32': 5.2.0 '@aws-crypto/crc32c': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/core': 3.973.24 - '@aws-sdk/crc64-nvme': 3.972.5 - '@aws-sdk/types': 3.973.6 + '@aws-sdk/core': 3.974.0 + '@aws-sdk/crc64-nvme': 3.972.7 + '@aws-sdk/types': 3.973.8 '@smithy/is-array-buffer': 4.2.2 - '@smithy/node-config-provider': 4.3.12 - '@smithy/protocol-http': 5.3.12 - '@smithy/types': 4.13.1 - '@smithy/util-middleware': 4.2.12 - '@smithy/util-stream': 4.5.20 + '@smithy/node-config-provider': 4.3.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-stream': 4.5.23 '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@aws-sdk/middleware-host-header@3.972.8': + '@aws-sdk/middleware-host-header@3.972.10': dependencies: - '@aws-sdk/types': 3.973.6 - '@smithy/protocol-http': 5.3.12 - '@smithy/types': 4.13.1 + '@aws-sdk/types': 3.973.8 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@aws-sdk/middleware-location-constraint@3.972.8': + '@aws-sdk/middleware-location-constraint@3.972.10': dependencies: - '@aws-sdk/types': 3.973.6 - '@smithy/types': 4.13.1 + '@aws-sdk/types': 3.973.8 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@aws-sdk/middleware-logger@3.972.8': + '@aws-sdk/middleware-logger@3.972.10': dependencies: - '@aws-sdk/types': 3.973.6 - '@smithy/types': 4.13.1 + '@aws-sdk/types': 3.973.8 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@aws-sdk/middleware-recursion-detection@3.972.8': + '@aws-sdk/middleware-recursion-detection@3.972.11': dependencies: - '@aws-sdk/types': 3.973.6 + '@aws-sdk/types': 3.973.8 '@aws/lambda-invoke-store': 0.2.4 - '@smithy/protocol-http': 5.3.12 - '@smithy/types': 4.13.1 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@aws-sdk/middleware-sdk-s3@3.972.24': + '@aws-sdk/middleware-sdk-s3@3.972.29': dependencies: - '@aws-sdk/core': 3.973.24 - '@aws-sdk/types': 3.973.6 + '@aws-sdk/core': 3.974.0 + '@aws-sdk/types': 3.973.8 '@aws-sdk/util-arn-parser': 3.972.3 - '@smithy/core': 3.23.12 - '@smithy/node-config-provider': 4.3.12 - '@smithy/protocol-http': 5.3.12 - '@smithy/signature-v4': 5.3.12 - '@smithy/smithy-client': 4.12.7 - '@smithy/types': 4.13.1 + '@smithy/core': 3.23.15 + '@smithy/node-config-provider': 4.3.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/signature-v4': 5.3.14 + '@smithy/smithy-client': 4.12.11 + '@smithy/types': 4.14.1 '@smithy/util-config-provider': 4.2.2 - '@smithy/util-middleware': 4.2.12 - '@smithy/util-stream': 4.5.20 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-stream': 4.5.23 '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@aws-sdk/middleware-ssec@3.972.8': + '@aws-sdk/middleware-ssec@3.972.10': dependencies: - '@aws-sdk/types': 3.973.6 - '@smithy/types': 4.13.1 + '@aws-sdk/types': 3.973.8 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@aws-sdk/middleware-user-agent@3.972.25': + '@aws-sdk/middleware-user-agent@3.972.30': dependencies: - '@aws-sdk/core': 3.973.24 - '@aws-sdk/types': 3.973.6 - '@aws-sdk/util-endpoints': 3.996.5 - '@smithy/core': 3.23.12 - '@smithy/protocol-http': 5.3.12 - '@smithy/types': 4.13.1 - '@smithy/util-retry': 4.2.12 + '@aws-sdk/core': 3.974.0 + '@aws-sdk/types': 3.973.8 + '@aws-sdk/util-endpoints': 3.996.7 + '@smithy/core': 3.23.15 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + '@smithy/util-retry': 4.3.2 tslib: 2.8.1 - '@aws-sdk/nested-clients@3.996.14': + '@aws-sdk/nested-clients@3.996.20': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.24 - '@aws-sdk/middleware-host-header': 3.972.8 - '@aws-sdk/middleware-logger': 3.972.8 - '@aws-sdk/middleware-recursion-detection': 3.972.8 - '@aws-sdk/middleware-user-agent': 3.972.25 - '@aws-sdk/region-config-resolver': 3.972.9 - '@aws-sdk/types': 3.973.6 - '@aws-sdk/util-endpoints': 3.996.5 - '@aws-sdk/util-user-agent-browser': 3.972.8 - '@aws-sdk/util-user-agent-node': 3.973.11 - '@smithy/config-resolver': 4.4.13 - '@smithy/core': 3.23.12 - '@smithy/fetch-http-handler': 5.3.15 - '@smithy/hash-node': 4.2.12 - '@smithy/invalid-dependency': 4.2.12 - '@smithy/middleware-content-length': 4.2.12 - '@smithy/middleware-endpoint': 4.4.27 - '@smithy/middleware-retry': 4.4.44 - '@smithy/middleware-serde': 4.2.15 - '@smithy/middleware-stack': 4.2.12 - '@smithy/node-config-provider': 4.3.12 - '@smithy/node-http-handler': 4.5.0 - '@smithy/protocol-http': 5.3.12 - '@smithy/smithy-client': 4.12.7 - '@smithy/types': 4.13.1 - '@smithy/url-parser': 4.2.12 + '@aws-sdk/core': 3.974.0 + '@aws-sdk/middleware-host-header': 3.972.10 + '@aws-sdk/middleware-logger': 3.972.10 + '@aws-sdk/middleware-recursion-detection': 3.972.11 + '@aws-sdk/middleware-user-agent': 3.972.30 + '@aws-sdk/region-config-resolver': 3.972.12 + '@aws-sdk/types': 3.973.8 + '@aws-sdk/util-endpoints': 3.996.7 + '@aws-sdk/util-user-agent-browser': 3.972.10 + '@aws-sdk/util-user-agent-node': 3.973.16 + '@smithy/config-resolver': 4.4.16 + '@smithy/core': 3.23.15 + '@smithy/fetch-http-handler': 5.3.17 + '@smithy/hash-node': 4.2.14 + '@smithy/invalid-dependency': 4.2.14 + '@smithy/middleware-content-length': 4.2.14 + '@smithy/middleware-endpoint': 4.4.30 + '@smithy/middleware-retry': 4.5.3 + '@smithy/middleware-serde': 4.2.18 + '@smithy/middleware-stack': 4.2.14 + '@smithy/node-config-provider': 4.3.14 + '@smithy/node-http-handler': 4.5.3 + '@smithy/protocol-http': 5.3.14 + '@smithy/smithy-client': 4.12.11 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 '@smithy/util-base64': 4.3.2 '@smithy/util-body-length-browser': 4.2.2 '@smithy/util-body-length-node': 4.2.3 - '@smithy/util-defaults-mode-browser': 4.3.43 - '@smithy/util-defaults-mode-node': 4.2.47 - '@smithy/util-endpoints': 3.3.3 - '@smithy/util-middleware': 4.2.12 - '@smithy/util-retry': 4.2.12 + '@smithy/util-defaults-mode-browser': 4.3.47 + '@smithy/util-defaults-mode-node': 4.2.52 + '@smithy/util-endpoints': 3.4.1 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-retry': 4.3.2 '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/region-config-resolver@3.972.9': + '@aws-sdk/region-config-resolver@3.972.12': dependencies: - '@aws-sdk/types': 3.973.6 - '@smithy/config-resolver': 4.4.13 - '@smithy/node-config-provider': 4.3.12 - '@smithy/types': 4.13.1 + '@aws-sdk/types': 3.973.8 + '@smithy/config-resolver': 4.4.16 + '@smithy/node-config-provider': 4.3.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@aws-sdk/signature-v4-multi-region@3.996.12': + '@aws-sdk/signature-v4-multi-region@3.996.17': dependencies: - '@aws-sdk/middleware-sdk-s3': 3.972.24 - '@aws-sdk/types': 3.973.6 - '@smithy/protocol-http': 5.3.12 - '@smithy/signature-v4': 5.3.12 - '@smithy/types': 4.13.1 + '@aws-sdk/middleware-sdk-s3': 3.972.29 + '@aws-sdk/types': 3.973.8 + '@smithy/protocol-http': 5.3.14 + '@smithy/signature-v4': 5.3.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@aws-sdk/token-providers@3.1015.0': + '@aws-sdk/token-providers@3.1031.0': dependencies: - '@aws-sdk/core': 3.973.24 - '@aws-sdk/nested-clients': 3.996.14 - '@aws-sdk/types': 3.973.6 - '@smithy/property-provider': 4.2.12 - '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.13.1 + '@aws-sdk/core': 3.974.0 + '@aws-sdk/nested-clients': 3.996.20 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/types@3.973.6': + '@aws-sdk/types@3.973.8': dependencies: - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.1 tslib: 2.8.1 '@aws-sdk/util-arn-parser@3.972.3': dependencies: tslib: 2.8.1 - '@aws-sdk/util-endpoints@3.996.5': + '@aws-sdk/util-endpoints@3.996.7': dependencies: - '@aws-sdk/types': 3.973.6 - '@smithy/types': 4.13.1 - '@smithy/url-parser': 4.2.12 - '@smithy/util-endpoints': 3.3.3 + '@aws-sdk/types': 3.973.8 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 + '@smithy/util-endpoints': 3.4.1 tslib: 2.8.1 '@aws-sdk/util-locate-window@3.965.5': dependencies: tslib: 2.8.1 - '@aws-sdk/util-user-agent-browser@3.972.8': + '@aws-sdk/util-user-agent-browser@3.972.10': dependencies: - '@aws-sdk/types': 3.973.6 - '@smithy/types': 4.13.1 + '@aws-sdk/types': 3.973.8 + '@smithy/types': 4.14.1 bowser: 2.14.1 tslib: 2.8.1 - '@aws-sdk/util-user-agent-node@3.973.11': + '@aws-sdk/util-user-agent-node@3.973.16': dependencies: - '@aws-sdk/middleware-user-agent': 3.972.25 - '@aws-sdk/types': 3.973.6 - '@smithy/node-config-provider': 4.3.12 - '@smithy/types': 4.13.1 + '@aws-sdk/middleware-user-agent': 3.972.30 + '@aws-sdk/types': 3.973.8 + '@smithy/node-config-provider': 4.3.14 + '@smithy/types': 4.14.1 '@smithy/util-config-provider': 4.2.2 tslib: 2.8.1 - '@aws-sdk/xml-builder@3.972.15': + '@aws-sdk/xml-builder@3.972.18': dependencies: - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.1 fast-xml-parser: 5.5.8 tslib: 2.8.1 @@ -7043,7 +7049,7 @@ snapshots: dependencies: '@babel/compat-data': 7.29.0 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.28.1 + browserslist: 4.28.2 lru-cache: 5.1.1 semver: 6.3.1 @@ -7196,12 +7202,12 @@ snapshots: '@colors/colors@1.6.0': {} - '@contentstack/cli-auth@2.0.0-beta.9(@types/node@22.19.15)': + '@contentstack/cli-auth@2.0.0-beta.10(@types/node@22.19.17)': dependencies: - '@contentstack/cli-command': 2.0.0-beta.5(@types/node@22.19.15) - '@contentstack/cli-utilities': 2.0.0-beta.5(@types/node@22.19.15) - '@oclif/core': 4.10.2 - '@oclif/plugin-help': 6.2.40 + '@contentstack/cli-command': 2.0.0-beta.5(@types/node@22.19.17) + '@contentstack/cli-utilities': 2.0.0-beta.6(@types/node@22.19.17) + '@oclif/core': 4.10.5 + '@oclif/plugin-help': 6.2.44 otplib: 12.0.1 transitivePeerDependencies: - '@types/node' @@ -7209,9 +7215,9 @@ snapshots: '@contentstack/cli-command@2.0.0-beta.5(@types/node@14.18.63)': dependencies: - '@contentstack/cli-utilities': 2.0.0-beta.5(@types/node@14.18.63) - '@oclif/core': 4.10.2 - '@oclif/plugin-help': 6.2.40 + '@contentstack/cli-utilities': 2.0.0-beta.6(@types/node@14.18.63) + '@oclif/core': 4.10.5 + '@oclif/plugin-help': 6.2.44 contentstack: 3.27.0 transitivePeerDependencies: - '@types/node' @@ -7219,9 +7225,9 @@ snapshots: '@contentstack/cli-command@2.0.0-beta.5(@types/node@14.18.63)(debug@4.4.3)': dependencies: - '@contentstack/cli-utilities': 2.0.0-beta.5(@types/node@14.18.63)(debug@4.4.3) - '@oclif/core': 4.10.2 - '@oclif/plugin-help': 6.2.40 + '@contentstack/cli-utilities': 2.0.0-beta.6(@types/node@14.18.63)(debug@4.4.3) + '@oclif/core': 4.10.5 + '@oclif/plugin-help': 6.2.44 contentstack: 3.27.0 transitivePeerDependencies: - '@types/node' @@ -7229,53 +7235,53 @@ snapshots: '@contentstack/cli-command@2.0.0-beta.5(@types/node@18.19.130)': dependencies: - '@contentstack/cli-utilities': 2.0.0-beta.5(@types/node@18.19.130) - '@oclif/core': 4.10.2 - '@oclif/plugin-help': 6.2.40 + '@contentstack/cli-utilities': 2.0.0-beta.6(@types/node@18.19.130) + '@oclif/core': 4.10.5 + '@oclif/plugin-help': 6.2.44 contentstack: 3.27.0 transitivePeerDependencies: - '@types/node' - debug - '@contentstack/cli-command@2.0.0-beta.5(@types/node@20.19.37)': + '@contentstack/cli-command@2.0.0-beta.5(@types/node@20.19.39)': dependencies: - '@contentstack/cli-utilities': 2.0.0-beta.5(@types/node@20.19.37) - '@oclif/core': 4.10.2 - '@oclif/plugin-help': 6.2.40 + '@contentstack/cli-utilities': 2.0.0-beta.6(@types/node@20.19.39) + '@oclif/core': 4.10.5 + '@oclif/plugin-help': 6.2.44 contentstack: 3.27.0 transitivePeerDependencies: - '@types/node' - debug - '@contentstack/cli-command@2.0.0-beta.5(@types/node@22.19.15)': + '@contentstack/cli-command@2.0.0-beta.5(@types/node@22.19.17)': dependencies: - '@contentstack/cli-utilities': 2.0.0-beta.5(@types/node@22.19.15) - '@oclif/core': 4.10.2 - '@oclif/plugin-help': 6.2.40 + '@contentstack/cli-utilities': 2.0.0-beta.6(@types/node@22.19.17) + '@oclif/core': 4.10.5 + '@oclif/plugin-help': 6.2.44 contentstack: 3.27.0 transitivePeerDependencies: - '@types/node' - debug - '@contentstack/cli-config@2.0.0-beta.5(@types/node@22.19.15)': + '@contentstack/cli-config@2.0.0-beta.7(@types/node@18.19.130)': dependencies: - '@contentstack/cli-command': 2.0.0-beta.5(@types/node@22.19.15) - '@contentstack/cli-utilities': 2.0.0-beta.5(@types/node@22.19.15) + '@contentstack/cli-command': 2.0.0-beta.5(@types/node@18.19.130) + '@contentstack/cli-utilities': 2.0.0-beta.6(@types/node@18.19.130) '@contentstack/utils': 1.7.1 - '@oclif/core': 4.10.2 - '@oclif/plugin-help': 6.2.40 + '@oclif/core': 4.10.5 + '@oclif/plugin-help': 6.2.44 lodash: 4.18.1 transitivePeerDependencies: - '@types/node' - debug - '@contentstack/cli-config@2.0.0-beta.6(@types/node@18.19.130)': + '@contentstack/cli-config@2.0.0-beta.7(@types/node@22.19.17)': dependencies: - '@contentstack/cli-command': 2.0.0-beta.5(@types/node@18.19.130) - '@contentstack/cli-utilities': 2.0.0-beta.5(@types/node@18.19.130) + '@contentstack/cli-command': 2.0.0-beta.5(@types/node@22.19.17) + '@contentstack/cli-utilities': 2.0.0-beta.6(@types/node@22.19.17) '@contentstack/utils': 1.7.1 - '@oclif/core': 4.10.2 - '@oclif/plugin-help': 6.2.40 + '@oclif/core': 4.10.5 + '@oclif/plugin-help': 6.2.44 lodash: 4.18.1 transitivePeerDependencies: - '@types/node' @@ -7283,19 +7289,19 @@ snapshots: '@contentstack/cli-dev-dependencies@2.0.0-beta.0': dependencies: - '@oclif/core': 4.10.2 - '@oclif/test': 4.1.17(@oclif/core@4.10.2) + '@oclif/core': 4.10.5 + '@oclif/test': 4.1.18(@oclif/core@4.10.5) fancy-test: 2.0.42 lodash: 4.18.1 transitivePeerDependencies: - supports-color - '@contentstack/cli-utilities@2.0.0-beta.5(@types/node@14.18.63)': + '@contentstack/cli-utilities@2.0.0-beta.6(@types/node@14.18.63)': dependencies: - '@contentstack/management': 1.29.1(debug@4.4.3) - '@contentstack/marketplace-sdk': 1.5.0(debug@4.4.3) - '@oclif/core': 4.10.2 - axios: 1.13.6(debug@4.4.3) + '@contentstack/management': 1.29.2(debug@4.4.3) + '@contentstack/marketplace-sdk': 1.5.1(debug@4.4.3) + '@oclif/core': 4.10.5 + axios: 1.15.0(debug@4.4.3) chalk: 5.6.2 cli-cursor: 3.1.0 cli-progress: 3.12.0 @@ -7325,12 +7331,12 @@ snapshots: - '@types/node' - debug - '@contentstack/cli-utilities@2.0.0-beta.5(@types/node@14.18.63)(debug@4.4.3)': + '@contentstack/cli-utilities@2.0.0-beta.6(@types/node@14.18.63)(debug@4.4.3)': dependencies: - '@contentstack/management': 1.29.1(debug@4.4.3) - '@contentstack/marketplace-sdk': 1.5.0(debug@4.4.3) - '@oclif/core': 4.10.2 - axios: 1.13.6(debug@4.4.3) + '@contentstack/management': 1.29.2(debug@4.4.3) + '@contentstack/marketplace-sdk': 1.5.1(debug@4.4.3) + '@oclif/core': 4.10.5 + axios: 1.15.0(debug@4.4.3) chalk: 5.6.2 cli-cursor: 3.1.0 cli-progress: 3.12.0 @@ -7360,12 +7366,12 @@ snapshots: - '@types/node' - debug - '@contentstack/cli-utilities@2.0.0-beta.5(@types/node@18.19.130)': + '@contentstack/cli-utilities@2.0.0-beta.6(@types/node@18.19.130)': dependencies: - '@contentstack/management': 1.29.1(debug@4.4.3) - '@contentstack/marketplace-sdk': 1.5.0(debug@4.4.3) - '@oclif/core': 4.10.2 - axios: 1.13.6(debug@4.4.3) + '@contentstack/management': 1.29.2(debug@4.4.3) + '@contentstack/marketplace-sdk': 1.5.1(debug@4.4.3) + '@oclif/core': 4.10.5 + axios: 1.15.0(debug@4.4.3) chalk: 5.6.2 cli-cursor: 3.1.0 cli-progress: 3.12.0 @@ -7395,12 +7401,12 @@ snapshots: - '@types/node' - debug - '@contentstack/cli-utilities@2.0.0-beta.5(@types/node@20.19.37)': + '@contentstack/cli-utilities@2.0.0-beta.6(@types/node@20.19.39)': dependencies: - '@contentstack/management': 1.29.1(debug@4.4.3) - '@contentstack/marketplace-sdk': 1.5.0(debug@4.4.3) - '@oclif/core': 4.10.2 - axios: 1.13.6(debug@4.4.3) + '@contentstack/management': 1.29.2(debug@4.4.3) + '@contentstack/marketplace-sdk': 1.5.1(debug@4.4.3) + '@oclif/core': 4.10.5 + axios: 1.15.0(debug@4.4.3) chalk: 5.6.2 cli-cursor: 3.1.0 cli-progress: 3.12.0 @@ -7408,7 +7414,7 @@ snapshots: conf: 10.2.0 dotenv: 16.6.1 figures: 3.2.0 - inquirer: 12.11.1(@types/node@20.19.37) + inquirer: 12.11.1(@types/node@20.19.39) inquirer-search-checkbox: 1.0.0 inquirer-search-list: 1.2.6 js-yaml: 4.1.1 @@ -7430,12 +7436,12 @@ snapshots: - '@types/node' - debug - '@contentstack/cli-utilities@2.0.0-beta.5(@types/node@22.19.15)': + '@contentstack/cli-utilities@2.0.0-beta.6(@types/node@22.19.17)': dependencies: - '@contentstack/management': 1.29.1(debug@4.4.3) - '@contentstack/marketplace-sdk': 1.5.0(debug@4.4.3) - '@oclif/core': 4.10.2 - axios: 1.13.6(debug@4.4.3) + '@contentstack/management': 1.29.2(debug@4.4.3) + '@contentstack/marketplace-sdk': 1.5.1(debug@4.4.3) + '@oclif/core': 4.10.5 + axios: 1.15.0(debug@4.4.3) chalk: 5.6.2 cli-cursor: 3.1.0 cli-progress: 3.12.0 @@ -7443,7 +7449,7 @@ snapshots: conf: 10.2.0 dotenv: 16.6.1 figures: 3.2.0 - inquirer: 12.11.1(@types/node@22.19.15) + inquirer: 12.11.1(@types/node@22.19.17) inquirer-search-checkbox: 1.0.0 inquirer-search-list: 1.2.6 js-yaml: 4.1.1 @@ -7465,31 +7471,31 @@ snapshots: - '@types/node' - debug - '@contentstack/management@1.29.1(debug@4.4.3)': + '@contentstack/management@1.29.2(debug@4.4.3)': dependencies: - '@contentstack/utils': 1.8.0 + '@contentstack/utils': 1.9.1 assert: 2.1.0 - axios: 1.13.6(debug@4.4.3) + axios: 1.15.0(debug@4.4.3) buffer: 6.0.3 form-data: 4.0.5 husky: 9.1.7 lodash: 4.18.1 otplib: 12.0.1 - qs: 6.15.0 + qs: 6.15.1 stream-browserify: 3.0.0 transitivePeerDependencies: - debug - '@contentstack/marketplace-sdk@1.5.0(debug@4.4.3)': + '@contentstack/marketplace-sdk@1.5.1(debug@4.4.3)': dependencies: - '@contentstack/utils': 1.8.0 - axios: 1.13.6(debug@4.4.3) + '@contentstack/utils': 1.9.1 + axios: 1.15.0(debug@4.4.3) transitivePeerDependencies: - debug '@contentstack/utils@1.7.1': {} - '@contentstack/utils@1.8.0': {} + '@contentstack/utils@1.9.1': {} '@cspotcode/source-map-support@0.8.1': dependencies: @@ -7501,18 +7507,18 @@ snapshots: enabled: 2.0.0 kuler: 2.0.0 - '@emnapi/core@1.9.1': + '@emnapi/core@1.10.0': dependencies: - '@emnapi/wasi-threads': 1.2.0 + '@emnapi/wasi-threads': 1.2.1 tslib: 2.8.1 optional: true - '@emnapi/runtime@1.9.1': + '@emnapi/runtime@1.10.0': dependencies: tslib: 2.8.1 optional: true - '@emnapi/wasi-threads@1.2.0': + '@emnapi/wasi-threads@1.2.1': dependencies: tslib: 2.8.1 optional: true @@ -7520,87 +7526,87 @@ snapshots: '@es-joy/jsdoccomment@0.50.2': dependencies: '@types/estree': 1.0.8 - '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/types': 8.58.2 comment-parser: 1.4.1 esquery: 1.7.0 jsdoc-type-pratt-parser: 4.1.0 - '@esbuild/aix-ppc64@0.27.4': + '@esbuild/aix-ppc64@0.27.7': optional: true - '@esbuild/android-arm64@0.27.4': + '@esbuild/android-arm64@0.27.7': optional: true - '@esbuild/android-arm@0.27.4': + '@esbuild/android-arm@0.27.7': optional: true - '@esbuild/android-x64@0.27.4': + '@esbuild/android-x64@0.27.7': optional: true - '@esbuild/darwin-arm64@0.27.4': + '@esbuild/darwin-arm64@0.27.7': optional: true - '@esbuild/darwin-x64@0.27.4': + '@esbuild/darwin-x64@0.27.7': optional: true - '@esbuild/freebsd-arm64@0.27.4': + '@esbuild/freebsd-arm64@0.27.7': optional: true - '@esbuild/freebsd-x64@0.27.4': + '@esbuild/freebsd-x64@0.27.7': optional: true - '@esbuild/linux-arm64@0.27.4': + '@esbuild/linux-arm64@0.27.7': optional: true - '@esbuild/linux-arm@0.27.4': + '@esbuild/linux-arm@0.27.7': optional: true - '@esbuild/linux-ia32@0.27.4': + '@esbuild/linux-ia32@0.27.7': optional: true - '@esbuild/linux-loong64@0.27.4': + '@esbuild/linux-loong64@0.27.7': optional: true - '@esbuild/linux-mips64el@0.27.4': + '@esbuild/linux-mips64el@0.27.7': optional: true - '@esbuild/linux-ppc64@0.27.4': + '@esbuild/linux-ppc64@0.27.7': optional: true - '@esbuild/linux-riscv64@0.27.4': + '@esbuild/linux-riscv64@0.27.7': optional: true - '@esbuild/linux-s390x@0.27.4': + '@esbuild/linux-s390x@0.27.7': optional: true - '@esbuild/linux-x64@0.27.4': + '@esbuild/linux-x64@0.27.7': optional: true - '@esbuild/netbsd-arm64@0.27.4': + '@esbuild/netbsd-arm64@0.27.7': optional: true - '@esbuild/netbsd-x64@0.27.4': + '@esbuild/netbsd-x64@0.27.7': optional: true - '@esbuild/openbsd-arm64@0.27.4': + '@esbuild/openbsd-arm64@0.27.7': optional: true - '@esbuild/openbsd-x64@0.27.4': + '@esbuild/openbsd-x64@0.27.7': optional: true - '@esbuild/openharmony-arm64@0.27.4': + '@esbuild/openharmony-arm64@0.27.7': optional: true - '@esbuild/sunos-x64@0.27.4': + '@esbuild/sunos-x64@0.27.7': optional: true - '@esbuild/win32-arm64@0.27.4': + '@esbuild/win32-arm64@0.27.7': optional: true - '@esbuild/win32-ia32@0.27.4': + '@esbuild/win32-ia32@0.27.7': optional: true - '@esbuild/win32-x64@0.27.4': + '@esbuild/win32-x64@0.27.7': optional: true '@eslint-community/eslint-utils@4.9.1(eslint@8.57.1)': @@ -7771,25 +7777,25 @@ snapshots: optionalDependencies: '@types/node': 18.19.130 - '@inquirer/checkbox@4.3.2(@types/node@20.19.37)': + '@inquirer/checkbox@4.3.2(@types/node@20.19.39)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@20.19.37) + '@inquirer/core': 10.3.2(@types/node@20.19.39) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@20.19.37) + '@inquirer/type': 3.0.10(@types/node@20.19.39) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 20.19.37 + '@types/node': 20.19.39 - '@inquirer/checkbox@4.3.2(@types/node@22.19.15)': + '@inquirer/checkbox@4.3.2(@types/node@22.19.17)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@22.19.15) + '@inquirer/core': 10.3.2(@types/node@22.19.17) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@22.19.15) + '@inquirer/type': 3.0.10(@types/node@22.19.17) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 22.19.15 + '@types/node': 22.19.17 '@inquirer/confirm@3.2.0': dependencies: @@ -7810,19 +7816,19 @@ snapshots: optionalDependencies: '@types/node': 18.19.130 - '@inquirer/confirm@5.1.21(@types/node@20.19.37)': + '@inquirer/confirm@5.1.21(@types/node@20.19.39)': dependencies: - '@inquirer/core': 10.3.2(@types/node@20.19.37) - '@inquirer/type': 3.0.10(@types/node@20.19.37) + '@inquirer/core': 10.3.2(@types/node@20.19.39) + '@inquirer/type': 3.0.10(@types/node@20.19.39) optionalDependencies: - '@types/node': 20.19.37 + '@types/node': 20.19.39 - '@inquirer/confirm@5.1.21(@types/node@22.19.15)': + '@inquirer/confirm@5.1.21(@types/node@22.19.17)': dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.15) - '@inquirer/type': 3.0.10(@types/node@22.19.15) + '@inquirer/core': 10.3.2(@types/node@22.19.17) + '@inquirer/type': 3.0.10(@types/node@22.19.17) optionalDependencies: - '@types/node': 22.19.15 + '@types/node': 22.19.17 '@inquirer/core@10.3.2(@types/node@14.18.63)': dependencies: @@ -7850,38 +7856,38 @@ snapshots: optionalDependencies: '@types/node': 18.19.130 - '@inquirer/core@10.3.2(@types/node@20.19.37)': + '@inquirer/core@10.3.2(@types/node@20.19.39)': dependencies: '@inquirer/ansi': 1.0.2 '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@20.19.37) + '@inquirer/type': 3.0.10(@types/node@20.19.39) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 20.19.37 + '@types/node': 20.19.39 - '@inquirer/core@10.3.2(@types/node@22.19.15)': + '@inquirer/core@10.3.2(@types/node@22.19.17)': dependencies: '@inquirer/ansi': 1.0.2 '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@22.19.15) + '@inquirer/type': 3.0.10(@types/node@22.19.17) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 22.19.15 + '@types/node': 22.19.17 '@inquirer/core@9.2.1': dependencies: '@inquirer/figures': 1.0.15 '@inquirer/type': 2.0.0 '@types/mute-stream': 0.0.4 - '@types/node': 22.19.15 + '@types/node': 22.19.17 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 cli-width: 4.1.0 @@ -7907,21 +7913,21 @@ snapshots: optionalDependencies: '@types/node': 18.19.130 - '@inquirer/editor@4.2.23(@types/node@20.19.37)': + '@inquirer/editor@4.2.23(@types/node@20.19.39)': dependencies: - '@inquirer/core': 10.3.2(@types/node@20.19.37) - '@inquirer/external-editor': 1.0.3(@types/node@20.19.37) - '@inquirer/type': 3.0.10(@types/node@20.19.37) + '@inquirer/core': 10.3.2(@types/node@20.19.39) + '@inquirer/external-editor': 1.0.3(@types/node@20.19.39) + '@inquirer/type': 3.0.10(@types/node@20.19.39) optionalDependencies: - '@types/node': 20.19.37 + '@types/node': 20.19.39 - '@inquirer/editor@4.2.23(@types/node@22.19.15)': + '@inquirer/editor@4.2.23(@types/node@22.19.17)': dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.15) - '@inquirer/external-editor': 1.0.3(@types/node@22.19.15) - '@inquirer/type': 3.0.10(@types/node@22.19.15) + '@inquirer/core': 10.3.2(@types/node@22.19.17) + '@inquirer/external-editor': 1.0.3(@types/node@22.19.17) + '@inquirer/type': 3.0.10(@types/node@22.19.17) optionalDependencies: - '@types/node': 22.19.15 + '@types/node': 22.19.17 '@inquirer/expand@4.0.23(@types/node@14.18.63)': dependencies: @@ -7939,21 +7945,21 @@ snapshots: optionalDependencies: '@types/node': 18.19.130 - '@inquirer/expand@4.0.23(@types/node@20.19.37)': + '@inquirer/expand@4.0.23(@types/node@20.19.39)': dependencies: - '@inquirer/core': 10.3.2(@types/node@20.19.37) - '@inquirer/type': 3.0.10(@types/node@20.19.37) + '@inquirer/core': 10.3.2(@types/node@20.19.39) + '@inquirer/type': 3.0.10(@types/node@20.19.39) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 20.19.37 + '@types/node': 20.19.39 - '@inquirer/expand@4.0.23(@types/node@22.19.15)': + '@inquirer/expand@4.0.23(@types/node@22.19.17)': dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.15) - '@inquirer/type': 3.0.10(@types/node@22.19.15) + '@inquirer/core': 10.3.2(@types/node@22.19.17) + '@inquirer/type': 3.0.10(@types/node@22.19.17) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 22.19.15 + '@types/node': 22.19.17 '@inquirer/external-editor@1.0.3(@types/node@14.18.63)': dependencies: @@ -7969,19 +7975,19 @@ snapshots: optionalDependencies: '@types/node': 18.19.130 - '@inquirer/external-editor@1.0.3(@types/node@20.19.37)': + '@inquirer/external-editor@1.0.3(@types/node@20.19.39)': dependencies: chardet: 2.1.1 iconv-lite: 0.7.2 optionalDependencies: - '@types/node': 20.19.37 + '@types/node': 20.19.39 - '@inquirer/external-editor@1.0.3(@types/node@22.19.15)': + '@inquirer/external-editor@1.0.3(@types/node@22.19.17)': dependencies: chardet: 2.1.1 iconv-lite: 0.7.2 optionalDependencies: - '@types/node': 22.19.15 + '@types/node': 22.19.17 '@inquirer/figures@1.0.15': {} @@ -8004,19 +8010,19 @@ snapshots: optionalDependencies: '@types/node': 18.19.130 - '@inquirer/input@4.3.1(@types/node@20.19.37)': + '@inquirer/input@4.3.1(@types/node@20.19.39)': dependencies: - '@inquirer/core': 10.3.2(@types/node@20.19.37) - '@inquirer/type': 3.0.10(@types/node@20.19.37) + '@inquirer/core': 10.3.2(@types/node@20.19.39) + '@inquirer/type': 3.0.10(@types/node@20.19.39) optionalDependencies: - '@types/node': 20.19.37 + '@types/node': 20.19.39 - '@inquirer/input@4.3.1(@types/node@22.19.15)': + '@inquirer/input@4.3.1(@types/node@22.19.17)': dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.15) - '@inquirer/type': 3.0.10(@types/node@22.19.15) + '@inquirer/core': 10.3.2(@types/node@22.19.17) + '@inquirer/type': 3.0.10(@types/node@22.19.17) optionalDependencies: - '@types/node': 22.19.15 + '@types/node': 22.19.17 '@inquirer/number@3.0.23(@types/node@14.18.63)': dependencies: @@ -8032,19 +8038,19 @@ snapshots: optionalDependencies: '@types/node': 18.19.130 - '@inquirer/number@3.0.23(@types/node@20.19.37)': + '@inquirer/number@3.0.23(@types/node@20.19.39)': dependencies: - '@inquirer/core': 10.3.2(@types/node@20.19.37) - '@inquirer/type': 3.0.10(@types/node@20.19.37) + '@inquirer/core': 10.3.2(@types/node@20.19.39) + '@inquirer/type': 3.0.10(@types/node@20.19.39) optionalDependencies: - '@types/node': 20.19.37 + '@types/node': 20.19.39 - '@inquirer/number@3.0.23(@types/node@22.19.15)': + '@inquirer/number@3.0.23(@types/node@22.19.17)': dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.15) - '@inquirer/type': 3.0.10(@types/node@22.19.15) + '@inquirer/core': 10.3.2(@types/node@22.19.17) + '@inquirer/type': 3.0.10(@types/node@22.19.17) optionalDependencies: - '@types/node': 22.19.15 + '@types/node': 22.19.17 '@inquirer/password@4.0.23(@types/node@14.18.63)': dependencies: @@ -8062,21 +8068,21 @@ snapshots: optionalDependencies: '@types/node': 18.19.130 - '@inquirer/password@4.0.23(@types/node@20.19.37)': + '@inquirer/password@4.0.23(@types/node@20.19.39)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@20.19.37) - '@inquirer/type': 3.0.10(@types/node@20.19.37) + '@inquirer/core': 10.3.2(@types/node@20.19.39) + '@inquirer/type': 3.0.10(@types/node@20.19.39) optionalDependencies: - '@types/node': 20.19.37 + '@types/node': 20.19.39 - '@inquirer/password@4.0.23(@types/node@22.19.15)': + '@inquirer/password@4.0.23(@types/node@22.19.17)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@22.19.15) - '@inquirer/type': 3.0.10(@types/node@22.19.15) + '@inquirer/core': 10.3.2(@types/node@22.19.17) + '@inquirer/type': 3.0.10(@types/node@22.19.17) optionalDependencies: - '@types/node': 22.19.15 + '@types/node': 22.19.17 '@inquirer/prompts@7.10.1(@types/node@14.18.63)': dependencies: @@ -8108,35 +8114,35 @@ snapshots: optionalDependencies: '@types/node': 18.19.130 - '@inquirer/prompts@7.10.1(@types/node@20.19.37)': - dependencies: - '@inquirer/checkbox': 4.3.2(@types/node@20.19.37) - '@inquirer/confirm': 5.1.21(@types/node@20.19.37) - '@inquirer/editor': 4.2.23(@types/node@20.19.37) - '@inquirer/expand': 4.0.23(@types/node@20.19.37) - '@inquirer/input': 4.3.1(@types/node@20.19.37) - '@inquirer/number': 3.0.23(@types/node@20.19.37) - '@inquirer/password': 4.0.23(@types/node@20.19.37) - '@inquirer/rawlist': 4.1.11(@types/node@20.19.37) - '@inquirer/search': 3.2.2(@types/node@20.19.37) - '@inquirer/select': 4.4.2(@types/node@20.19.37) + '@inquirer/prompts@7.10.1(@types/node@20.19.39)': + dependencies: + '@inquirer/checkbox': 4.3.2(@types/node@20.19.39) + '@inquirer/confirm': 5.1.21(@types/node@20.19.39) + '@inquirer/editor': 4.2.23(@types/node@20.19.39) + '@inquirer/expand': 4.0.23(@types/node@20.19.39) + '@inquirer/input': 4.3.1(@types/node@20.19.39) + '@inquirer/number': 3.0.23(@types/node@20.19.39) + '@inquirer/password': 4.0.23(@types/node@20.19.39) + '@inquirer/rawlist': 4.1.11(@types/node@20.19.39) + '@inquirer/search': 3.2.2(@types/node@20.19.39) + '@inquirer/select': 4.4.2(@types/node@20.19.39) optionalDependencies: - '@types/node': 20.19.37 - - '@inquirer/prompts@7.10.1(@types/node@22.19.15)': - dependencies: - '@inquirer/checkbox': 4.3.2(@types/node@22.19.15) - '@inquirer/confirm': 5.1.21(@types/node@22.19.15) - '@inquirer/editor': 4.2.23(@types/node@22.19.15) - '@inquirer/expand': 4.0.23(@types/node@22.19.15) - '@inquirer/input': 4.3.1(@types/node@22.19.15) - '@inquirer/number': 3.0.23(@types/node@22.19.15) - '@inquirer/password': 4.0.23(@types/node@22.19.15) - '@inquirer/rawlist': 4.1.11(@types/node@22.19.15) - '@inquirer/search': 3.2.2(@types/node@22.19.15) - '@inquirer/select': 4.4.2(@types/node@22.19.15) + '@types/node': 20.19.39 + + '@inquirer/prompts@7.10.1(@types/node@22.19.17)': + dependencies: + '@inquirer/checkbox': 4.3.2(@types/node@22.19.17) + '@inquirer/confirm': 5.1.21(@types/node@22.19.17) + '@inquirer/editor': 4.2.23(@types/node@22.19.17) + '@inquirer/expand': 4.0.23(@types/node@22.19.17) + '@inquirer/input': 4.3.1(@types/node@22.19.17) + '@inquirer/number': 3.0.23(@types/node@22.19.17) + '@inquirer/password': 4.0.23(@types/node@22.19.17) + '@inquirer/rawlist': 4.1.11(@types/node@22.19.17) + '@inquirer/search': 3.2.2(@types/node@22.19.17) + '@inquirer/select': 4.4.2(@types/node@22.19.17) optionalDependencies: - '@types/node': 22.19.15 + '@types/node': 22.19.17 '@inquirer/rawlist@4.1.11(@types/node@14.18.63)': dependencies: @@ -8154,21 +8160,21 @@ snapshots: optionalDependencies: '@types/node': 18.19.130 - '@inquirer/rawlist@4.1.11(@types/node@20.19.37)': + '@inquirer/rawlist@4.1.11(@types/node@20.19.39)': dependencies: - '@inquirer/core': 10.3.2(@types/node@20.19.37) - '@inquirer/type': 3.0.10(@types/node@20.19.37) + '@inquirer/core': 10.3.2(@types/node@20.19.39) + '@inquirer/type': 3.0.10(@types/node@20.19.39) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 20.19.37 + '@types/node': 20.19.39 - '@inquirer/rawlist@4.1.11(@types/node@22.19.15)': + '@inquirer/rawlist@4.1.11(@types/node@22.19.17)': dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.15) - '@inquirer/type': 3.0.10(@types/node@22.19.15) + '@inquirer/core': 10.3.2(@types/node@22.19.17) + '@inquirer/type': 3.0.10(@types/node@22.19.17) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 22.19.15 + '@types/node': 22.19.17 '@inquirer/search@3.2.2(@types/node@14.18.63)': dependencies: @@ -8188,23 +8194,23 @@ snapshots: optionalDependencies: '@types/node': 18.19.130 - '@inquirer/search@3.2.2(@types/node@20.19.37)': + '@inquirer/search@3.2.2(@types/node@20.19.39)': dependencies: - '@inquirer/core': 10.3.2(@types/node@20.19.37) + '@inquirer/core': 10.3.2(@types/node@20.19.39) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@20.19.37) + '@inquirer/type': 3.0.10(@types/node@20.19.39) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 20.19.37 + '@types/node': 20.19.39 - '@inquirer/search@3.2.2(@types/node@22.19.15)': + '@inquirer/search@3.2.2(@types/node@22.19.17)': dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.15) + '@inquirer/core': 10.3.2(@types/node@22.19.17) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@22.19.15) + '@inquirer/type': 3.0.10(@types/node@22.19.17) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 22.19.15 + '@types/node': 22.19.17 '@inquirer/select@2.5.0': dependencies: @@ -8234,25 +8240,25 @@ snapshots: optionalDependencies: '@types/node': 18.19.130 - '@inquirer/select@4.4.2(@types/node@20.19.37)': + '@inquirer/select@4.4.2(@types/node@20.19.39)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@20.19.37) + '@inquirer/core': 10.3.2(@types/node@20.19.39) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@20.19.37) + '@inquirer/type': 3.0.10(@types/node@20.19.39) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 20.19.37 + '@types/node': 20.19.39 - '@inquirer/select@4.4.2(@types/node@22.19.15)': + '@inquirer/select@4.4.2(@types/node@22.19.17)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@22.19.15) + '@inquirer/core': 10.3.2(@types/node@22.19.17) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@22.19.15) + '@inquirer/type': 3.0.10(@types/node@22.19.17) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 22.19.15 + '@types/node': 22.19.17 '@inquirer/type@1.5.5': dependencies: @@ -8270,13 +8276,13 @@ snapshots: optionalDependencies: '@types/node': 18.19.130 - '@inquirer/type@3.0.10(@types/node@20.19.37)': + '@inquirer/type@3.0.10(@types/node@20.19.39)': optionalDependencies: - '@types/node': 20.19.37 + '@types/node': 20.19.39 - '@inquirer/type@3.0.10(@types/node@22.19.15)': + '@inquirer/type@3.0.10(@types/node@22.19.17)': optionalDependencies: - '@types/node': 22.19.15 + '@types/node': 22.19.17 '@isaacs/fs-minipass@4.0.1': dependencies: @@ -8290,7 +8296,7 @@ snapshots: js-yaml: 3.14.2 resolve-from: 5.0.0 - '@istanbuljs/schema@0.1.3': {} + '@istanbuljs/schema@0.1.6': {} '@jest/console@29.7.0': dependencies: @@ -8486,14 +8492,14 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@jsdoc/salty@0.2.10': + '@jsdoc/salty@0.2.12': dependencies: lodash: 4.18.1 '@napi-rs/wasm-runtime@0.2.12': dependencies: - '@emnapi/core': 1.9.1 - '@emnapi/runtime': 1.9.1 + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 '@tybys/wasm-util': 0.10.1 optional: true @@ -8511,7 +8517,7 @@ snapshots: '@nolyfill/is-core-module@1.0.39': {} - '@oclif/core@4.10.2': + '@oclif/core@4.10.5': dependencies: ansi-escapes: 4.3.2 ansis: 3.17.0 @@ -8523,11 +8529,11 @@ snapshots: indent-string: 4.0.0 is-wsl: 2.2.0 lilconfig: 3.1.3 - minimatch: 10.2.4 + minimatch: 10.2.5 semver: 7.7.4 string-width: 4.2.3 supports-color: 8.1.1 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 widest-line: 3.1.0 wordwrap: 1.0.0 wrap-ansi: 7.0.0 @@ -8544,58 +8550,58 @@ snapshots: indent-string: 4.0.0 is-wsl: 2.2.0 lilconfig: 3.1.3 - minimatch: 10.2.4 + minimatch: 10.2.5 semver: 7.7.4 string-width: 4.2.3 supports-color: 8.1.1 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 widest-line: 3.1.0 wordwrap: 1.0.0 wrap-ansi: 7.0.0 - '@oclif/plugin-help@6.2.40': + '@oclif/plugin-help@6.2.44': dependencies: - '@oclif/core': 4.10.2 + '@oclif/core': 4.10.5 - '@oclif/plugin-not-found@3.2.77(@types/node@14.18.63)': + '@oclif/plugin-not-found@3.2.80(@types/node@14.18.63)': dependencies: '@inquirer/prompts': 7.10.1(@types/node@14.18.63) - '@oclif/core': 4.10.2 + '@oclif/core': 4.10.5 ansis: 3.17.0 fast-levenshtein: 3.0.0 transitivePeerDependencies: - '@types/node' - '@oclif/plugin-not-found@3.2.77(@types/node@18.19.130)': + '@oclif/plugin-not-found@3.2.80(@types/node@18.19.130)': dependencies: '@inquirer/prompts': 7.10.1(@types/node@18.19.130) - '@oclif/core': 4.10.2 + '@oclif/core': 4.10.5 ansis: 3.17.0 fast-levenshtein: 3.0.0 transitivePeerDependencies: - '@types/node' - '@oclif/plugin-not-found@3.2.77(@types/node@20.19.37)': + '@oclif/plugin-not-found@3.2.80(@types/node@20.19.39)': dependencies: - '@inquirer/prompts': 7.10.1(@types/node@20.19.37) - '@oclif/core': 4.10.2 + '@inquirer/prompts': 7.10.1(@types/node@20.19.39) + '@oclif/core': 4.10.5 ansis: 3.17.0 fast-levenshtein: 3.0.0 transitivePeerDependencies: - '@types/node' - '@oclif/plugin-not-found@3.2.77(@types/node@22.19.15)': + '@oclif/plugin-not-found@3.2.80(@types/node@22.19.17)': dependencies: - '@inquirer/prompts': 7.10.1(@types/node@22.19.15) - '@oclif/core': 4.10.2 + '@inquirer/prompts': 7.10.1(@types/node@22.19.17) + '@oclif/core': 4.10.5 ansis: 3.17.0 fast-levenshtein: 3.0.0 transitivePeerDependencies: - '@types/node' - '@oclif/plugin-warn-if-update-available@3.1.57': + '@oclif/plugin-warn-if-update-available@3.1.60': dependencies: - '@oclif/core': 4.10.2 + '@oclif/core': 4.10.5 ansis: 3.17.0 debug: 4.4.3(supports-color@8.1.1) http-call: 5.3.0 @@ -8604,9 +8610,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@oclif/test@4.1.17(@oclif/core@4.10.2)': + '@oclif/test@4.1.18(@oclif/core@4.10.5)': dependencies: - '@oclif/core': 4.10.2 + '@oclif/core': 4.10.5 ansis: 3.17.0 debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: @@ -8673,27 +8679,22 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 - '@sinonjs/fake-timers@15.1.1': + '@sinonjs/fake-timers@15.3.2': dependencies: '@sinonjs/commons': 3.0.1 - '@sinonjs/samsam@8.0.3': + '@sinonjs/samsam@10.0.2': dependencies: '@sinonjs/commons': 3.0.1 type-detect: 4.1.0 - '@sinonjs/samsam@9.0.3': + '@sinonjs/samsam@8.0.3': dependencies: '@sinonjs/commons': 3.0.1 type-detect: 4.1.0 '@sinonjs/text-encoding@0.7.3': {} - '@smithy/abort-controller@4.2.12': - dependencies: - '@smithy/types': 4.13.1 - tslib: 2.8.1 - '@smithy/chunked-blob-reader-native@4.2.3': dependencies: '@smithy/util-base64': 4.3.2 @@ -8703,97 +8704,97 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/config-resolver@4.4.13': + '@smithy/config-resolver@4.4.16': dependencies: - '@smithy/node-config-provider': 4.3.12 - '@smithy/types': 4.13.1 + '@smithy/node-config-provider': 4.3.14 + '@smithy/types': 4.14.1 '@smithy/util-config-provider': 4.2.2 - '@smithy/util-endpoints': 3.3.3 - '@smithy/util-middleware': 4.2.12 + '@smithy/util-endpoints': 3.4.1 + '@smithy/util-middleware': 4.2.14 tslib: 2.8.1 - '@smithy/core@3.23.12': + '@smithy/core@3.23.15': dependencies: - '@smithy/protocol-http': 5.3.12 - '@smithy/types': 4.13.1 - '@smithy/url-parser': 4.2.12 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 '@smithy/util-base64': 4.3.2 '@smithy/util-body-length-browser': 4.2.2 - '@smithy/util-middleware': 4.2.12 - '@smithy/util-stream': 4.5.20 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-stream': 4.5.23 '@smithy/util-utf8': 4.2.2 '@smithy/uuid': 1.1.2 tslib: 2.8.1 - '@smithy/credential-provider-imds@4.2.12': + '@smithy/credential-provider-imds@4.2.14': dependencies: - '@smithy/node-config-provider': 4.3.12 - '@smithy/property-provider': 4.2.12 - '@smithy/types': 4.13.1 - '@smithy/url-parser': 4.2.12 + '@smithy/node-config-provider': 4.3.14 + '@smithy/property-provider': 4.2.14 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 tslib: 2.8.1 - '@smithy/eventstream-codec@4.2.12': + '@smithy/eventstream-codec@4.2.14': dependencies: '@aws-crypto/crc32': 5.2.0 - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.1 '@smithy/util-hex-encoding': 4.2.2 tslib: 2.8.1 - '@smithy/eventstream-serde-browser@4.2.12': + '@smithy/eventstream-serde-browser@4.2.14': dependencies: - '@smithy/eventstream-serde-universal': 4.2.12 - '@smithy/types': 4.13.1 + '@smithy/eventstream-serde-universal': 4.2.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/eventstream-serde-config-resolver@4.3.12': + '@smithy/eventstream-serde-config-resolver@4.3.14': dependencies: - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/eventstream-serde-node@4.2.12': + '@smithy/eventstream-serde-node@4.2.14': dependencies: - '@smithy/eventstream-serde-universal': 4.2.12 - '@smithy/types': 4.13.1 + '@smithy/eventstream-serde-universal': 4.2.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/eventstream-serde-universal@4.2.12': + '@smithy/eventstream-serde-universal@4.2.14': dependencies: - '@smithy/eventstream-codec': 4.2.12 - '@smithy/types': 4.13.1 + '@smithy/eventstream-codec': 4.2.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/fetch-http-handler@5.3.15': + '@smithy/fetch-http-handler@5.3.17': dependencies: - '@smithy/protocol-http': 5.3.12 - '@smithy/querystring-builder': 4.2.12 - '@smithy/types': 4.13.1 + '@smithy/protocol-http': 5.3.14 + '@smithy/querystring-builder': 4.2.14 + '@smithy/types': 4.14.1 '@smithy/util-base64': 4.3.2 tslib: 2.8.1 - '@smithy/hash-blob-browser@4.2.13': + '@smithy/hash-blob-browser@4.2.15': dependencies: '@smithy/chunked-blob-reader': 5.2.2 '@smithy/chunked-blob-reader-native': 4.2.3 - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/hash-node@4.2.12': + '@smithy/hash-node@4.2.14': dependencies: - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.1 '@smithy/util-buffer-from': 4.2.2 '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@smithy/hash-stream-node@4.2.12': + '@smithy/hash-stream-node@4.2.14': dependencies: - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.1 '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@smithy/invalid-dependency@4.2.12': + '@smithy/invalid-dependency@4.2.14': dependencies: - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.1 tslib: 2.8.1 '@smithy/is-array-buffer@2.2.0': @@ -8804,127 +8805,127 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/md5-js@4.2.12': + '@smithy/md5-js@4.2.14': dependencies: - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.1 '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@smithy/middleware-content-length@4.2.12': + '@smithy/middleware-content-length@4.2.14': dependencies: - '@smithy/protocol-http': 5.3.12 - '@smithy/types': 4.13.1 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/middleware-endpoint@4.4.27': + '@smithy/middleware-endpoint@4.4.30': dependencies: - '@smithy/core': 3.23.12 - '@smithy/middleware-serde': 4.2.15 - '@smithy/node-config-provider': 4.3.12 - '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.13.1 - '@smithy/url-parser': 4.2.12 - '@smithy/util-middleware': 4.2.12 + '@smithy/core': 3.23.15 + '@smithy/middleware-serde': 4.2.18 + '@smithy/node-config-provider': 4.3.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 + '@smithy/util-middleware': 4.2.14 tslib: 2.8.1 - '@smithy/middleware-retry@4.4.44': + '@smithy/middleware-retry@4.5.3': dependencies: - '@smithy/node-config-provider': 4.3.12 - '@smithy/protocol-http': 5.3.12 - '@smithy/service-error-classification': 4.2.12 - '@smithy/smithy-client': 4.12.7 - '@smithy/types': 4.13.1 - '@smithy/util-middleware': 4.2.12 - '@smithy/util-retry': 4.2.12 + '@smithy/core': 3.23.15 + '@smithy/node-config-provider': 4.3.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/service-error-classification': 4.2.14 + '@smithy/smithy-client': 4.12.11 + '@smithy/types': 4.14.1 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-retry': 4.3.2 '@smithy/uuid': 1.1.2 tslib: 2.8.1 - '@smithy/middleware-serde@4.2.15': + '@smithy/middleware-serde@4.2.18': dependencies: - '@smithy/core': 3.23.12 - '@smithy/protocol-http': 5.3.12 - '@smithy/types': 4.13.1 + '@smithy/core': 3.23.15 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/middleware-stack@4.2.12': + '@smithy/middleware-stack@4.2.14': dependencies: - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/node-config-provider@4.3.12': + '@smithy/node-config-provider@4.3.14': dependencies: - '@smithy/property-provider': 4.2.12 - '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.13.1 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/node-http-handler@4.5.0': + '@smithy/node-http-handler@4.5.3': dependencies: - '@smithy/abort-controller': 4.2.12 - '@smithy/protocol-http': 5.3.12 - '@smithy/querystring-builder': 4.2.12 - '@smithy/types': 4.13.1 + '@smithy/protocol-http': 5.3.14 + '@smithy/querystring-builder': 4.2.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/property-provider@4.2.12': + '@smithy/property-provider@4.2.14': dependencies: - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/protocol-http@5.3.12': + '@smithy/protocol-http@5.3.14': dependencies: - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/querystring-builder@4.2.12': + '@smithy/querystring-builder@4.2.14': dependencies: - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.1 '@smithy/util-uri-escape': 4.2.2 tslib: 2.8.1 - '@smithy/querystring-parser@4.2.12': + '@smithy/querystring-parser@4.2.14': dependencies: - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/service-error-classification@4.2.12': + '@smithy/service-error-classification@4.2.14': dependencies: - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.1 - '@smithy/shared-ini-file-loader@4.4.7': + '@smithy/shared-ini-file-loader@4.4.9': dependencies: - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/signature-v4@5.3.12': + '@smithy/signature-v4@5.3.14': dependencies: '@smithy/is-array-buffer': 4.2.2 - '@smithy/protocol-http': 5.3.12 - '@smithy/types': 4.13.1 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 '@smithy/util-hex-encoding': 4.2.2 - '@smithy/util-middleware': 4.2.12 + '@smithy/util-middleware': 4.2.14 '@smithy/util-uri-escape': 4.2.2 '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@smithy/smithy-client@4.12.7': + '@smithy/smithy-client@4.12.11': dependencies: - '@smithy/core': 3.23.12 - '@smithy/middleware-endpoint': 4.4.27 - '@smithy/middleware-stack': 4.2.12 - '@smithy/protocol-http': 5.3.12 - '@smithy/types': 4.13.1 - '@smithy/util-stream': 4.5.20 + '@smithy/core': 3.23.15 + '@smithy/middleware-endpoint': 4.4.30 + '@smithy/middleware-stack': 4.2.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + '@smithy/util-stream': 4.5.23 tslib: 2.8.1 - '@smithy/types@4.13.1': + '@smithy/types@4.14.1': dependencies: tslib: 2.8.1 - '@smithy/url-parser@4.2.12': + '@smithy/url-parser@4.2.14': dependencies: - '@smithy/querystring-parser': 4.2.12 - '@smithy/types': 4.13.1 + '@smithy/querystring-parser': 4.2.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 '@smithy/util-base64@4.3.2': @@ -8955,49 +8956,49 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/util-defaults-mode-browser@4.3.43': + '@smithy/util-defaults-mode-browser@4.3.47': dependencies: - '@smithy/property-provider': 4.2.12 - '@smithy/smithy-client': 4.12.7 - '@smithy/types': 4.13.1 + '@smithy/property-provider': 4.2.14 + '@smithy/smithy-client': 4.12.11 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/util-defaults-mode-node@4.2.47': + '@smithy/util-defaults-mode-node@4.2.52': dependencies: - '@smithy/config-resolver': 4.4.13 - '@smithy/credential-provider-imds': 4.2.12 - '@smithy/node-config-provider': 4.3.12 - '@smithy/property-provider': 4.2.12 - '@smithy/smithy-client': 4.12.7 - '@smithy/types': 4.13.1 + '@smithy/config-resolver': 4.4.16 + '@smithy/credential-provider-imds': 4.2.14 + '@smithy/node-config-provider': 4.3.14 + '@smithy/property-provider': 4.2.14 + '@smithy/smithy-client': 4.12.11 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/util-endpoints@3.3.3': + '@smithy/util-endpoints@3.4.1': dependencies: - '@smithy/node-config-provider': 4.3.12 - '@smithy/types': 4.13.1 + '@smithy/node-config-provider': 4.3.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 '@smithy/util-hex-encoding@4.2.2': dependencies: tslib: 2.8.1 - '@smithy/util-middleware@4.2.12': + '@smithy/util-middleware@4.2.14': dependencies: - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/util-retry@4.2.12': + '@smithy/util-retry@4.3.2': dependencies: - '@smithy/service-error-classification': 4.2.12 - '@smithy/types': 4.13.1 + '@smithy/service-error-classification': 4.2.14 + '@smithy/types': 4.14.1 tslib: 2.8.1 - '@smithy/util-stream@4.5.20': + '@smithy/util-stream@4.5.23': dependencies: - '@smithy/fetch-http-handler': 5.3.15 - '@smithy/node-http-handler': 4.5.0 - '@smithy/types': 4.13.1 + '@smithy/fetch-http-handler': 5.3.17 + '@smithy/node-http-handler': 4.5.3 + '@smithy/types': 4.14.1 '@smithy/util-base64': 4.3.2 '@smithy/util-buffer-from': 4.2.2 '@smithy/util-hex-encoding': 4.2.2 @@ -9018,10 +9019,9 @@ snapshots: '@smithy/util-buffer-from': 4.2.2 tslib: 2.8.1 - '@smithy/util-waiter@4.2.13': + '@smithy/util-waiter@4.2.16': dependencies: - '@smithy/abort-controller': 4.2.12 - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.1 tslib: 2.8.1 '@smithy/uuid@1.1.2': @@ -9035,7 +9035,7 @@ snapshots: '@stylistic/eslint-plugin@3.1.0(eslint@8.57.1)(typescript@4.9.5)': dependencies: - '@typescript-eslint/utils': 8.57.2(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/utils': 8.58.2(eslint@8.57.1)(typescript@4.9.5) eslint: 8.57.1 eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -9047,7 +9047,7 @@ snapshots: '@stylistic/eslint-plugin@3.1.0(eslint@8.57.1)(typescript@5.9.3)': dependencies: - '@typescript-eslint/utils': 8.57.2(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.2(eslint@8.57.1)(typescript@5.9.3) eslint: 8.57.1 eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -9060,7 +9060,7 @@ snapshots: '@stylistic/eslint-plugin@5.10.0(eslint@8.57.1)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) - '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/types': 8.58.2 eslint: 8.57.1 eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -9107,7 +9107,7 @@ snapshots: '@types/big-json@3.2.5': dependencies: - '@types/node': 20.19.37 + '@types/node': 20.19.39 '@types/bluebird@3.5.42': {} @@ -9120,7 +9120,7 @@ snapshots: '@types/fs-extra@11.0.4': dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 20.19.37 + '@types/node': 20.19.39 '@types/graceful-fs@4.1.9': dependencies: @@ -9154,7 +9154,7 @@ snapshots: '@types/jsonfile@6.1.4': dependencies: - '@types/node': 20.19.37 + '@types/node': 20.19.39 '@types/linkify-it@5.0.0': {} @@ -9177,7 +9177,7 @@ snapshots: '@types/mute-stream@0.0.4': dependencies: - '@types/node': 20.19.37 + '@types/node': 20.19.39 '@types/node@14.18.63': {} @@ -9185,11 +9185,11 @@ snapshots: dependencies: undici-types: 5.26.5 - '@types/node@20.19.37': + '@types/node@20.19.39': dependencies: undici-types: 6.21.0 - '@types/node@22.19.15': + '@types/node@22.19.17': dependencies: undici-types: 6.21.0 @@ -9197,7 +9197,7 @@ snapshots: '@types/progress-stream@2.0.5': dependencies: - '@types/node': 20.19.37 + '@types/node': 20.19.39 '@types/rewire@2.5.30': {} @@ -9242,10 +9242,10 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5)': + '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@8.58.2(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.57.2(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/parser': 8.58.2(eslint@8.57.1)(typescript@4.9.5) '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.1)(typescript@4.9.5) '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@4.9.5) @@ -9261,10 +9261,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@8.58.2(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.57.2(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/parser': 8.58.2(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.9.3) @@ -9300,14 +9300,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.57.2(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5)': + '@typescript-eslint/eslint-plugin@8.58.2(@typescript-eslint/parser@8.58.2(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.57.2(eslint@8.57.1)(typescript@4.9.5) - '@typescript-eslint/scope-manager': 8.57.2 - '@typescript-eslint/type-utils': 8.57.2(eslint@8.57.1)(typescript@4.9.5) - '@typescript-eslint/utils': 8.57.2(eslint@8.57.1)(typescript@4.9.5) - '@typescript-eslint/visitor-keys': 8.57.2 + '@typescript-eslint/parser': 8.58.2(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/scope-manager': 8.58.2 + '@typescript-eslint/type-utils': 8.58.2(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/utils': 8.58.2(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/visitor-keys': 8.58.2 eslint: 8.57.1 ignore: 7.0.5 natural-compare: 1.4.0 @@ -9316,14 +9316,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.57.2(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.58.2(@typescript-eslint/parser@8.58.2(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.57.2(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.57.2 - '@typescript-eslint/type-utils': 8.57.2(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/utils': 8.57.2(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.57.2 + '@typescript-eslint/parser': 8.58.2(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.58.2 + '@typescript-eslint/type-utils': 8.58.2(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.2(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.58.2 eslint: 8.57.1 ignore: 7.0.5 natural-compare: 1.4.0 @@ -9345,43 +9345,43 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@4.9.5)': + '@typescript-eslint/parser@8.58.2(eslint@8.57.1)(typescript@4.9.5)': dependencies: - '@typescript-eslint/scope-manager': 8.57.2 - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/typescript-estree': 8.57.2(typescript@4.9.5) - '@typescript-eslint/visitor-keys': 8.57.2 + '@typescript-eslint/scope-manager': 8.58.2 + '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/typescript-estree': 8.58.2(typescript@4.9.5) + '@typescript-eslint/visitor-keys': 8.58.2 debug: 4.4.3(supports-color@8.1.1) eslint: 8.57.1 typescript: 4.9.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@5.9.3)': + '@typescript-eslint/parser@8.58.2(eslint@8.57.1)(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.57.2 - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/typescript-estree': 8.57.2(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.57.2 + '@typescript-eslint/scope-manager': 8.58.2 + '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/typescript-estree': 8.58.2(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.58.2 debug: 4.4.3(supports-color@8.1.1) eslint: 8.57.1 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.57.2(typescript@4.9.5)': + '@typescript-eslint/project-service@8.58.2(typescript@4.9.5)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.57.2(typescript@4.9.5) - '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@4.9.5) + '@typescript-eslint/types': 8.58.2 debug: 4.4.3(supports-color@8.1.1) typescript: 4.9.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.57.2(typescript@5.9.3)': + '@typescript-eslint/project-service@8.58.2(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.57.2(typescript@5.9.3) - '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@5.9.3) + '@typescript-eslint/types': 8.58.2 debug: 4.4.3(supports-color@8.1.1) typescript: 5.9.3 transitivePeerDependencies: @@ -9402,16 +9402,16 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/scope-manager@8.57.2': + '@typescript-eslint/scope-manager@8.58.2': dependencies: - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/visitor-keys': 8.57.2 + '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/visitor-keys': 8.58.2 - '@typescript-eslint/tsconfig-utils@8.57.2(typescript@4.9.5)': + '@typescript-eslint/tsconfig-utils@8.58.2(typescript@4.9.5)': dependencies: typescript: 4.9.5 - '@typescript-eslint/tsconfig-utils@8.57.2(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.58.2(typescript@5.9.3)': dependencies: typescript: 5.9.3 @@ -9451,11 +9451,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.57.2(eslint@8.57.1)(typescript@4.9.5)': + '@typescript-eslint/type-utils@8.58.2(eslint@8.57.1)(typescript@4.9.5)': dependencies: - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/typescript-estree': 8.57.2(typescript@4.9.5) - '@typescript-eslint/utils': 8.57.2(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/typescript-estree': 8.58.2(typescript@4.9.5) + '@typescript-eslint/utils': 8.58.2(eslint@8.57.1)(typescript@4.9.5) debug: 4.4.3(supports-color@8.1.1) eslint: 8.57.1 ts-api-utils: 2.5.0(typescript@4.9.5) @@ -9463,11 +9463,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.57.2(eslint@8.57.1)(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.58.2(eslint@8.57.1)(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/typescript-estree': 8.57.2(typescript@5.9.3) - '@typescript-eslint/utils': 8.57.2(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/typescript-estree': 8.58.2(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.2(eslint@8.57.1)(typescript@5.9.3) debug: 4.4.3(supports-color@8.1.1) eslint: 8.57.1 ts-api-utils: 2.5.0(typescript@5.9.3) @@ -9481,7 +9481,7 @@ snapshots: '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/types@8.57.2': {} + '@typescript-eslint/types@8.58.2': {} '@typescript-eslint/typescript-estree@5.62.0(typescript@4.9.5)': dependencies: @@ -9541,31 +9541,31 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.57.2(typescript@4.9.5)': + '@typescript-eslint/typescript-estree@8.58.2(typescript@4.9.5)': dependencies: - '@typescript-eslint/project-service': 8.57.2(typescript@4.9.5) - '@typescript-eslint/tsconfig-utils': 8.57.2(typescript@4.9.5) - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/visitor-keys': 8.57.2 + '@typescript-eslint/project-service': 8.58.2(typescript@4.9.5) + '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@4.9.5) + '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/visitor-keys': 8.58.2 debug: 4.4.3(supports-color@8.1.1) - minimatch: 10.2.4 + minimatch: 10.2.5 semver: 7.7.4 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 ts-api-utils: 2.5.0(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.57.2(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.58.2(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.57.2(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.57.2(typescript@5.9.3) - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/visitor-keys': 8.57.2 + '@typescript-eslint/project-service': 8.58.2(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@5.9.3) + '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/visitor-keys': 8.58.2 debug: 4.4.3(supports-color@8.1.1) - minimatch: 10.2.4 + minimatch: 10.2.5 semver: 7.7.4 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: @@ -9626,23 +9626,23 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@8.57.2(eslint@8.57.1)(typescript@4.9.5)': + '@typescript-eslint/utils@8.58.2(eslint@8.57.1)(typescript@4.9.5)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) - '@typescript-eslint/scope-manager': 8.57.2 - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/typescript-estree': 8.57.2(typescript@4.9.5) + '@typescript-eslint/scope-manager': 8.58.2 + '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/typescript-estree': 8.58.2(typescript@4.9.5) eslint: 8.57.1 typescript: 4.9.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.57.2(eslint@8.57.1)(typescript@5.9.3)': + '@typescript-eslint/utils@8.58.2(eslint@8.57.1)(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) - '@typescript-eslint/scope-manager': 8.57.2 - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/typescript-estree': 8.57.2(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.58.2 + '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/typescript-estree': 8.58.2(typescript@5.9.3) eslint: 8.57.1 typescript: 5.9.3 transitivePeerDependencies: @@ -9663,9 +9663,9 @@ snapshots: '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.57.2': + '@typescript-eslint/visitor-keys@8.58.2': dependencies: - '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/types': 8.58.2 eslint-visitor-keys: 5.0.1 '@ungap/structured-clone@1.3.0': {} @@ -9849,10 +9849,10 @@ snapshots: array-includes@3.1.9: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 is-string: 1.1.1 @@ -9862,34 +9862,34 @@ snapshots: array.prototype.findlastindex@1.2.6: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-errors: 1.3.0 es-object-atoms: 1.1.1 es-shim-unscopables: 1.1.0 array.prototype.flat@1.3.3: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-shim-unscopables: 1.1.0 array.prototype.flatmap@1.3.3: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-shim-unscopables: 1.1.0 arraybuffer.prototype.slice@1.0.4: dependencies: array-buffer-byte-length: 1.0.2 - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-errors: 1.3.0 get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 @@ -9898,7 +9898,7 @@ snapshots: assert@2.1.0: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 is-nan: 1.3.2 object-is: 1.1.6 object.assign: 4.1.7 @@ -9928,11 +9928,11 @@ snapshots: dependencies: possible-typed-array-names: 1.1.0 - axios@1.13.6(debug@4.4.3): + axios@1.15.0(debug@4.4.3): dependencies: - follow-redirects: 1.15.11(debug@4.4.3) + follow-redirects: 1.16.0(debug@4.4.3) form-data: 4.0.5 - proxy-from-env: 1.1.0 + proxy-from-env: 2.1.0 transitivePeerDependencies: - debug @@ -9953,7 +9953,7 @@ snapshots: dependencies: '@babel/helper-plugin-utils': 7.28.6 '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 + '@istanbuljs/schema': 0.1.6 istanbul-lib-instrument: 5.2.1 test-exclude: 6.0.0 transitivePeerDependencies: @@ -9995,7 +9995,7 @@ snapshots: base64-js@1.5.1: {} - baseline-browser-mapping@2.10.10: {} + baseline-browser-mapping@2.10.19: {} big-json@3.2.0: dependencies: @@ -10032,13 +10032,13 @@ snapshots: browser-stdout@1.3.1: {} - browserslist@4.28.1: + browserslist@4.28.2: dependencies: - baseline-browser-mapping: 2.10.10 - caniuse-lite: 1.0.30001781 - electron-to-chromium: 1.5.321 - node-releases: 2.0.36 - update-browserslist-db: 1.2.3(browserslist@4.28.1) + baseline-browser-mapping: 2.10.19 + caniuse-lite: 1.0.30001788 + electron-to-chromium: 1.5.340 + node-releases: 2.0.37 + update-browserslist-db: 1.2.3(browserslist@4.28.2) bs-logger@0.2.6: dependencies: @@ -10096,7 +10096,7 @@ snapshots: es-errors: 1.3.0 function-bind: 1.1.2 - call-bind@1.0.8: + call-bind@1.0.9: dependencies: call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 @@ -10119,7 +10119,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001781: {} + caniuse-lite@1.0.30001788: {} capital-case@1.0.4: dependencies: @@ -10382,7 +10382,7 @@ snapshots: contentstack@3.27.0: dependencies: - '@contentstack/utils': 1.8.0 + '@contentstack/utils': 1.9.1 es6-promise: 4.2.8 husky: 9.1.7 localStorage: 1.0.4 @@ -10393,7 +10393,7 @@ snapshots: core-js-compat@3.49.0: dependencies: - browserslist: 4.28.1 + browserslist: 4.28.2 core-util-is@1.0.3: {} @@ -10551,7 +10551,7 @@ snapshots: cache-point: 2.0.0 common-sequence: 2.0.2 file-set: 4.0.2 - handlebars: 4.7.8 + handlebars: 4.7.9 marked: 4.3.0 object-get: 2.1.1 reduce-flatten: 3.0.1 @@ -10593,7 +10593,7 @@ snapshots: dependencies: jake: 10.9.4 - electron-to-chromium@1.5.321: {} + electron-to-chromium@1.5.340: {} elegant-spinner@1.0.1: {} @@ -10620,12 +10620,12 @@ snapshots: dependencies: is-arrayish: 0.2.1 - es-abstract@1.24.1: + es-abstract@1.24.2: dependencies: array-buffer-byte-length: 1.0.2 arraybuffer.prototype.slice: 1.0.4 available-typed-arrays: 1.0.7 - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 data-view-buffer: 1.0.2 data-view-byte-length: 1.0.2 @@ -10706,34 +10706,34 @@ snapshots: es6-promise@4.2.8: {} - esbuild@0.27.4: + esbuild@0.27.7: optionalDependencies: - '@esbuild/aix-ppc64': 0.27.4 - '@esbuild/android-arm': 0.27.4 - '@esbuild/android-arm64': 0.27.4 - '@esbuild/android-x64': 0.27.4 - '@esbuild/darwin-arm64': 0.27.4 - '@esbuild/darwin-x64': 0.27.4 - '@esbuild/freebsd-arm64': 0.27.4 - '@esbuild/freebsd-x64': 0.27.4 - '@esbuild/linux-arm': 0.27.4 - '@esbuild/linux-arm64': 0.27.4 - '@esbuild/linux-ia32': 0.27.4 - '@esbuild/linux-loong64': 0.27.4 - '@esbuild/linux-mips64el': 0.27.4 - '@esbuild/linux-ppc64': 0.27.4 - '@esbuild/linux-riscv64': 0.27.4 - '@esbuild/linux-s390x': 0.27.4 - '@esbuild/linux-x64': 0.27.4 - '@esbuild/netbsd-arm64': 0.27.4 - '@esbuild/netbsd-x64': 0.27.4 - '@esbuild/openbsd-arm64': 0.27.4 - '@esbuild/openbsd-x64': 0.27.4 - '@esbuild/openharmony-arm64': 0.27.4 - '@esbuild/sunos-x64': 0.27.4 - '@esbuild/win32-arm64': 0.27.4 - '@esbuild/win32-ia32': 0.27.4 - '@esbuild/win32-x64': 0.27.4 + '@esbuild/aix-ppc64': 0.27.7 + '@esbuild/android-arm': 0.27.7 + '@esbuild/android-arm64': 0.27.7 + '@esbuild/android-x64': 0.27.7 + '@esbuild/darwin-arm64': 0.27.7 + '@esbuild/darwin-x64': 0.27.7 + '@esbuild/freebsd-arm64': 0.27.7 + '@esbuild/freebsd-x64': 0.27.7 + '@esbuild/linux-arm': 0.27.7 + '@esbuild/linux-arm64': 0.27.7 + '@esbuild/linux-ia32': 0.27.7 + '@esbuild/linux-loong64': 0.27.7 + '@esbuild/linux-mips64el': 0.27.7 + '@esbuild/linux-ppc64': 0.27.7 + '@esbuild/linux-riscv64': 0.27.7 + '@esbuild/linux-s390x': 0.27.7 + '@esbuild/linux-x64': 0.27.7 + '@esbuild/netbsd-arm64': 0.27.7 + '@esbuild/netbsd-x64': 0.27.7 + '@esbuild/openbsd-arm64': 0.27.7 + '@esbuild/openbsd-x64': 0.27.7 + '@esbuild/openharmony-arm64': 0.27.7 + '@esbuild/sunos-x64': 0.27.7 + '@esbuild/win32-arm64': 0.27.7 + '@esbuild/win32-ia32': 0.27.7 + '@esbuild/win32-x64': 0.27.7 escalade@3.2.0: {} @@ -10754,7 +10754,7 @@ snapshots: '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.9.3) eslint-config-xo-space: 0.35.0(eslint@8.57.1) eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) eslint-plugin-mocha: 10.5.0(eslint@8.57.1) eslint-plugin-n: 15.7.0(eslint@8.57.1) eslint-plugin-perfectionist: 2.11.0(eslint@8.57.1)(typescript@5.9.3) @@ -10778,25 +10778,25 @@ snapshots: transitivePeerDependencies: - eslint - eslint-config-oclif@6.0.152(eslint@8.57.1)(typescript@4.9.5): + eslint-config-oclif@6.0.157(eslint@8.57.1)(typescript@4.9.5): dependencies: '@eslint/compat': 1.4.1(eslint@8.57.1) '@eslint/eslintrc': 3.3.5 '@eslint/js': 9.39.4 '@stylistic/eslint-plugin': 3.1.0(eslint@8.57.1)(typescript@4.9.5) - '@typescript-eslint/eslint-plugin': 8.57.2(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5) - '@typescript-eslint/parser': 8.57.2(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/eslint-plugin': 8.58.2(@typescript-eslint/parser@8.58.2(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/parser': 8.58.2(eslint@8.57.1)(typescript@4.9.5) eslint-config-oclif: 5.2.2(eslint@8.57.1) eslint-config-xo: 0.49.0(eslint@8.57.1) eslint-config-xo-space: 0.35.0(eslint@8.57.1) eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.58.2(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) eslint-plugin-jsdoc: 50.8.0(eslint@8.57.1) eslint-plugin-mocha: 10.5.0(eslint@8.57.1) eslint-plugin-n: 17.24.0(eslint@8.57.1)(typescript@4.9.5) eslint-plugin-perfectionist: 4.15.1(eslint@8.57.1)(typescript@4.9.5) eslint-plugin-unicorn: 56.0.1(eslint@8.57.1) - typescript-eslint: 8.57.2(eslint@8.57.1)(typescript@4.9.5) + typescript-eslint: 8.58.2(eslint@8.57.1)(typescript@4.9.5) transitivePeerDependencies: - eslint - eslint-import-resolver-webpack @@ -10804,25 +10804,25 @@ snapshots: - supports-color - typescript - eslint-config-oclif@6.0.152(eslint@8.57.1)(typescript@5.9.3): + eslint-config-oclif@6.0.157(eslint@8.57.1)(typescript@5.9.3): dependencies: '@eslint/compat': 1.4.1(eslint@8.57.1) '@eslint/eslintrc': 3.3.5 '@eslint/js': 9.39.4 '@stylistic/eslint-plugin': 3.1.0(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/eslint-plugin': 8.57.2(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/parser': 8.57.2(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.58.2(@typescript-eslint/parser@8.58.2(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/parser': 8.58.2(eslint@8.57.1)(typescript@5.9.3) eslint-config-oclif: 5.2.2(eslint@8.57.1) eslint-config-xo: 0.49.0(eslint@8.57.1) eslint-config-xo-space: 0.35.0(eslint@8.57.1) eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.58.2(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) eslint-plugin-jsdoc: 50.8.0(eslint@8.57.1) eslint-plugin-mocha: 10.5.0(eslint@8.57.1) eslint-plugin-n: 17.24.0(eslint@8.57.1)(typescript@5.9.3) eslint-plugin-perfectionist: 4.15.1(eslint@8.57.1)(typescript@5.9.3) eslint-plugin-unicorn: 56.0.1(eslint@8.57.1) - typescript-eslint: 8.57.2(eslint@8.57.1)(typescript@5.9.3) + typescript-eslint: 8.58.2(eslint@8.57.1)(typescript@5.9.3) transitivePeerDependencies: - eslint - eslint-import-resolver-webpack @@ -10849,11 +10849,11 @@ snapshots: eslint: 8.57.1 globals: 16.5.0 - eslint-import-resolver-node@0.3.9: + eslint-import-resolver-node@0.3.10: dependencies: debug: 3.2.7 is-core-module: 2.16.1 - resolve: 1.22.11 + resolve: 2.0.0-next.6 transitivePeerDependencies: - supports-color @@ -10862,13 +10862,13 @@ snapshots: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3(supports-color@8.1.1) eslint: 8.57.1 - get-tsconfig: 4.13.7 + get-tsconfig: 4.14.0 is-bun-module: 2.0.0 stable-hash: 0.0.5 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) transitivePeerDependencies: - supports-color @@ -10877,45 +10877,45 @@ snapshots: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3(supports-color@8.1.1) eslint: 8.57.1 - get-tsconfig: 4.13.7 + get-tsconfig: 4.14.0 is-bun-module: 2.0.0 stable-hash: 0.0.5 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.58.2(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): + eslint-module-utils@2.12.1(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.9.3) eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-node: 0.3.10 eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.58.2(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.57.2(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/parser': 8.58.2(eslint@8.57.1)(typescript@4.9.5) eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-node: 0.3.10 eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.58.2(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.57.2(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/parser': 8.58.2(eslint@8.57.1)(typescript@5.9.3) eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-node: 0.3.10 eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1) transitivePeerDependencies: - supports-color @@ -10933,7 +10933,7 @@ snapshots: eslint-utils: 2.1.0 regexpp: 3.2.0 - eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -10943,8 +10943,8 @@ snapshots: debug: 3.2.7 doctrine: 2.1.0 eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + eslint-import-resolver-node: 0.3.10 + eslint-module-utils: 2.12.1(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -10962,7 +10962,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.58.2(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -10972,8 +10972,8 @@ snapshots: debug: 3.2.7 doctrine: 2.1.0 eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + eslint-import-resolver-node: 0.3.10 + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.58.2(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -10985,13 +10985,13 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.57.2(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/parser': 8.58.2(eslint@8.57.1)(typescript@4.9.5) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.58.2(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -11001,8 +11001,8 @@ snapshots: debug: 3.2.7 doctrine: 2.1.0 eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + eslint-import-resolver-node: 0.3.10 + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.58.2(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -11014,7 +11014,7 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.57.2(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/parser': 8.58.2(eslint@8.57.1)(typescript@5.9.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -11052,7 +11052,7 @@ snapshots: ignore: 5.3.2 is-core-module: 2.16.1 minimatch: 3.1.5 - resolve: 1.22.11 + resolve: 1.22.12 semver: 7.7.4 eslint-plugin-n@17.24.0(eslint@8.57.1)(typescript@4.9.5): @@ -11061,7 +11061,7 @@ snapshots: enhanced-resolve: 5.20.1 eslint: 8.57.1 eslint-plugin-es-x: 7.8.0(eslint@8.57.1) - get-tsconfig: 4.13.7 + get-tsconfig: 4.14.0 globals: 15.15.0 globrex: 0.1.2 ignore: 5.3.2 @@ -11076,7 +11076,7 @@ snapshots: enhanced-resolve: 5.20.1 eslint: 8.57.1 eslint-plugin-es-x: 7.8.0(eslint@8.57.1) - get-tsconfig: 4.13.7 + get-tsconfig: 4.14.0 globals: 15.15.0 globrex: 0.1.2 ignore: 5.3.2 @@ -11097,8 +11097,8 @@ snapshots: eslint-plugin-perfectionist@4.15.1(eslint@8.57.1)(typescript@4.9.5): dependencies: - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/utils': 8.57.2(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/utils': 8.58.2(eslint@8.57.1)(typescript@4.9.5) eslint: 8.57.1 natural-orderby: 5.0.0 transitivePeerDependencies: @@ -11107,8 +11107,8 @@ snapshots: eslint-plugin-perfectionist@4.15.1(eslint@8.57.1)(typescript@5.9.3): dependencies: - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/utils': 8.57.2(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/utils': 8.58.2(eslint@8.57.1)(typescript@5.9.3) eslint: 8.57.1 natural-orderby: 5.0.0 transitivePeerDependencies: @@ -11342,7 +11342,7 @@ snapshots: dependencies: '@types/chai': 4.3.20 '@types/lodash': 4.17.24 - '@types/node': 20.19.37 + '@types/node': 20.19.39 '@types/sinon': 10.0.20 lodash: 4.18.1 mock-stdin: 1.0.0 @@ -11376,15 +11376,15 @@ snapshots: fast-uri@3.1.0: {} - fast-xml-builder@1.1.4: + fast-xml-builder@1.1.5: dependencies: - path-expression-matcher: 1.2.0 + path-expression-matcher: 1.5.0 fast-xml-parser@5.5.8: dependencies: - fast-xml-builder: 1.1.4 - path-expression-matcher: 1.2.0 - strnum: 2.2.2 + fast-xml-builder: 1.1.5 + path-expression-matcher: 1.5.0 + strnum: 2.2.3 fastest-levenshtein@1.0.16: {} @@ -11483,7 +11483,7 @@ snapshots: fn.name@1.1.0: {} - follow-redirects@1.15.11(debug@4.4.3): + follow-redirects@1.16.0(debug@4.4.3): optionalDependencies: debug: 4.4.3(supports-color@8.1.1) @@ -11536,7 +11536,7 @@ snapshots: function.prototype.name@1.1.8: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 functions-have-names: 1.2.3 @@ -11589,7 +11589,7 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 - get-tsconfig@4.13.7: + get-tsconfig@4.14.0: dependencies: resolve-pkg-maps: 1.0.0 @@ -11607,7 +11607,7 @@ snapshots: glob@13.0.6: dependencies: - minimatch: 10.2.4 + minimatch: 10.2.5 minipass: 7.1.3 path-scurry: 2.0.2 @@ -11678,7 +11678,7 @@ snapshots: graphemer@1.4.0: {} - handlebars@4.7.8: + handlebars@4.7.9: dependencies: minimist: 1.2.8 neo-async: 2.6.2 @@ -11834,29 +11834,29 @@ snapshots: optionalDependencies: '@types/node': 18.19.130 - inquirer@12.11.1(@types/node@20.19.37): + inquirer@12.11.1(@types/node@20.19.39): dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@20.19.37) - '@inquirer/prompts': 7.10.1(@types/node@20.19.37) - '@inquirer/type': 3.0.10(@types/node@20.19.37) + '@inquirer/core': 10.3.2(@types/node@20.19.39) + '@inquirer/prompts': 7.10.1(@types/node@20.19.39) + '@inquirer/type': 3.0.10(@types/node@20.19.39) mute-stream: 2.0.0 run-async: 4.0.6 rxjs: 7.8.2 optionalDependencies: - '@types/node': 20.19.37 + '@types/node': 20.19.39 - inquirer@12.11.1(@types/node@22.19.15): + inquirer@12.11.1(@types/node@22.19.17): dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@22.19.15) - '@inquirer/prompts': 7.10.1(@types/node@22.19.15) - '@inquirer/type': 3.0.10(@types/node@22.19.15) + '@inquirer/core': 10.3.2(@types/node@22.19.17) + '@inquirer/prompts': 7.10.1(@types/node@22.19.17) + '@inquirer/type': 3.0.10(@types/node@22.19.17) mute-stream: 2.0.0 run-async: 4.0.6 rxjs: 7.8.2 optionalDependencies: - '@types/node': 22.19.15 + '@types/node': 22.19.17 inquirer@3.3.0: dependencies: @@ -11895,7 +11895,7 @@ snapshots: is-array-buffer@3.0.5: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 get-intrinsic: 1.3.0 @@ -11983,7 +11983,7 @@ snapshots: is-nan@1.3.2: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 is-negative-zero@2.0.3: {} @@ -12081,7 +12081,7 @@ snapshots: istanbul-lib-instrument@4.0.3: dependencies: '@babel/core': 7.29.0 - '@istanbuljs/schema': 0.1.3 + '@istanbuljs/schema': 0.1.6 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 transitivePeerDependencies: @@ -12091,7 +12091,7 @@ snapshots: dependencies: '@babel/core': 7.29.0 '@babel/parser': 7.29.2 - '@istanbuljs/schema': 0.1.3 + '@istanbuljs/schema': 0.1.6 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 transitivePeerDependencies: @@ -12101,7 +12101,7 @@ snapshots: dependencies: '@babel/core': 7.29.0 '@babel/parser': 7.29.2 - '@istanbuljs/schema': 0.1.3 + '@istanbuljs/schema': 0.1.6 istanbul-lib-coverage: 3.2.2 semver: 7.7.4 transitivePeerDependencies: @@ -12329,7 +12329,7 @@ snapshots: jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) jest-util: 29.7.0 jest-validate: 29.7.0 - resolve: 1.22.11 + resolve: 1.22.12 resolve.exports: 2.0.3 slash: 3.0.0 @@ -12513,7 +12513,7 @@ snapshots: jsdoc@4.0.5: dependencies: '@babel/parser': 7.29.2 - '@jsdoc/salty': 0.2.10 + '@jsdoc/salty': 0.2.12 '@types/markdown-it': 14.1.2 bluebird: 3.7.2 catharsis: 0.9.0 @@ -12718,7 +12718,7 @@ snapshots: lru-cache@10.4.3: {} - lru-cache@11.2.7: {} + lru-cache@11.3.5: {} lru-cache@5.1.1: dependencies: @@ -12789,7 +12789,7 @@ snapshots: min-indent@1.0.1: {} - minimatch@10.2.4: + minimatch@10.2.5: dependencies: brace-expansion: 5.0.5 @@ -12893,18 +12893,25 @@ snapshots: transitivePeerDependencies: - supports-color + node-exports-info@1.6.0: + dependencies: + array.prototype.flatmap: 1.3.3 + es-errors: 1.3.0 + object.entries: 1.1.9 + semver: 6.3.1 + node-int64@0.4.0: {} node-preload@0.2.1: dependencies: process-on-spawn: 1.1.0 - node-releases@2.0.36: {} + node-releases@2.0.37: {} normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.11 + resolve: 1.22.12 semver: 5.7.2 validate-npm-package-license: 3.0.4 @@ -12931,7 +12938,7 @@ snapshots: nyc@15.1.0: dependencies: '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 + '@istanbuljs/schema': 0.1.6 caching-transform: 4.0.0 convert-source-map: 1.9.0 decamelize: 1.2.0 @@ -12968,7 +12975,7 @@ snapshots: object-is@1.1.6: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 object-keys@1.1.1: {} @@ -12977,34 +12984,41 @@ snapshots: object.assign@4.1.7: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 has-symbols: 1.1.0 object-keys: 1.1.1 + object.entries@1.1.9: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + object.fromentries@2.0.8: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-object-atoms: 1.1.1 object.groupby@1.0.3: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 object.values@1.2.1: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 - oclif@4.22.96(@types/node@14.18.63): + oclif@4.23.0(@types/node@14.18.63): dependencies: '@aws-sdk/client-cloudfront': 3.1009.0 '@aws-sdk/client-s3': 3.1014.0 @@ -13012,9 +13026,9 @@ snapshots: '@inquirer/input': 2.3.0 '@inquirer/select': 2.5.0 '@oclif/core': 4.9.0 - '@oclif/plugin-help': 6.2.40 - '@oclif/plugin-not-found': 3.2.77(@types/node@14.18.63) - '@oclif/plugin-warn-if-update-available': 3.1.57 + '@oclif/plugin-help': 6.2.44 + '@oclif/plugin-not-found': 3.2.80(@types/node@14.18.63) + '@oclif/plugin-warn-if-update-available': 3.1.60 ansis: 3.17.0 async-retry: 1.3.3 change-case: 4.1.2 @@ -13035,7 +13049,7 @@ snapshots: - aws-crt - supports-color - oclif@4.22.96(@types/node@18.19.130): + oclif@4.23.0(@types/node@18.19.130): dependencies: '@aws-sdk/client-cloudfront': 3.1009.0 '@aws-sdk/client-s3': 3.1014.0 @@ -13043,9 +13057,9 @@ snapshots: '@inquirer/input': 2.3.0 '@inquirer/select': 2.5.0 '@oclif/core': 4.9.0 - '@oclif/plugin-help': 6.2.40 - '@oclif/plugin-not-found': 3.2.77(@types/node@18.19.130) - '@oclif/plugin-warn-if-update-available': 3.1.57 + '@oclif/plugin-help': 6.2.44 + '@oclif/plugin-not-found': 3.2.80(@types/node@18.19.130) + '@oclif/plugin-warn-if-update-available': 3.1.60 ansis: 3.17.0 async-retry: 1.3.3 change-case: 4.1.2 @@ -13066,7 +13080,7 @@ snapshots: - aws-crt - supports-color - oclif@4.22.96(@types/node@20.19.37): + oclif@4.23.0(@types/node@20.19.39): dependencies: '@aws-sdk/client-cloudfront': 3.1009.0 '@aws-sdk/client-s3': 3.1014.0 @@ -13074,9 +13088,9 @@ snapshots: '@inquirer/input': 2.3.0 '@inquirer/select': 2.5.0 '@oclif/core': 4.9.0 - '@oclif/plugin-help': 6.2.40 - '@oclif/plugin-not-found': 3.2.77(@types/node@20.19.37) - '@oclif/plugin-warn-if-update-available': 3.1.57 + '@oclif/plugin-help': 6.2.44 + '@oclif/plugin-not-found': 3.2.80(@types/node@20.19.39) + '@oclif/plugin-warn-if-update-available': 3.1.60 ansis: 3.17.0 async-retry: 1.3.3 change-case: 4.1.2 @@ -13097,7 +13111,7 @@ snapshots: - aws-crt - supports-color - oclif@4.22.96(@types/node@22.19.15): + oclif@4.23.0(@types/node@22.19.17): dependencies: '@aws-sdk/client-cloudfront': 3.1009.0 '@aws-sdk/client-s3': 3.1014.0 @@ -13105,9 +13119,9 @@ snapshots: '@inquirer/input': 2.3.0 '@inquirer/select': 2.5.0 '@oclif/core': 4.9.0 - '@oclif/plugin-help': 6.2.40 - '@oclif/plugin-not-found': 3.2.77(@types/node@22.19.15) - '@oclif/plugin-warn-if-update-available': 3.1.57 + '@oclif/plugin-help': 6.2.44 + '@oclif/plugin-not-found': 3.2.80(@types/node@22.19.17) + '@oclif/plugin-warn-if-update-available': 3.1.60 ansis: 3.17.0 async-retry: 1.3.3 change-case: 4.1.2 @@ -13271,7 +13285,7 @@ snapshots: path-exists@4.0.0: {} - path-expression-matcher@1.2.0: {} + path-expression-matcher@1.5.0: {} path-is-absolute@1.0.1: {} @@ -13283,7 +13297,7 @@ snapshots: path-scurry@2.0.2: dependencies: - lru-cache: 11.2.7 + lru-cache: 11.3.5 minipass: 7.1.3 path-to-regexp@6.3.0: {} @@ -13308,7 +13322,7 @@ snapshots: pluralize@8.0.0: {} - pnpm@10.32.1: {} + pnpm@10.33.0: {} possible-typed-array-names@1.1.0: {} @@ -13357,7 +13371,7 @@ snapshots: proto-list@1.2.4: {} - proxy-from-env@1.1.0: {} + proxy-from-env@2.1.0: {} pump@3.0.4: dependencies: @@ -13370,7 +13384,7 @@ snapshots: pure-rand@6.1.0: {} - qs@6.15.0: + qs@6.15.1: dependencies: side-channel: 1.1.0 @@ -13446,7 +13460,7 @@ snapshots: rechoir@0.6.2: dependencies: - resolve: 1.22.11 + resolve: 1.22.12 redeyed@2.1.1: dependencies: @@ -13464,9 +13478,9 @@ snapshots: reflect.getprototypeof@1.0.10: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-errors: 1.3.0 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 @@ -13477,7 +13491,7 @@ snapshots: regexp.prototype.flags@1.5.4: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 es-errors: 1.3.0 get-proto: 1.0.1 @@ -13522,9 +13536,19 @@ snapshots: resolve.exports@2.0.3: {} - resolve@1.22.11: + resolve@1.22.12: + dependencies: + es-errors: 1.3.0 + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + resolve@2.0.0-next.6: dependencies: + es-errors: 1.3.0 is-core-module: 2.16.1 + node-exports-info: 1.6.0 + object-keys: 1.1.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -13589,7 +13613,7 @@ snapshots: safe-array-concat@1.1.3: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 get-intrinsic: 1.3.0 has-symbols: 1.1.0 @@ -13678,7 +13702,7 @@ snapshots: minimist: 1.2.8 shelljs: 0.9.2 - side-channel-list@1.0.0: + side-channel-list@1.0.1: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 @@ -13702,7 +13726,7 @@ snapshots: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 - side-channel-list: 1.0.0 + side-channel-list: 1.0.1 side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 @@ -13719,13 +13743,12 @@ snapshots: nise: 5.1.9 supports-color: 7.2.0 - sinon@21.0.3: + sinon@21.1.2: dependencies: '@sinonjs/commons': 3.0.1 - '@sinonjs/fake-timers': 15.1.1 - '@sinonjs/samsam': 9.0.3 + '@sinonjs/fake-timers': 15.3.2 + '@sinonjs/samsam': 10.0.2 diff: 8.0.4 - supports-color: 7.2.0 sisteransi@1.0.5: {} @@ -13763,7 +13786,7 @@ snapshots: is-plain-obj: 4.1.0 semver: 7.7.4 sort-object-keys: 1.1.3 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 source-map-js@1.2.1: {} @@ -13870,24 +13893,24 @@ snapshots: string.prototype.trim@1.2.10: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-object-atoms: 1.1.1 has-property-descriptors: 1.0.2 string.prototype.trimend@1.0.9: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 string.prototype.trimstart@1.0.8: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 es-object-atoms: 1.1.1 @@ -13925,7 +13948,7 @@ snapshots: strip-json-comments@3.1.1: {} - strnum@2.2.2: {} + strnum@2.2.3: {} supports-color@2.0.0: {} @@ -13967,7 +13990,7 @@ snapshots: test-exclude@6.0.0: dependencies: - '@istanbuljs/schema': 0.1.3 + '@istanbuljs/schema': 0.1.6 glob: 7.2.3 minimatch: 3.1.5 @@ -14001,7 +14024,7 @@ snapshots: tiny-jsonc@1.0.2: {} - tinyglobby@0.2.15: + tinyglobby@0.2.16: dependencies: fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 @@ -14048,11 +14071,11 @@ snapshots: picomatch: 4.0.4 typescript: 5.9.3 - ts-jest@29.4.6(@babel/core@7.29.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.0))(jest-util@29.7.0)(jest@29.7.0(@types/node@18.19.130)(ts-node@8.10.2(typescript@5.9.3)))(typescript@5.9.3): + ts-jest@29.4.9(@babel/core@7.29.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.0))(jest-util@29.7.0)(jest@29.7.0(@types/node@18.19.130)(ts-node@8.10.2(typescript@5.9.3)))(typescript@5.9.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - handlebars: 4.7.8 + handlebars: 4.7.9 jest: 29.7.0(@types/node@18.19.130)(ts-node@8.10.2(typescript@5.9.3)) json5: 2.2.3 lodash.memoize: 4.1.2 @@ -14104,14 +14127,14 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - ts-node@10.9.2(@types/node@20.19.37)(typescript@5.9.3): + ts-node@10.9.2(@types/node@20.19.39)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.12 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.19.37 + '@types/node': 20.19.39 acorn: 8.16.0 acorn-walk: 8.3.5 arg: 4.1.3 @@ -14122,14 +14145,14 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - ts-node@10.9.2(@types/node@22.19.15)(typescript@4.9.5): + ts-node@10.9.2(@types/node@22.19.17)(typescript@4.9.5): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.12 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.19.15 + '@types/node': 22.19.17 acorn: 8.16.0 acorn-walk: 8.3.5 arg: 4.1.3 @@ -14172,8 +14195,8 @@ snapshots: tsx@4.21.0: dependencies: - esbuild: 0.27.4 - get-tsconfig: 4.13.7 + esbuild: 0.27.7 + get-tsconfig: 4.14.0 optionalDependencies: fsevents: 2.3.3 @@ -14217,7 +14240,7 @@ snapshots: typed-array-byte-length@1.0.3: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 @@ -14226,7 +14249,7 @@ snapshots: typed-array-byte-offset@1.0.4: dependencies: available-typed-arrays: 1.0.7 - call-bind: 1.0.8 + call-bind: 1.0.9 for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 @@ -14235,7 +14258,7 @@ snapshots: typed-array-length@1.0.7: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 for-each: 0.3.5 gopd: 1.2.0 is-typed-array: 1.1.15 @@ -14248,9 +14271,9 @@ snapshots: typedarray.prototype.slice@1.0.5: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-errors: 1.3.0 get-proto: 1.0.1 math-intrinsics: 1.1.0 @@ -14259,23 +14282,23 @@ snapshots: typedarray@0.0.6: {} - typescript-eslint@8.57.2(eslint@8.57.1)(typescript@4.9.5): + typescript-eslint@8.58.2(eslint@8.57.1)(typescript@4.9.5): dependencies: - '@typescript-eslint/eslint-plugin': 8.57.2(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5) - '@typescript-eslint/parser': 8.57.2(eslint@8.57.1)(typescript@4.9.5) - '@typescript-eslint/typescript-estree': 8.57.2(typescript@4.9.5) - '@typescript-eslint/utils': 8.57.2(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/eslint-plugin': 8.58.2(@typescript-eslint/parser@8.58.2(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/parser': 8.58.2(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/typescript-estree': 8.58.2(typescript@4.9.5) + '@typescript-eslint/utils': 8.58.2(eslint@8.57.1)(typescript@4.9.5) eslint: 8.57.1 typescript: 4.9.5 transitivePeerDependencies: - supports-color - typescript-eslint@8.57.2(eslint@8.57.1)(typescript@5.9.3): + typescript-eslint@8.58.2(eslint@8.57.1)(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.57.2(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/parser': 8.57.2(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.57.2(typescript@5.9.3) - '@typescript-eslint/utils': 8.57.2(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.58.2(@typescript-eslint/parser@8.58.2(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/parser': 8.58.2(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.58.2(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.2(eslint@8.57.1)(typescript@5.9.3) eslint: 8.57.1 typescript: 5.9.3 transitivePeerDependencies: @@ -14341,9 +14364,9 @@ snapshots: '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 - update-browserslist-db@1.2.3(browserslist@4.28.1): + update-browserslist-db@1.2.3(browserslist@4.28.2): dependencies: - browserslist: 4.28.1 + browserslist: 4.28.2 escalade: 3.2.0 picocolors: 1.1.1 @@ -14436,7 +14459,7 @@ snapshots: which-typed-array@1.1.20: dependencies: available-typed-arrays: 1.0.7 - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 for-each: 0.3.5 get-proto: 1.0.1