From ce29406ecf40ff39568bc5c994ad4ca8c6eab38a Mon Sep 17 00:00:00 2001 From: shafeeqd959 Date: Wed, 25 Mar 2026 13:14:38 +0530 Subject: [PATCH 1/4] added cursor rules --- .cursor/commands/code-review.md | 122 +++++++++++++ .cursor/commands/execute-tests.md | 107 ++++++++++++ .cursor/rules/README.md | 107 ++++++++++++ .cursor/rules/contentstack-cli.mdc | 165 ++++++++++++++++++ .cursor/rules/dev-workflow.md | 148 ++++++++++++++++ .cursor/rules/oclif-commands.mdc | 219 ++++++++++++++++++++++++ .cursor/rules/testing.mdc | 266 +++++++++++++++++++++++++++++ .cursor/rules/typescript.mdc | 259 ++++++++++++++++++++++++++++ .talismanrc | 6 + 9 files changed, 1399 insertions(+) create mode 100644 .cursor/commands/code-review.md create mode 100644 .cursor/commands/execute-tests.md create mode 100644 .cursor/rules/README.md create mode 100644 .cursor/rules/contentstack-cli.mdc create mode 100644 .cursor/rules/dev-workflow.md create mode 100644 .cursor/rules/oclif-commands.mdc create mode 100644 .cursor/rules/testing.mdc create mode 100644 .cursor/rules/typescript.mdc diff --git a/.cursor/commands/code-review.md b/.cursor/commands/code-review.md new file mode 100644 index 0000000000..c336c0aa17 --- /dev/null +++ b/.cursor/commands/code-review.md @@ -0,0 +1,122 @@ +--- +name: code-review +description: Automated PR review using comprehensive checklist tailored for Contentstack CLI plugins +--- + +# 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/Sinon test patterns +- `/code-review --scope contentstack` - Focus on API integration and CLI patterns +- `/code-review --scope oclif` - Focus on command structure and OCLIF patterns + +### 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 specific package +- `/code-review --package-type plugin` - Review plugin packages only +- `/code-review --package-type library` - Review library packages (e.g., variants) + +### File Type Focus +- `/code-review --files commands` - Review command files only +- `/code-review --files tests` - Review test files only +- `/code-review --files modules` - Review import/export modules + +## Comprehensive Review Checklist + +### Monorepo Structure Compliance +- **Package organization**: Proper placement in `packages/` structure +- **pnpm workspace**: Correct `package.json` workspace configuration +- **Build artifacts**: No `lib/` directories committed to version control +- **Dependencies**: Proper use of shared utilities (`@contentstack/cli-command`, `@contentstack/cli-utilities`) + +### TypeScript Standards (Repository-Specific) +- **Configuration compliance**: Follows package-specific TypeScript config +- **Naming conventions**: kebab-case files, PascalCase classes, camelCase functions +- **Type safety**: Appropriate use of strict mode vs relaxed settings per package +- **Import patterns**: ES modules with proper default/named exports +- **Migration strategy**: Proper use of `@ts-ignore` during gradual migration + +### OCLIF Command Patterns (Actual Implementation) +- **Base class usage**: Extends `@contentstack/cli-command` (not `@oclif/core`) +- **Command structure**: Proper `static description`, `examples`, `flags` +- **Topic organization**: Uses `cm` topic structure (`cm:stacks:import`) +- **Error handling**: Uses `handleAndLogError` from utilities +- **Validation**: Early flag validation and user-friendly error messages +- **Service delegation**: Commands orchestrate, services implement business logic + +### Testing Excellence (Mocha/Chai/Sinon Stack) +- **Framework compliance**: Uses Mocha + Chai + Sinon (not Jest) +- **File patterns**: Follows `*.test.ts` naming (or `*.test.js` for bootstrap) +- **Directory structure**: Proper placement in `test/unit/`, `test/lib/`, etc. +- **Mock patterns**: Proper Sinon stubbing of SDK methods +- **Coverage configuration**: Correct nyc setup (watch for `inlcude` typo) +- **Test isolation**: Proper `beforeEach`/`afterEach` with `sinon.restore()` +- **No real API calls**: All external dependencies properly mocked + +### Contentstack API Integration (Real Patterns) +- **SDK usage**: Proper `managementSDKClient` and fluent API chaining +- **Authentication**: Correct `configHandler` and token alias handling +- **Rate limiting compliance**: + - Batch spacing (minimum 1 second between batches) + - 429 retry handling with exponential backoff + - Pagination throttling for variants +- **Error handling**: Proper `handleAndLogError` usage and user-friendly messages +- **Configuration**: Proper regional endpoint and management token handling + +### Import/Export Module Architecture +- **BaseClass extension**: Proper inheritance from import/export BaseClass +- **Batch processing**: Correct use of `makeConcurrentCall` and `logMsgAndWaitIfRequired` +- **Module organization**: Proper entity-specific module structure +- **Configuration handling**: Proper `ModuleClassParams` usage +- **Progress feedback**: Appropriate user feedback during long operations + +### Security and Best Practices +- **Token security**: No API keys or tokens logged or committed +- **Input validation**: Proper validation of user inputs and flags +- **Error exposure**: No sensitive information in error messages +- **File permissions**: Proper handling of file system operations +- **Process management**: Appropriate use of `process.exit(1)` for critical failures + +### Performance Considerations +- **Concurrent processing**: Proper use of `Promise.allSettled` for batch operations +- **Memory management**: Appropriate handling of large datasets +- **Rate limiting**: Compliance with Contentstack API limits (10 req/sec) +- **Batch sizing**: Appropriate batch sizes for different operations +- **Progress tracking**: Efficient progress reporting without performance impact + +### Package-Specific Patterns +- **Plugin vs Library**: Correct `oclif.commands` configuration for plugin packages +- **Command compilation**: Proper build pipeline (`tsc` → `lib/commands` → `oclif manifest`) +- **Dependency management**: Correct use of shared vs package-specific dependencies +- **Test variations**: Handles different test patterns per package (JS vs TS, different structures) + +## Review Execution + +### Automated Checks +1. **Lint compliance**: ESLint and TypeScript compiler checks +2. **Test coverage**: nyc coverage thresholds (where enforced) +3. **Build verification**: Successful compilation to `lib/` directories +4. **Dependency audit**: No security vulnerabilities in dependencies + +### Manual Review Focus Areas +1. **API integration patterns**: Verify proper SDK usage and error handling +2. **Rate limiting implementation**: Check for proper throttling mechanisms +3. **Test quality**: Verify comprehensive mocking and error scenario coverage +4. **Command usability**: Ensure clear help text and examples +5. **Monorepo consistency**: Check for consistent patterns across packages + +### Common Issues to Flag +- **Coverage config typos**: `"inlcude"` instead of `"include"` in `.nycrc.json` +- **Inconsistent TypeScript**: Mixed strict mode usage without migration plan +- **Real API calls in tests**: Any unmocked external dependencies +- **Missing rate limiting**: API calls without proper throttling +- **Build artifacts committed**: Any `lib/` directories in version control +- **Inconsistent error handling**: Not using utilities error handling patterns diff --git a/.cursor/commands/execute-tests.md b/.cursor/commands/execute-tests.md new file mode 100644 index 0000000000..7cde58bbdd --- /dev/null +++ b/.cursor/commands/execute-tests.md @@ -0,0 +1,107 @@ +--- +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 nyc coverage report +- `/execute-tests --parallel` - Run package tests in parallel using pnpm + +### Package-Specific Testing +- `/execute-tests packages/contentstack-audit/` - Run tests for specific package +- `/execute-tests packages/contentstack-import/` - Run import package tests +- `/execute-tests packages/contentstack-export/` - Run export package tests +- `/execute-tests contentstack-migration` - Run tests by package name (shorthand) + +### Scope-Based Testing +- `/execute-tests unit` - Run unit tests only (`test/unit/**/*.test.ts`) +- `/execute-tests commands` - Run command tests (`test/commands/**/*.test.ts`) +- `/execute-tests services` - Run service layer tests +- `/execute-tests modules` - Run import/export module tests + +### File Pattern Testing +- `/execute-tests *.test.ts` - Run all TypeScript tests +- `/execute-tests *.test.js` - Run JavaScript tests (bootstrap package) +- `/execute-tests test/unit/services/` - 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**: Primarily `*.test.ts`, some `*.test.js` (bootstrap), rare `*.spec.ts` +- **Directory structures**: `test/unit/`, `test/lib/`, `test/seed/`, `test/commands/` +- **Package variations**: Different test layouts per package +- **Build exclusion**: Ignores `lib/` directories (compiled artifacts) + +### 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 `pretest: tsc -p test` scripts +- **Coverage integration**: Works with nyc configuration (`.nycrc.json`) +- **Test helpers**: Detects and includes test initialization files + +## Execution Examples + +### Common Workflows +```bash +# Run all tests with coverage +/execute-tests --coverage + +# Test specific package during development +/execute-tests packages/contentstack-import/ --watch + +# Run only unit tests across all packages +/execute-tests unit + +# Test import/export modules specifically +/execute-tests modules --coverage + +# Debug failing tests in audit package +/execute-tests packages/contentstack-audit/ --debug --bail +``` + +### Package-Specific Commands Generated +```bash +# For contentstack-import package +cd packages/contentstack-import && pnpm test + +# For all packages with coverage +pnpm -r --filter './packages/*' run test:coverage + +# For specific test file +cd packages/contentstack-export && npx mocha test/unit/export/modules/stack.test.ts +``` + +## 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 + +### Coverage Integration +- Uses nyc for coverage reporting +- Respects `.nycrc.json` configurations (with typo detection) +- Generates HTML, text, and lcov reports +- Handles TypeScript source mapping + +### 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 diff --git a/.cursor/rules/README.md b/.cursor/rules/README.md new file mode 100644 index 0000000000..f6bb162a2f --- /dev/null +++ b/.cursor/rules/README.md @@ -0,0 +1,107 @@ +# Cursor Rules + +Context-aware rules that load automatically based on the files you're editing, optimized for this Contentstack CLI plugins monorepo. + +## Rule Files + +| File | Scope | Always Applied | Purpose | +|------|-------|----------------|---------| +| `dev-workflow.md` | `**/*.ts`, `**/*.js`, `**/*.json` | Yes | Monorepo TDD workflow, pnpm workspace patterns | +| `typescript.mdc` | `**/*.ts`, `**/*.tsx` | No | TypeScript config variations, naming conventions | +| `testing.mdc` | `**/test/**/*.ts`, `**/test/**/*.js`, `**/*.test.ts`, `**/*.spec.ts` | Yes | Mocha, Chai, Sinon patterns, nyc coverage | +| `oclif-commands.mdc` | `**/commands/**/*.ts` | No | OCLIF patterns, BaseCommand classes, CLI validation | +| `contentstack-cli.mdc` | `**/import/**/*.ts`, `**/export/**/*.ts`, `**/modules/**/*.ts`, `**/services/**/*.ts`, `**/utils/**/*.ts` | No | API integration, rate limiting, batch processing | + +## 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 Contentstack 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` +- **Import/Export modules** (`packages/*/src/{import,export,modules}/**/*.ts`) → `contentstack-cli.mdc` + `typescript.mdc` + `dev-workflow.md` +- **Service files** (`packages/*/src/services/**/*.ts`) → `contentstack-cli.mdc` + `typescript.mdc` + `dev-workflow.md` +- **Test files** (`packages/*/test/**/*.{ts,js}`) → `testing.mdc` + relevant domain rules + `dev-workflow.md` +- **Utility files** (`packages/*/src/utils/**/*.ts`) → `contentstack-cli.mdc` + `typescript.mdc` + `dev-workflow.md` + +### Package-Specific Loading +- **Plugin packages** (with `oclif.commands`) → Full command and API rules +- **Library packages** (e.g., variants) → TypeScript and utility rules only +- **Bootstrap package** (JavaScript tests) → Adjusted testing rules + +## Repository-Specific Features + +### Monorepo Awareness +- **11 plugin packages** under `packages/` +- **pnpm workspaces** configuration +- **Shared utilities**: `@contentstack/cli-command`, `@contentstack/cli-utilities` +- **Build artifacts**: `lib/` directories (excluded from rules) + +### Actual Patterns Detected +- **Testing**: Mocha + Chai + Sinon (not Jest) +- **TypeScript**: Mixed strict mode adoption +- **Commands**: Extend `@contentstack/cli-command` (not `@oclif/core`) +- **Rate limiting**: Multiple mechanisms (batch spacing, 429 retry, pagination throttle) +- **Coverage**: nyc with inconsistent enforcement + +## Performance Benefits + +- **75-85% token reduction** vs monolithic `.cursorrules` +- **Context-aware loading** - only relevant rules activate based on actual file patterns +- **Precise glob patterns** - avoid loading rules for build artifacts or irrelevant files +- **Skills integration** - rules provide quick context, skills provide comprehensive patterns + +## Design Principles + +### Validated Against Codebase +- Rules reflect **actual patterns** found in repository analysis +- Glob patterns match **real file structure** (not theoretical) +- Examples use **actual dependencies** and APIs +- Coverage targets reflect **current enforcement** (aspirational vs actual) + +### Lightweight and Focused +- Each rule has **single responsibility** +- Detailed patterns referenced via **skills system** +- `alwaysApply: true` only for truly universal patterns +- Package-specific variations acknowledged + +## Validation Checklist + +### Rule Loading Tests (Repository-Specific) +- ✅ **Command files** (`packages/*/src/commands/**/*.ts`) → `oclif-commands.mdc` + `typescript.mdc` + `dev-workflow.md` +- ✅ **Import modules** (`packages/contentstack-import/src/import/**/*.ts`) → `contentstack-cli.mdc` + `typescript.mdc` + `dev-workflow.md` +- ✅ **Export modules** (`packages/contentstack-export/src/export/**/*.ts`) → `contentstack-cli.mdc` + `typescript.mdc` + `dev-workflow.md` +- ✅ **Test files** (`packages/*/test/unit/**/*.test.ts`) → `testing.mdc` + `dev-workflow.md` +- ✅ **Bootstrap tests** (`packages/contentstack-bootstrap/test/**/*.test.js`) → `testing.mdc` (JS-aware) + `dev-workflow.md` +- ✅ **Service files** (`packages/*/src/services/**/*.ts`) → `contentstack-cli.mdc` + `typescript.mdc` + `dev-workflow.md` + +### Manual Verification +1. Open files from different packages in Cursor +2. Check active rules shown in chat interface +3. Verify correct rule combinations load based on file location +4. Test manual rule invocation: `@contentstack-cli show me rate limiting patterns` +5. Confirm no rules load for `lib/` build artifacts + +### Performance Monitoring +- **Before**: Monolithic rules loaded for all files +- **After**: Context-specific rules based on actual file patterns +- **Expected reduction**: 75-85% in token usage +- **Validation**: Rules load only when relevant to current file context + +## Maintenance Notes + +### Regular Updates Needed +- **Glob patterns** - Update when package structure changes +- **TypeScript config** - Align with actual tsconfig.json variations +- **Coverage targets** - Sync with actual nyc configuration +- **Dependencies** - Update when shared utilities change + +### Known Issues to Monitor +- **Coverage typo**: Several `.nycrc.json` files have `"inlcude"` instead of `"include"` +- **Strict mode inconsistency**: Packages have different TypeScript strictness levels +- **Test patterns**: Bootstrap uses `.test.js` while others use `.test.ts` diff --git a/.cursor/rules/contentstack-cli.mdc b/.cursor/rules/contentstack-cli.mdc new file mode 100644 index 0000000000..b7ec1b81bc --- /dev/null +++ b/.cursor/rules/contentstack-cli.mdc @@ -0,0 +1,165 @@ +--- +description: 'Contentstack CLI specific patterns and API integration' +globs: ['**/import/**/*.ts', '**/export/**/*.ts', '**/modules/**/*.ts', '**/services/**/*.ts', '**/utils/**/*.ts'] +alwaysApply: false +--- + +# Contentstack CLI Standards + +## API Integration + +- Use `@contentstack/cli-utilities` for SDK factory: `managementSDKClient(config)` +- Stack-scoped API access: `stackAPIClient.asset()`, `stackAPIClient.extension()` +- Fluent SDK chaining: `stack.contentType().entry().query().find()` +- Custom HTTP for variants: `apiClient.put/get` with path strings + +## Authentication + +- Use `@contentstack/cli-utilities` for token management +- Management token alias: `configHandler.get('tokens.')` +- OAuth context: `configHandler.get('userUid'|'email'|'oauthOrgUid')` +- Authentication check: `isAuthenticated()` before operations +- Never log API keys or tokens in console or files + +## Rate Limiting - Multiple Mechanisms + +### Batch Spacing (Import/Export) +```typescript +// ✅ GOOD - Ensure minimum 1 second between batches +async logMsgAndWaitIfRequired(processName: string, start: number): Promise { + const end = Date.now(); + const exeTime = end - start; + if (exeTime < 1000) await this.delay(1000 - exeTime); +} +``` + +### 429 Retry (Branches) +```typescript +// ✅ GOOD - Handle 429 with retry +export async function handleErrorMsg(err, retryCallback?: () => Promise) { + if (err?.status === 429 || err?.response?.status === 429) { + await new Promise((resolve) => setTimeout(resolve, 1000)); // 1 sec delay + if (retryCallback) { + return retryCallback(); // Retry the request + } + } +} +``` + +### Variant Pagination Throttle +```typescript +// ✅ GOOD - Throttle variant API requests +if (requestTime < 1000) { + await delay(1000 - requestTime); +} +``` + +## Error Handling + +### Standard Pattern +```typescript +// ✅ GOOD - Use handleAndLogError from utilities +try { + const result = await this.stack.contentType().entry().fetch(); +} catch (error) { + handleAndLogError(error); + this.logAndPrintErrorDetails(error, config); +} +``` + +### User-Friendly Errors +```typescript +// ✅ GOOD - User-facing error display +cliux.print(errorMessage, { color: 'red' }); +// For critical failures +process.exit(1); +``` + +## Module Architecture (Import/Export) + +### BaseClass Pattern +```typescript +// ✅ GOOD - Extend BaseClass for entity modules +export class ContentTypes extends BaseClass { + constructor(params: ModuleClassParams) { + super(params); + // Entity-specific initialization + } + + async import(): Promise { + // Use this.makeConcurrentCall for batching + // Use this.logMsgAndWaitIfRequired for rate limiting + } +} +``` + +### Batch Processing +```typescript +// ✅ GOOD - Concurrent batch processing +const batches = chunk(apiContent, batchSize); +for (const batch of batches) { + const start = Date.now(); + await this.makeConcurrentCall(batch, this.processItem.bind(this)); + await this.logMsgAndWaitIfRequired('Processing', start, batches.length, batchIndex); +} +``` + +## Configuration Patterns + +### Import/Export Config +```typescript +// ✅ GOOD - Use configHandler for management tokens +const config = { + host: configHandler.get('region.cma'), + managementTokenAlias: flags.alias, + stackApiKey: flags['stack-api-key'], + rateLimit: 5, // Default rate limit +}; +``` + +### Regional Configuration +```typescript +// ✅ GOOD - Handle regional endpoints +const defaultConfig = { + host: 'https://api.contentstack.io', + cdn: 'https://cdn.contentstack.io', + // Regional developer hub URLs +}; +``` + +## Testing Patterns + +### SDK Mocking +```typescript +// ✅ GOOD - Mock stack client methods +const mockStackClient = { + fetch: sinon.stub().resolves({ name: 'Test Stack', uid: 'stack-uid' }), + locale: sinon.stub().returns({ + query: sinon.stub().returns({ + find: sinon.stub().resolves({ items: [], count: 0 }), + }), + }), +}; +``` + +### Error Simulation +```typescript +// ✅ GOOD - Test error handling +it('should handle 429 rate limit', async () => { + const error = { status: 429 }; + mockClient.fetch.rejects(error); + // Test retry logic +}); +``` + +## Package-Specific Patterns + +### Plugin vs Library +- **Plugin packages**: Have `oclif.commands` in package.json +- **Library packages** (e.g., variants): No OCLIF commands, consumed by other packages + +### Monorepo Structure +- Commands: `packages/*/src/commands/cm/**/*.ts` +- Modules: `packages/*/src/{import,export,modules}/**/*.ts` +- Utilities: `packages/*/src/utils/**/*.ts` +- Built artifacts: `packages/*/lib/**` (not source) diff --git a/.cursor/rules/dev-workflow.md b/.cursor/rules/dev-workflow.md new file mode 100644 index 0000000000..04ac39af64 --- /dev/null +++ b/.cursor/rules/dev-workflow.md @@ -0,0 +1,148 @@ +--- +description: "Core development workflow and TDD patterns - always applied" +globs: ["**/*.ts", "**/*.js", "**/*.json"] +alwaysApply: true +--- + +# Development Workflow + +## Monorepo Structure + +### Package Organization +- **11 plugin packages** under `packages/` +- **pnpm workspaces** with `workspaces: ["packages/*"]` +- **Shared dependencies**: `@contentstack/cli-command`, `@contentstack/cli-utilities` +- **Build artifacts**: `lib/` directory (compiled from `src/`) + +### Development Commands +```bash +# Install dependencies for all packages +pnpm install + +# Run command across all packages +pnpm -r --filter './packages/*' + +# 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('ImportService', () => { + it('should import content types', async () => { + // Arrange - Set up mocks + mockStackClient.contentType.returns({ + create: sinon.stub().resolves({ uid: 'ct-uid' }) + }); + + // Act - Call the method + const result = await importService.importContentTypes(); + + // Assert - Verify behavior + expect(result.success).to.be.true; + expect(mockStackClient.contentType).to.have.been.called; + }); +}); +``` + +## Critical Rules + +### Testing Standards +- **NO implementation before tests** - Test-driven development only +- **Coverage aspiration**: 80% minimum (not uniformly enforced) +- **Mock all external dependencies** - No real API calls in tests +- **Use Mocha + Chai + Sinon** - Standard testing stack + +### Code Quality +- **TypeScript configuration**: Varies by package (strict mode aspirational) +- **NO test.skip or .only in commits** - Clean test suites only +- **Proper error handling** - Use `handleAndLogError` from utilities + +### Build Process +```bash +# Standard build process +pnpm run build # tsc compilation +pnpm run test # Run test suite +oclif manifest # Generate OCLIF manifest +``` + +## Package-Specific Patterns + +### Plugin Packages +- Have `oclif.commands` in `package.json` +- Commands in `src/commands/cm/**/*.ts` +- Built commands in `lib/commands/` +- Extend `@contentstack/cli-command` + +### Library Packages (e.g., variants) +- No OCLIF commands configuration +- Pure TypeScript libraries +- Consumed by other packages +- `main` points to `lib/index.js` + +## Quick Reference + +For detailed patterns, see skills: +- `@skills/testing` - Mocha, Chai, Sinon patterns and TDD workflow +- `@skills/contentstack-cli` - API integration, rate limiting, authentication +- `@skills/oclif-commands` - Command structure, base classes, validation + +## 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 (SDK, file system, etc.) +- [ ] Use proper error handling patterns +- [ ] 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 Layer Architecture +```typescript +// ✅ GOOD - Separate concerns +export default class ImportCommand extends Command { + async run(): Promise { + const config = this.buildConfig(); + const service = new ImportService(config); + + try { + await service.execute(); + this.log('Import completed successfully'); + } catch (error) { + handleAndLogError(error); + } + } +} +``` + +### Rate Limiting Compliance +```typescript +// ✅ GOOD - Respect API limits +async processBatch(batch: Item[]): Promise { + const start = Date.now(); + await this.makeConcurrentCall(batch, this.processItem); + await this.logMsgAndWaitIfRequired('Processing', start); +} +``` diff --git a/.cursor/rules/oclif-commands.mdc b/.cursor/rules/oclif-commands.mdc new file mode 100644 index 0000000000..ac186ff52c --- /dev/null +++ b/.cursor/rules/oclif-commands.mdc @@ -0,0 +1,219 @@ +--- +description: 'OCLIF command development patterns and CLI best practices' +globs: ['**/commands/**/*.ts'] +alwaysApply: false +--- + +# OCLIF Command Standards + +## Command Structure + +### Standard Command Pattern +```typescript +// ✅ GOOD - Standard command structure +import { Command } from '@contentstack/cli-command'; + +export default class ImportCommand extends Command { + static description = 'Import content from a stack'; + + static examples: string[] = [ + 'csdx cm:stacks:import --stack-api-key --data-dir ', + 'csdx cm:stacks:import --alias --config ', + ]; + + static flags = { + // Define flags using utilities + }; + + async run(): Promise { + // Main command logic + } +} +``` + +## Base Classes Available + +### BaseCommand (Audit Package) +```typescript +// ✅ GOOD - Extend BaseCommand for shared functionality +export abstract class BaseCommand extends Command { + static baseFlags: FlagInput = { + config: Flags.string({ char: 'c', description: 'Config path' }), + 'data-dir': Flags.string({ char: 'd', description: 'Data directory' }), + 'show-console-output': Flags.boolean({ description: 'Show console output' }), + }; + + public async init(): Promise { + await super.init(); + const { args, flags } = await this.parse({ + flags: this.ctor.flags, + baseFlags: (super.ctor as typeof BaseCommand).baseFlags, + // ... + }); + } +} +``` + +### BaseCommand (Export-to-CSV Package) +```typescript +// ✅ GOOD - Lightweight base with command context +export abstract class BaseCommand extends Command { + public commandContext!: CommandContext; + + public async init(): Promise { + await super.init(); + this.commandContext = this.createCommandContext(); + log.debug('Command initialized', this.commandContext); + } + + protected async catch(err: Error & { exitCode?: number }): Promise { + log.debug('Command error caught', { ...this.commandContext, error: err.message }); + return super.catch(err); + } +} +``` + +## Command Patterns + +### Import Commands +- Use `@contentstack/cli-command` Command base +- Parse with `ImportCommand` type for config validation +- Handle authentication via `configHandler` and `isAuthenticated` +- Delegate to service layer modules + +### Direct Extension Pattern +```typescript +// ✅ GOOD - Most packages extend Command directly +export default class BranchMerge extends Command { + static description = 'Merge branches'; + + async run(): Promise { + const { flags } = await this.parse(BranchMerge); + // Command-specific logic + } +} +``` + +## OCLIF Configuration + +### Package.json Setup +```json +{ + "oclif": { + "commands": "./lib/commands", + "bin": "csdx", + "topicSeparator": ":" + } +} +``` + +### Command Topics +- All commands use `cm` topic: `cm:stacks:import`, `cm:branches:merge` +- Built commands live in `lib/commands` (compiled from `src/commands`) +- Optional `csdxConfig.shortCommandName` for abbreviated names + +## Error Handling + +### Standard Error Pattern +```typescript +// ✅ GOOD - Use handleAndLogError from utilities +try { + await this.executeCommand(); +} catch (error) { + handleAndLogError(error); + this.logAndPrintErrorDetails(error, config); +} +``` + +### User-Friendly Messages +```typescript +// ✅ GOOD - Clear user feedback +cliux.print('Operation completed successfully', { color: 'green' }); +cliux.print('Error occurred', { color: 'red' }); + +// For critical failures +process.exit(1); +``` + +## Validation Patterns + +### Early Validation +```typescript +// ✅ GOOD - Validate flags early +async run(): Promise { + const { flags } = await this.parse(MyCommand); + + // Validate required combinations + if (!flags.alias && !flags['stack-api-key']) { + this.error('Either --alias or --stack-api-key is required'); + } + + // Proceed with validated input +} +``` + +### Authentication Check +```typescript +// ✅ GOOD - Check authentication before operations +if (!isAuthenticated()) { + this.error('Please login first using: csdx auth:login'); +} +``` + +## Progress and Logging + +### Progress Feedback +```typescript +// ✅ GOOD - Provide user feedback +this.log('Starting import process...'); +cliux.print('Processing entries...', { color: 'blue' }); + +// Use progress bars for long operations +const progressBar = cliux.progress.start(total); +progressBar.increment(); +progressBar.stop(); +``` + +### Debug Logging +```typescript +// ✅ GOOD - Use structured logging +log.debug('Command initialized', { + command: this.id, + flags: this.flags +}); +``` + +## Command Delegation + +### Service Layer Separation +```typescript +// ✅ GOOD - Commands orchestrate, services implement +async run(): Promise { + const config = this.buildConfig(); + const service = new ImportService(config); + + try { + await service.execute(); + this.log('Import 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:stacks:import', () => { + test + .stdout() + .command(['cm:stacks:import', '--help']) + .it('shows help', ctx => { + expect(ctx.stdout).to.contain('Import content from a stack'); + }); +}); +``` diff --git a/.cursor/rules/testing.mdc b/.cursor/rules/testing.mdc new file mode 100644 index 0000000000..7fc3a7c936 --- /dev/null +++ b/.cursor/rules/testing.mdc @@ -0,0 +1,266 @@ +--- +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 +- **Sinon** - Mocking and stubbing +- **@oclif/test** - Command testing support +- **nyc** - Code coverage + +### Package-Specific Tools +- **nock** - HTTP mocking (migration package) +- **rewire** - Module patching (import package) + +## Test File Patterns + +### Naming Conventions +- **Primary**: `*.test.ts` (dominant pattern) +- **Alternative**: `*.spec.ts` (less common) +- **Bootstrap exception**: `*.test.js` (JavaScript tests) + +### Directory Structure +``` +packages/*/ +├── test/unit/**/*.test.ts # Most packages +├── test/lib/**/*.test.ts # clone package +├── test/seed/**/*.test.ts # seed package +└── test/commands/**/*.test.ts # command-specific tests +``` + +## 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 +{ + "pretest": "tsc -p test", + "test": "nyc --extension .ts mocha" +} +``` + +## Mocking Patterns + +### Sinon SDK Mocking +```typescript +// ✅ GOOD - Mock Contentstack SDK methods +const mockStackClient = { + fetch: sinon.stub().resolves({ + name: 'Test Stack', + uid: 'stack-uid', + org_uid: 'org-uid' + }), + locale: sinon.stub().returns({ + query: sinon.stub().returns({ + find: sinon.stub().resolves({ + items: [{ + uid: 'locale-1', + name: 'English (United States)', + code: 'en-us' + }], + count: 1, + }), + }), + }), +}; +``` + +### Module Stubbing +```typescript +// ✅ GOOD - Stub sibling modules +beforeEach(() => { + sinon.stub(mapModule, 'processEntries').resolves([]); + sinon.stub(configModule, 'getConfig').returns(mockConfig); +}); + +afterEach(() => { + sinon.restore(); +}); +``` + +### HTTP Mocking (Migration) +```typescript +// ✅ GOOD - Use nock for HTTP mocking +import nock from 'nock'; + +beforeEach(() => { + nock('https://api.contentstack.io') + .get('/v3/stacks') + .reply(200, { stacks: [] }); +}); +``` + +## Coverage Configuration + +### NYC Setup (.nycrc.json) +```json +{ + "extension": [".ts"], + "include": ["src/**/*.ts"], + "exclude": ["**/*.test.ts", "**/*.spec.ts"], + "reporter": ["text", "html", "lcov"], + "all": true +} +``` + +### Coverage Targets +- **Team aspiration**: 80% minimum coverage +- **Current enforcement**: Inconsistent across packages +- **Note**: Some packages have `check-coverage: false` +- **Typo alert**: Several `.nycrc.json` files have `"inlcude"` instead of `"include"` + +## Test Structure + +### Standard Test Pattern +```typescript +// ✅ GOOD - Comprehensive test structure +describe('ContentTypes Module', () => { + let mockStackClient: any; + let contentTypes: ContentTypes; + + beforeEach(() => { + mockStackClient = createMockStackClient(); + contentTypes = new ContentTypes({ + stackAPIClient: mockStackClient, + importConfig: mockConfig, + }); + }); + + afterEach(() => { + sinon.restore(); + }); + + describe('import()', () => { + it('should import content types successfully', async () => { + // Arrange + mockStackClient.contentType.returns({ + create: sinon.stub().resolves({ uid: 'ct-uid' }) + }); + + // Act + await contentTypes.import(); + + // Assert + expect(mockStackClient.contentType).to.have.been.called; + }); + + it('should handle API errors gracefully', async () => { + // Arrange + const error = new Error('API Error'); + mockStackClient.contentType.throws(error); + + // Act & Assert + await expect(contentTypes.import()).to.be.rejectedWith('API Error'); + }); + }); +}); +``` + +## Command Testing + +### OCLIF Test Pattern +```typescript +// ✅ GOOD - Test commands with @oclif/test +import { test } from '@oclif/test'; + +describe('cm:stacks:import', () => { + test + .stdout() + .command(['cm:stacks:import', '--help']) + .it('shows help message', ctx => { + expect(ctx.stdout).to.contain('Import content from a stack'); + }); + + test + .stderr() + .command(['cm:stacks:import']) + .exit(2) + .it('fails without required flags'); +}); +``` + +## Error Testing + +### Rate Limit Testing +```typescript +// ✅ GOOD - Test rate limiting behavior +it('should handle 429 rate limit errors', async () => { + const rateLimitError = { status: 429 }; + mockClient.fetch.onFirstCall().rejects(rateLimitError); + mockClient.fetch.onSecondCall().resolves(mockResponse); + + const result = await service.fetchWithRetry(); + + expect(mockClient.fetch).to.have.been.calledTwice; + expect(result).to.equal(mockResponse); +}); +``` + +### Authentication Testing +```typescript +// ✅ GOOD - Test authentication scenarios +it('should handle token expiration', async () => { + const authError = { status: 401, message: 'Unauthorized' }; + mockClient.fetch.rejects(authError); + + await expect(service.makeRequest()).to.be.rejectedWith('Unauthorized'); +}); +``` + +## Test Data Management + +### Mock Data Organization +```typescript +// ✅ GOOD - Organize test data +const mockData = { + contentTypes: [ + { uid: 'ct1', title: 'Content Type 1' }, + { uid: 'ct2', title: 'Content Type 2' }, + ], + entries: [ + { uid: 'entry1', title: 'Entry 1', content_type: 'ct1' }, + ], +}; +``` + +### Test Helpers +```typescript +// ✅ GOOD - Create reusable test utilities +export function createMockStackClient() { + return { + fetch: sinon.stub(), + contentType: sinon.stub(), + entry: sinon.stub(), + // ... other methods + }; +} +``` + +## Critical Testing Rules + +- **No real API calls** - Always mock external dependencies +- **Test both success and failure paths** - Cover error scenarios +- **Mock at service boundaries** - Don't mock internal implementation details +- **Use proper cleanup** - Always restore stubs in afterEach +- **Test command validation** - Verify flag validation and error messages diff --git a/.cursor/rules/typescript.mdc b/.cursor/rules/typescript.mdc new file mode 100644 index 0000000000..d3ff4774b1 --- /dev/null +++ b/.cursor/rules/typescript.mdc @@ -0,0 +1,259 @@ +--- +description: 'TypeScript strict mode standards and naming conventions' +globs: ['**/*.ts', '**/*.tsx'] +alwaysApply: false +--- + +# TypeScript Standards + +## Configuration + +### Root Configuration +```json +// tsconfig.json - Baseline configuration +{ + "compilerOptions": { + "strict": true, + "module": "commonjs", + "target": "es2016", + "declaration": true, + "outDir": "lib", + "rootDir": "src" + } +} +``` + +### Package-Level Variations +```json +// Most packages override with: +{ + "compilerOptions": { + "strict": false, // ⚠️ Relaxed for legacy code + "noImplicitAny": true, // ✅ Still enforce type annotations + "target": "es2017", + "allowJs": true // Mixed JS/TS support + } +} +``` + +### Modern Packages (Bootstrap, Variants) +```json +// TypeScript 5.x with stricter settings +{ + "compilerOptions": { + "strict": true, + "target": "es2020", + "moduleResolution": "node16" + } +} +``` + +## Naming Conventions (Actual Usage) + +### Files +- **Primary pattern**: `kebab-case.ts` (`base-class.ts`, `import-config-handler.ts`) +- **Single-word modules**: `stack.ts`, `locales.ts`, `entries.ts` +- **Commands**: Follow OCLIF topic structure (`cm/stacks/import.ts`) + +### Classes +```typescript +// ✅ GOOD - PascalCase for classes +export class ImportCommand extends Command { } +export class BaseClass { } +export class ExportStack { } +export class ContentTypes { } +``` + +### Functions and Methods +```typescript +// ✅ GOOD - camelCase for functions +export async function fetchAllEntries(): Promise { } +async logMsgAndWaitIfRequired(): Promise { } +createCommandContext(): CommandContext { } +``` + +### Constants +```typescript +// ✅ GOOD - SCREAMING_SNAKE_CASE for constants +const DEFAULT_RATE_LIMIT = 5; +const MAX_RETRY_ATTEMPTS = 3; +const API_BASE_URL = 'https://api.contentstack.io'; +``` + +### Interfaces and Types +```typescript +// ✅ GOOD - PascalCase for types +export interface ModuleClassParams { + importConfig: ImportConfig; + stackAPIClient: ManagementStack; +} + +export type ApiOptions = { + host?: string; + timeout?: number; +}; + +export type EnvType = 'development' | 'staging' | 'production'; +``` + +## Import/Export Patterns + +### ES Modules (Preferred) +```typescript +// ✅ GOOD - ES import/export syntax +import { Command } from '@contentstack/cli-command'; +import type { ImportConfig } from '../types'; +import { managementSDKClient } from '@contentstack/cli-utilities'; + +export default class ImportCommand extends Command { } +export { ImportConfig, ApiOptions }; +``` + +### Default Exports +```typescript +// ✅ GOOD - Default export for commands and main classes +export default class ImportCommand extends Command { } +export default class BaseClass { } +``` + +### Named Exports +```typescript +// ✅ GOOD - Named exports for utilities and types +export async function delay(ms: number): Promise { } +export interface ConfigOptions { } +export type ModuleType = 'import' | 'export'; +``` + +## Type Definitions + +### Local Types +```typescript +// ✅ GOOD - Define types close to usage +export interface ImportOptions { + stackApiKey: string; + dataDir: string; + rateLimit?: number; +} + +export type BatchResult = { + success: boolean; + errors: Error[]; + processedCount: number; +}; +``` + +### Type Organization +```typescript +// ✅ GOOD - Organize types in dedicated files +// src/types/index.ts +export interface ImportConfig { } +export interface ExportConfig { } +export type ModuleClassParams = { }; +``` + +## Strict Mode Compliance + +### Function Return Types +```typescript +// ✅ GOOD - Explicit return types +export async function fetchEntries(): Promise { + return await this.stack.entry().query().find(); +} + +export function createConfig(): ImportConfig { + return { + stackApiKey: '', + dataDir: './data', + }; +} +``` + +### Null Safety +```typescript +// ✅ GOOD - Handle null/undefined explicitly +function processEntry(entry: Entry | null): void { + if (!entry) { + throw new Error('Entry is required'); + } + // Process entry safely +} +``` + +### Type Guards +```typescript +// ✅ GOOD - Use type guards for runtime checks +function isImportConfig(config: unknown): config is ImportConfig { + return typeof config === 'object' && + config !== null && + 'stackApiKey' in config; +} +``` + +## Error Handling Types + +### Custom Error Classes +```typescript +// ✅ GOOD - Typed error classes +export class ContentstackApiError extends Error { + constructor( + message: string, + public readonly statusCode?: number, + public readonly cause?: Error + ) { + super(message); + this.name = 'ContentstackApiError'; + } +} +``` + +### Error Union Types +```typescript +// ✅ GOOD - Model expected errors +type ApiResult = { + success: true; + data: T; +} | { + success: false; + error: string; + statusCode: number; +}; +``` + +## Migration Strategy + +### Gradual Strict Mode Adoption +```typescript +// ✅ ACCEPTABLE - Gradual migration approach +// @ts-ignore for legacy code during migration +// TODO: Remove @ts-ignore and fix types +// @ts-ignore +const legacyResult = oldApiCall(); +``` + +### Type Assertions (Use Sparingly) +```typescript +// ⚠️ USE CAREFULLY - Type assertions when necessary +const config = unknownConfig as ImportConfig; + +// ✅ BETTER - Use type guards instead +if (isImportConfig(unknownConfig)) { + const config = unknownConfig; // TypeScript knows the type +} +``` + +## Package-Specific Patterns + +### Command Packages +- Extend `@contentstack/cli-command` types +- Use OCLIF flag types from utilities +- Define command-specific interfaces + +### Library Packages (Variants) +- No OCLIF dependencies +- Pure TypeScript interfaces +- Consumed by other packages + +### Test Files +- Use `any` sparingly for mock objects +- Prefer typed mocks when possible +- Test type safety with TypeScript compiler diff --git a/.talismanrc b/.talismanrc index e9954f9fc5..a38c65af00 100644 --- a/.talismanrc +++ b/.talismanrc @@ -1,4 +1,10 @@ fileignoreconfig: - filename: pnpm-lock.yaml checksum: b8dc082b59f03873ab00adddd07df399fc74e90491f50ee96297467016fc9f20 + - filename: .cursor/rules/dev-workflow.md + checksum: ae8f8b2894c5cf0da6a85eb53c97775bd38835c191f9132ecaa24dcb9f439811 + - filename: .cursor/rules/contentstack-cli.mdc + checksum: ba287a9e9dcf6565d2d2e79c9bbf6350a89e13afbd1f8755973d837563115c83 + - filename: .cursor/rules/oclif-commands.mdc + checksum: 3f9891d3d5872a2823c83215bc1727911dd32935d17d91ad5f2e7d5f75f3ab61 version: '1.0' From 87ddd230190278bc3d915a362891f55f5c8011e3 Mon Sep 17 00:00:00 2001 From: shafeeqd959 Date: Thu, 2 Apr 2026 12:26:02 +0530 Subject: [PATCH 2/4] overrided brace expansion --- .talismanrc | 2 +- pnpm-lock.yaml | 109 ++++++++++++++++++-------------------------- pnpm-workspace.yaml | 3 ++ 3 files changed, 48 insertions(+), 66 deletions(-) diff --git a/.talismanrc b/.talismanrc index 24eab9423a..4ec15cb6a0 100644 --- a/.talismanrc +++ b/.talismanrc @@ -1,6 +1,6 @@ fileignoreconfig: - filename: pnpm-lock.yaml - checksum: fe9ac61ec17596aed093bd8ae333537962f9256a4a6c7f018a7f628a69f8cd22 + checksum: 32174eeb6641b529fcc776b47cff6e98132bdae54f3ec4087cd0b4d365c9c043 - filename: .cursor/commands/code-review.md checksum: bb748acc62e25aecdce6e48a519ed293ca97adba270a8736ece7063f3ffc5ab1 - filename: .cursor/rules/oclif-commands.mdc diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7ca97ffb98..2141d0d49f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,10 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + brace-expansion: 5.0.5 + lodash: 4.18.1 + importers: .: @@ -336,8 +340,8 @@ importers: specifier: ^6.2.28 version: 6.2.40 lodash: - specifier: ^4.17.23 - version: 4.17.23 + specifier: 4.18.1 + version: 4.18.1 devDependencies: '@oclif/test': specifier: ^4.1.13 @@ -397,8 +401,8 @@ importers: specifier: ^2.0.42 version: 2.0.42 lodash: - specifier: ^4.17.23 - version: 4.17.23 + specifier: 4.18.1 + version: 4.18.1 devDependencies: '@types/node': specifier: ^14.18.63 @@ -470,8 +474,8 @@ importers: specifier: ^2.0.6 version: 2.0.6 lodash: - specifier: ^4.17.23 - version: 4.17.23 + specifier: 4.18.1 + version: 4.18.1 mkdirp: specifier: ^1.0.4 version: 1.0.4 @@ -2366,9 +2370,6 @@ packages: axios@1.13.6: resolution: {integrity: sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==} - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - balanced-match@4.0.4: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} @@ -2401,14 +2402,8 @@ packages: bowser@2.14.1: resolution: {integrity: sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==} - brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - - brace-expansion@2.0.2: - resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} - - brace-expansion@5.0.4: - resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==} + brace-expansion@5.0.5: + resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} engines: {node: 18 || 20 || >=22} braces@3.0.3: @@ -2656,9 +2651,6 @@ packages: commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - concat-stream@2.0.0: resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} engines: {'0': node >= 6.0} @@ -4195,8 +4187,8 @@ packages: lodash.uniq@4.5.0: resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - lodash@4.17.23: - resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} + lodash@4.18.1: + resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} log-symbols@1.0.2: resolution: {integrity: sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ==} @@ -6465,7 +6457,7 @@ snapshots: chalk: 5.6.2 fast-csv: 4.3.6 fs-extra: 11.3.4 - lodash: 4.17.23 + lodash: 4.18.1 uuid: 9.0.1 winston: 3.19.0 transitivePeerDependencies: @@ -6477,7 +6469,7 @@ snapshots: '@contentstack/cli-command': 1.7.2(@types/node@18.19.130)(debug@4.4.3) '@contentstack/cli-utilities': 1.17.4(@types/node@18.19.130)(debug@4.4.3) '@contentstack/delivery-sdk': 4.11.2(debug@4.4.3) - lodash: 4.17.23 + lodash: 4.18.1 uuid: 10.0.0 transitivePeerDependencies: - '@types/node' @@ -6507,7 +6499,7 @@ snapshots: '@oclif/plugin-help': 6.2.40 chalk: 5.6.2 just-diff: 6.0.2 - lodash: 4.17.23 + lodash: 4.18.1 transitivePeerDependencies: - '@types/node' - debug @@ -6523,7 +6515,7 @@ snapshots: '@oclif/plugin-help': 6.2.40 chalk: 5.6.2 inquirer: 12.11.1(@types/node@18.19.130) - lodash: 4.17.23 + lodash: 4.18.1 merge: 2.1.1 ora: 5.4.1 prompt: 1.3.0 @@ -6554,7 +6546,7 @@ snapshots: big-json: 3.2.0 bluebird: 3.7.2 chalk: 5.6.2 - lodash: 4.17.23 + lodash: 4.18.1 merge: 2.1.1 mkdirp: 1.0.4 progress-stream: 2.0.0 @@ -6572,7 +6564,7 @@ snapshots: big-json: 3.2.0 chalk: 5.6.2 fs-extra: 11.3.4 - lodash: 4.17.23 + lodash: 4.18.1 merge: 2.1.1 mkdirp: 1.0.4 winston: 3.19.0 @@ -6592,7 +6584,7 @@ snapshots: chalk: 5.6.2 debug: 4.4.3(supports-color@8.1.1) fs-extra: 11.3.4 - lodash: 4.17.23 + lodash: 4.18.1 marked: 4.3.0 merge: 2.1.1 mkdirp: 1.0.4 @@ -6644,7 +6636,7 @@ snapshots: '@contentstack/utils': 1.7.1 '@oclif/core': 4.10.2 '@oclif/plugin-help': 6.2.40 - lodash: 4.17.23 + lodash: 4.18.1 transitivePeerDependencies: - '@types/node' - debug @@ -6670,7 +6662,7 @@ snapshots: form-data: 4.0.4 graphql: 16.13.1 ini: 3.0.1 - lodash: 4.17.23 + lodash: 4.18.1 open: 8.4.2 rollup: 4.60.0 winston: 3.19.0 @@ -6725,7 +6717,7 @@ snapshots: inquirer-search-list: 1.2.6 js-yaml: 4.1.1 klona: 2.0.6 - lodash: 4.17.23 + lodash: 4.18.1 mkdirp: 1.0.4 open: 8.4.2 ora: 5.4.1 @@ -6760,7 +6752,7 @@ snapshots: inquirer-search-list: 1.2.6 js-yaml: 4.1.1 klona: 2.0.6 - lodash: 4.17.23 + lodash: 4.18.1 mkdirp: 1.0.4 open: 8.4.2 ora: 5.4.1 @@ -6782,7 +6774,7 @@ snapshots: '@contentstack/cli-utilities': 2.0.0-beta.4(@types/node@18.19.130)(debug@4.4.3) '@oclif/core': 4.10.2 '@oclif/plugin-help': 6.2.40 - lodash: 4.17.23 + lodash: 4.18.1 mkdirp: 1.0.4 winston: 3.19.0 transitivePeerDependencies: @@ -6793,7 +6785,7 @@ snapshots: dependencies: axios: 1.13.6(debug@4.4.3) axios-mock-adapter: 2.1.0(axios@1.13.6(debug@4.4.3)) - lodash: 4.17.23 + lodash: 4.18.1 qs: 6.15.0 tslib: 2.8.1 transitivePeerDependencies: @@ -6816,7 +6808,7 @@ snapshots: buffer: 6.0.3 form-data: 4.0.5 husky: 9.1.7 - lodash: 4.17.23 + lodash: 4.18.1 otplib: 12.0.1 qs: 6.15.0 stream-browserify: 3.0.0 @@ -6831,7 +6823,7 @@ snapshots: buffer: 6.0.3 form-data: 4.0.5 husky: 9.1.7 - lodash: 4.17.23 + lodash: 4.18.1 otplib: 12.0.1 qs: 6.15.0 stream-browserify: 3.0.0 @@ -7467,7 +7459,7 @@ snapshots: ansis: 3.17.0 debug: 4.4.3(supports-color@8.1.1) http-call: 5.3.0 - lodash: 4.17.23 + lodash: 4.18.1 registry-auth-token: 5.1.1 transitivePeerDependencies: - supports-color @@ -8835,7 +8827,7 @@ snapshots: async@2.6.4: dependencies: - lodash: 4.17.23 + lodash: 4.18.1 async@3.2.3: {} @@ -8863,8 +8855,6 @@ snapshots: transitivePeerDependencies: - debug - balanced-match@1.0.2: {} - balanced-match@4.0.4: {} base64-js@1.5.1: {} @@ -8909,16 +8899,7 @@ snapshots: bowser@2.14.1: {} - brace-expansion@1.1.12: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - brace-expansion@2.0.2: - dependencies: - balanced-match: 1.0.2 - - brace-expansion@5.0.4: + brace-expansion@5.0.5: dependencies: balanced-match: 4.0.4 @@ -9194,8 +9175,6 @@ snapshots: commondir@1.0.1: {} - concat-map@0.0.1: {} - concat-stream@2.0.0: dependencies: buffer-from: 1.1.2 @@ -9996,7 +9975,7 @@ snapshots: indent-string: 4.0.0 is-builtin-module: 3.2.1 jsesc: 3.1.0 - lodash: 4.17.23 + lodash: 4.18.1 pluralize: 8.0.0 read-pkg-up: 7.0.1 regexp-tree: 0.1.27 @@ -10241,7 +10220,7 @@ snapshots: '@types/lodash': 4.17.24 '@types/node': 14.18.63 '@types/sinon': 21.0.0 - lodash: 4.17.23 + lodash: 4.18.1 mock-stdin: 1.0.0 nock: 13.5.6 stdout-stderr: 0.1.13 @@ -10763,7 +10742,7 @@ snapshots: cli-width: 2.2.1 external-editor: 2.2.0 figures: 2.0.0 - lodash: 4.17.23 + lodash: 4.18.1 mute-stream: 0.0.7 run-async: 2.4.1 rx-lite: 4.0.8 @@ -10780,7 +10759,7 @@ snapshots: cli-cursor: 3.1.0 cli-width: 3.0.0 figures: 3.2.0 - lodash: 4.17.23 + lodash: 4.18.1 mute-stream: 0.0.8 ora: 5.4.1 run-async: 2.4.1 @@ -11205,7 +11184,7 @@ snapshots: lodash.uniq@4.5.0: {} - lodash@4.17.23: {} + lodash@4.18.1: {} log-symbols@1.0.2: dependencies: @@ -11319,23 +11298,23 @@ snapshots: minimatch@10.2.4: dependencies: - brace-expansion: 5.0.4 + brace-expansion: 5.0.5 minimatch@3.1.5: dependencies: - brace-expansion: 1.1.12 + brace-expansion: 5.0.5 minimatch@5.1.9: dependencies: - brace-expansion: 2.0.2 + brace-expansion: 5.0.5 minimatch@9.0.3: dependencies: - brace-expansion: 2.0.2 + brace-expansion: 5.0.5 minimatch@9.0.9: dependencies: - brace-expansion: 2.0.2 + brace-expansion: 5.0.5 minimist@1.2.8: {} @@ -11551,7 +11530,7 @@ snapshots: fs-extra: 8.1.0 github-slugger: 2.0.0 got: 13.0.0 - lodash: 4.17.23 + lodash: 4.18.1 normalize-package-data: 6.0.2 semver: 7.7.4 sort-package-json: 2.15.1 @@ -11582,7 +11561,7 @@ snapshots: fs-extra: 8.1.0 github-slugger: 2.0.0 got: 13.0.0 - lodash: 4.17.23 + lodash: 4.18.1 normalize-package-data: 6.0.2 semver: 7.7.4 sort-package-json: 2.15.1 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 18ec407efc..30dd80418d 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,2 +1,5 @@ packages: - 'packages/*' +overrides: + brace-expansion: 5.0.5 + lodash: 4.18.1 From 87f019cd8b31d4b40abbc9870f15263b670d263c Mon Sep 17 00:00:00 2001 From: shafeeqd959 Date: Thu, 2 Apr 2026 13:19:44 +0530 Subject: [PATCH 3/4] bumped versions --- .talismanrc | 2 + packages/contentstack-auth/README.md | 2 +- packages/contentstack-config/README.md | 2 +- packages/contentstack-config/package.json | 6 +-- packages/contentstack-utilities/package.json | 6 +-- packages/contentstack/README.md | 38 +++++++++--------- packages/contentstack/package.json | 8 ++-- pnpm-lock.yaml | 41 ++++++++++---------- pnpm-workspace.yaml | 1 - 9 files changed, 53 insertions(+), 53 deletions(-) diff --git a/.talismanrc b/.talismanrc index 4ec15cb6a0..e57de2e114 100644 --- a/.talismanrc +++ b/.talismanrc @@ -15,4 +15,6 @@ fileignoreconfig: checksum: 2130a0c665821cd2831644aa238afef09992388f67f682c867820c0d98ab2406 - filename: .cursor/skills/code-review/references/code-review-checklist.md checksum: bdf7453f08d7209deaee411f47a1132ee872b28f0eb082563dfe20aa56eab057 + - filename: packages/contentstack/README.md + checksum: cd1b51296e747630b398fdb972ddc602aa4a9dd6bb661742f805e219c9d72a52 version: '1.0' diff --git a/packages/contentstack-auth/README.md b/packages/contentstack-auth/README.md index 1fc2b53959..61f0f8814d 100644 --- a/packages/contentstack-auth/README.md +++ b/packages/contentstack-auth/README.md @@ -18,7 +18,7 @@ $ npm install -g @contentstack/cli-auth $ csdx COMMAND running command... $ csdx (--version) -@contentstack/cli-auth/2.0.0-beta.7 darwin-arm64 node-v22.13.1 +@contentstack/cli-auth/2.0.0-beta.10 darwin-arm64 node-v22.13.1 $ csdx --help [COMMAND] USAGE $ csdx COMMAND diff --git a/packages/contentstack-config/README.md b/packages/contentstack-config/README.md index 60d358da46..5fcf593234 100644 --- a/packages/contentstack-config/README.md +++ b/packages/contentstack-config/README.md @@ -18,7 +18,7 @@ $ npm install -g @contentstack/cli-config $ csdx COMMAND running command... $ csdx (--version) -@contentstack/cli-config/2.0.0-beta.3 darwin-arm64 node-v22.13.1 +@contentstack/cli-config/2.0.0-beta.7 darwin-arm64 node-v22.13.1 $ csdx --help [COMMAND] USAGE $ csdx COMMAND diff --git a/packages/contentstack-config/package.json b/packages/contentstack-config/package.json index 75b6f0d9f3..ca9f325b47 100644 --- a/packages/contentstack-config/package.json +++ b/packages/contentstack-config/package.json @@ -1,7 +1,7 @@ { "name": "@contentstack/cli-config", "description": "Contentstack CLI plugin for configuration", - "version": "2.0.0-beta.6", + "version": "2.0.0-beta.7", "author": "Contentstack", "scripts": { "build": "pnpm compile && oclif manifest && oclif readme", @@ -26,7 +26,7 @@ "@contentstack/utils": "~1.7.0", "@oclif/core": "^4.8.1", "@oclif/plugin-help": "^6.2.28", - "lodash": "^4.17.23" + "lodash": "^4.18.1" }, "devDependencies": { "@oclif/test": "^4.1.13", @@ -81,4 +81,4 @@ } }, "repository": "contentstack/cli" -} \ No newline at end of file +} diff --git a/packages/contentstack-utilities/package.json b/packages/contentstack-utilities/package.json index eb0aaba6c1..7da7a7fef1 100644 --- a/packages/contentstack-utilities/package.json +++ b/packages/contentstack-utilities/package.json @@ -1,6 +1,6 @@ { "name": "@contentstack/cli-utilities", - "version": "2.0.0-beta.5", + "version": "2.0.0-beta.6", "description": "Utilities for contentstack projects", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -49,7 +49,7 @@ "inquirer-search-list": "^1.2.6", "js-yaml": "^4.1.1", "klona": "^2.0.6", - "lodash": "^4.17.23", + "lodash": "^4.18.1", "mkdirp": "^1.0.4", "open": "^8.4.2", "ora": "^5.4.1", @@ -82,4 +82,4 @@ "ts-node": "^10.9.2", "typescript": "^5.0.0" } -} \ No newline at end of file +} diff --git a/packages/contentstack/README.md b/packages/contentstack/README.md index 113f1491ba..1e0933eaf4 100644 --- a/packages/contentstack/README.md +++ b/packages/contentstack/README.md @@ -18,7 +18,7 @@ $ npm install -g @contentstack/cli $ csdx COMMAND running command... $ csdx (--version|-v) -@contentstack/cli/2.0.0-beta.14 darwin-arm64 node-v22.13.1 +@contentstack/cli/2.0.0-beta.19 darwin-arm64 node-v22.13.1 $ csdx --help [COMMAND] USAGE $ csdx COMMAND @@ -53,7 +53,7 @@ USAGE * [`csdx cm:stacks:import [--config ] [--stack-api-key ] [--data-dir ] [--alias ] [--module ] [--backup-dir ] [--branch ] [--import-webhook-status disable|current]`](#csdx-cmstacksimport---config-value---stack-api-key-value---data-dir-value---alias-value---module-value---backup-dir-value---branch-value---import-webhook-status-disablecurrent) * [`csdx cm:stacks:import-setup [-k ] [-d ] [-a ] [--modules ]`](#csdx-cmstacksimport-setup--k-value--d-value--a-value---modules-valuevalue) * [`csdx cm:stacks:migration [-k ] [-a ] [--file-path ] [--branch ] [--config-file ] [--config ] [--multiple]`](#csdx-cmstacksmigration--k-value--a-value---file-path-value---branch-value---config-file-value---config-value---multiple) -* [`csdx cm:stacks:seed [--repo ] [--org ] [--stack-api-key ] [--stack-name ] [--yes ] [--alias ] [--locale ]`](#csdx-cmstacksseed---repo-value---org-value---stack-api-key-value---stack-name-value---yes-value---alias-value---locale-value) +* [`csdx cm:stacks:seed [--repo ] [--org ] [--stack-api-key ] [--stack-name ] [-y] [--alias ] [--locale ]`](#csdx-cmstacksseed---repo-value---org-value---stack-api-key-value---stack-name-value--y---alias-value---locale-value) * [`csdx config:get:base-branch`](#csdx-configgetbase-branch) * [`csdx config:get:ea-header`](#csdx-configgetea-header) * [`csdx config:get:early-access-header`](#csdx-configgetearly-access-header) @@ -281,14 +281,14 @@ Bootstrap contentstack apps ``` USAGE - $ csdx cm:bootstrap [--app-name ] [--project-dir ] [-k | --org | -n ] [-y - ] [--run-dev-server] [-a ] + $ csdx cm:bootstrap [--app-name ] [--project-dir ] [-k | --org | -n ] [-y] + [--run-dev-server] [-a ] FLAGS -a, --alias= Alias of the management token -k, --stack-api-key= Provide stack API key to seed content -n, --stack-name= Name of the new stack that will be created. - -y, --yes= [Optional] Skip stack confirmation + -y, --yes [Optional] Skip stack confirmation --app-name= App name, kickstart-next, kickstart-next-ssr, kickstart-next-ssg, kickstart-next-graphql, kickstart-next-middleware, kickstart-nuxt, kickstart-nuxt-ssr --org= Provide organization UID to create a new stack @@ -854,7 +854,7 @@ EXAMPLES $ csdx cm:stacks:bulk-assets --revert ./bulk-operation -a myAlias ``` -_See code: [@contentstack/cli-bulk-operations](https://github.com/contentstack/cli-bulk-operations/blob/v1.0.0/src/commands/cm/stacks/bulk-assets.ts)_ +_See code: [@contentstack/cli-bulk-operations](https://github.com/contentstack/cli-bulk-operations/blob/v1.0.1/src/commands/cm/stacks/bulk-assets.ts)_ ## `csdx cm:stacks:bulk-entries` @@ -940,7 +940,7 @@ EXAMPLES $ csdx cm:stacks:bulk-entries --revert ./bulk-operation ``` -_See code: [@contentstack/cli-bulk-operations](https://github.com/contentstack/cli-bulk-operations/blob/v1.0.0/src/commands/cm/stacks/bulk-entries.ts)_ +_See code: [@contentstack/cli-bulk-operations](https://github.com/contentstack/cli-bulk-operations/blob/v1.0.1/src/commands/cm/stacks/bulk-entries.ts)_ ## `csdx cm:stacks:clone [--source-branch ] [--target-branch ] [--source-management-token-alias ] [--destination-management-token-alias ] [-n ] [--type a|b] [--source-stack-api-key ] [--destination-stack-api-key ] [--import-webhook-status disable|current]` @@ -1218,20 +1218,20 @@ EXAMPLES _See code: [@contentstack/cli-migration](https://github.com/contentstack/cli/blob/main/packages/contentstack-migration/src/commands/cm/stacks/migration.ts)_ -## `csdx cm:stacks:seed [--repo ] [--org ] [--stack-api-key ] [--stack-name ] [--yes ] [--alias ] [--locale ]` +## `csdx cm:stacks:seed [--repo ] [--org ] [--stack-api-key ] [--stack-name ] [-y] [--alias ] [--locale ]` Create a stack from existing content types, entries, assets, etc ``` USAGE - $ csdx cm:stacks:seed [--repo ] [--org ] [--stack-api-key ] [--stack-name ] [--yes - ] [--alias ] [--locale ] + $ csdx cm:stacks:seed [--repo ] [--org ] [--stack-api-key ] [--stack-name ] [-y] + [--alias ] [--locale ] FLAGS -a, --alias= Alias of the management token -k, --stack-api-key= Provide stack API key to seed content to -n, --stack-name= Name of a new stack that needs to be created. - -y, --yes= [Optional] Skip the stack confirmation. + -y, --yes [Optional] Skip the stack confirmation. --org= Provide Organization UID to create a new stack --repo= GitHub organization name or GitHub user name/repository name. @@ -1735,7 +1735,7 @@ DESCRIPTION Display help for csdx. ``` -_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v6.2.37/src/commands/help.ts)_ +_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/6.2.40/src/commands/help.ts)_ ## `csdx launch` @@ -2054,7 +2054,7 @@ EXAMPLES $ csdx plugins ``` -_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v5.4.56/src/commands/plugins/index.ts)_ +_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/5.4.59/src/commands/plugins/index.ts)_ ## `csdx plugins:add PLUGIN` @@ -2128,7 +2128,7 @@ EXAMPLES $ csdx plugins:inspect myplugin ``` -_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v5.4.56/src/commands/plugins/inspect.ts)_ +_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/5.4.59/src/commands/plugins/inspect.ts)_ ## `csdx plugins:install PLUGIN` @@ -2177,7 +2177,7 @@ EXAMPLES $ csdx plugins:install someuser/someplugin ``` -_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v5.4.56/src/commands/plugins/install.ts)_ +_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/5.4.59/src/commands/plugins/install.ts)_ ## `csdx plugins:link PATH` @@ -2208,7 +2208,7 @@ EXAMPLES $ csdx plugins:link myplugin ``` -_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v5.4.56/src/commands/plugins/link.ts)_ +_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/5.4.59/src/commands/plugins/link.ts)_ ## `csdx plugins:remove [PLUGIN]` @@ -2249,7 +2249,7 @@ FLAGS --reinstall Reinstall all plugins after uninstalling. ``` -_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v5.4.56/src/commands/plugins/reset.ts)_ +_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/5.4.59/src/commands/plugins/reset.ts)_ ## `csdx plugins:uninstall [PLUGIN]` @@ -2277,7 +2277,7 @@ EXAMPLES $ csdx plugins:uninstall myplugin ``` -_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v5.4.56/src/commands/plugins/uninstall.ts)_ +_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/5.4.59/src/commands/plugins/uninstall.ts)_ ## `csdx plugins:unlink [PLUGIN]` @@ -2321,7 +2321,7 @@ DESCRIPTION Update installed plugins. ``` -_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v5.4.56/src/commands/plugins/update.ts)_ +_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/5.4.59/src/commands/plugins/update.ts)_ ## `csdx tokens` diff --git a/packages/contentstack/package.json b/packages/contentstack/package.json index 1dc9a47f9b..87381bbd29 100755 --- a/packages/contentstack/package.json +++ b/packages/contentstack/package.json @@ -1,7 +1,7 @@ { "name": "@contentstack/cli", "description": "Command-line tool (CLI) to interact with Contentstack", - "version": "2.0.0-beta.18", + "version": "2.0.0-beta.19", "author": "Contentstack", "bin": { "csdx": "./bin/run.js" @@ -34,10 +34,10 @@ "@contentstack/cli-cm-import-setup": "~2.0.0-beta.8", "@contentstack/cli-cm-seed": "~2.0.0-beta.12", "@contentstack/cli-command": "~2.0.0-beta.4", - "@contentstack/cli-config": "~2.0.0-beta.5", + "@contentstack/cli-config": "~2.0.0-beta.7", "@contentstack/cli-launch": "^1.9.6", "@contentstack/cli-migration": "~2.0.0-beta.9", - "@contentstack/cli-utilities": "~2.0.0-beta.4", + "@contentstack/cli-utilities": "~2.0.0-beta.6", "@contentstack/cli-variants": "~2.0.0-beta.10", "@contentstack/management": "~1.27.6", "@contentstack/utils": "~1.7.0", @@ -168,4 +168,4 @@ } }, "repository": "https://github.com/contentstack/cli" -} \ No newline at end of file +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2141d0d49f..1abc5018f9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,7 +6,6 @@ settings: overrides: brace-expansion: 5.0.5 - lodash: 4.18.1 importers: @@ -58,7 +57,7 @@ importers: specifier: ~2.0.0-beta.4 version: link:../contentstack-command '@contentstack/cli-config': - specifier: ~2.0.0-beta.5 + specifier: ~2.0.0-beta.7 version: link:../contentstack-config '@contentstack/cli-launch': specifier: ^1.9.6 @@ -67,7 +66,7 @@ importers: specifier: ~2.0.0-beta.9 version: 2.0.0-beta.9(@types/node@18.19.130)(debug@4.4.3) '@contentstack/cli-utilities': - specifier: ~2.0.0-beta.4 + specifier: ~2.0.0-beta.6 version: link:../contentstack-utilities '@contentstack/cli-variants': specifier: ~2.0.0-beta.10 @@ -340,7 +339,7 @@ importers: specifier: ^6.2.28 version: 6.2.40 lodash: - specifier: 4.18.1 + specifier: ^4.18.1 version: 4.18.1 devDependencies: '@oclif/test': @@ -401,7 +400,7 @@ importers: specifier: ^2.0.42 version: 2.0.42 lodash: - specifier: 4.18.1 + specifier: ^4.17.23 version: 4.18.1 devDependencies: '@types/node': @@ -474,7 +473,7 @@ importers: specifier: ^2.0.6 version: 2.0.6 lodash: - specifier: 4.18.1 + specifier: ^4.18.1 version: 4.18.1 mkdirp: specifier: ^1.0.4 @@ -9531,8 +9530,8 @@ snapshots: '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5) '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@4.9.5) 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@4.9.5))(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@4.9.5))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(eslint@8.57.1))(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@6.21.0(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-typescript@3.10.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@4.9.5) @@ -9588,8 +9587,8 @@ snapshots: 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@4.9.5))(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@4.9.5))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@4.9.5))(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@4.9.5))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@4.9.5))(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@4.9.5) @@ -9656,7 +9655,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(eslint@8.57.1): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(eslint@8.57.1): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3(supports-color@8.1.1) @@ -9667,7 +9666,7 @@ snapshots: tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(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@4.9.5))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) transitivePeerDependencies: - supports-color @@ -9682,18 +9681,18 @@ snapshots: tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - 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@6.21.0(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@4.9.5))(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@4.9.5))(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@4.9.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@4.9.5) eslint: 8.57.1 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@4.9.5))(eslint@8.57.1))(eslint@8.57.1) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1) transitivePeerDependencies: - supports-color @@ -9708,14 +9707,14 @@ snapshots: 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-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): + 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-plugin-import@2.32.0(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@4.9.5))(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@4.9.5) eslint: 8.57.1 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@4.9.5))(eslint@8.57.1))(eslint@8.57.1) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(eslint@8.57.1) transitivePeerDependencies: - supports-color @@ -9743,7 +9742,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@4.9.5))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(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@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 @@ -9754,7 +9753,7 @@ snapshots: 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@4.9.5))(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@4.9.5))(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@4.9.5))(eslint-import-resolver-node@0.3.9)(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 @@ -9801,7 +9800,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-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(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@4.9.5))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -9812,7 +9811,7 @@ snapshots: 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-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + 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-plugin-import@2.32.0(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@4.9.5))(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 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 30dd80418d..aa751c18b8 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -2,4 +2,3 @@ packages: - 'packages/*' overrides: brace-expansion: 5.0.5 - lodash: 4.18.1 From 4d4a2e0555c8d9f43ff848bd07012ee655b5cc73 Mon Sep 17 00:00:00 2001 From: harshitha-cstk Date: Mon, 6 Apr 2026 13:42:31 +0530 Subject: [PATCH 4/4] version bump --- .talismanrc | 2 +- packages/contentstack/package.json | 2 +- pnpm-lock.yaml | 42 +++++++++++++++--------------- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/.talismanrc b/.talismanrc index 2aee6e6c9b..609190689c 100644 --- a/.talismanrc +++ b/.talismanrc @@ -1,4 +1,4 @@ fileignoreconfig: - filename: pnpm-lock.yaml - checksum: dcca9c3aa90976153c9804c83502eee6035e1cfeedc8d04775aafb6a0efe30ef + checksum: 840d10a9ef1d60aeb0edd46a5cf8ae8306c9eee321aff72a9bb0e1a7e5031159 version: '1.0' diff --git a/packages/contentstack/package.json b/packages/contentstack/package.json index f4bb80b3ae..2db1d0f716 100755 --- a/packages/contentstack/package.json +++ b/packages/contentstack/package.json @@ -37,7 +37,7 @@ "@contentstack/cli-config": "~2.0.0-beta.7", "@contentstack/cli-launch": "^1.9.7", "@contentstack/cli-migration": "~2.0.0-beta.10", - "@contentstack/cli-utilities": "~2.0.0-beta.5", + "@contentstack/cli-utilities": "~2.0.0-beta.6", "@contentstack/cli-variants": "~2.0.0-beta.11", "@contentstack/management": "~1.29.1", "@contentstack/utils": "~1.7.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 829f0d1f62..65d1c8fd54 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -60,8 +60,8 @@ importers: specifier: ~2.0.0-beta.7 version: link:../contentstack-config '@contentstack/cli-launch': - specifier: ^1.9.6 - version: 1.9.6(@types/node@18.19.130)(debug@4.4.3)(tslib@2.8.1)(typescript@4.9.5) + specifier: ^1.9.7 + version: 1.9.7(@types/node@18.19.130)(debug@4.4.3)(tslib@2.8.1)(typescript@4.9.5) '@contentstack/cli-migration': specifier: ~2.0.0-beta.10 version: 2.0.0-beta.10(@types/node@18.19.130)(debug@4.4.3) @@ -883,9 +883,9 @@ packages: resolution: {integrity: sha512-wJvxZGSv7PRBEKfm/Jm6iorA+e4q0QVo5NCvn7xWp61aNixs9B53yO0ZwHYd0qi0B+d+H5qlgpm9BMad5EKfRg==} engines: {node: '>=14.0.0'} - '@contentstack/cli-launch@1.9.6': - resolution: {integrity: sha512-CQN9932sQiek7r+fvsL96Y9+1a14e8mpB3NdC+ASa6tYhi/UKEO78cPF03Oj7+W7Qg1O1/YmRJSxjOdE3m3KMA==} - engines: {node: '>=14.0.0'} + '@contentstack/cli-launch@1.9.7': + resolution: {integrity: sha512-simTT1JlwNbZ1VLMPb3RPWAZYkjoEMmLgWggsCZabL4b+FkQOVdM7fZGYrBis0qKl+bw3t6YlScMn8zBIRBXRQ==} + engines: {node: '>=22.0.0'} hasBin: true '@contentstack/cli-migration@2.0.0-beta.10': @@ -6640,7 +6640,7 @@ snapshots: - '@types/node' - debug - '@contentstack/cli-launch@1.9.6(@types/node@18.19.130)(debug@4.4.3)(tslib@2.8.1)(typescript@4.9.5)': + '@contentstack/cli-launch@1.9.7(@types/node@18.19.130)(debug@4.4.3)(tslib@2.8.1)(typescript@4.9.5)': dependencies: '@apollo/client': 3.14.1(graphql@16.13.1) '@contentstack/cli-command': 1.7.2(@types/node@18.19.130)(debug@4.4.3) @@ -9530,8 +9530,8 @@ snapshots: '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5) '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@4.9.5) 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@6.21.0(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-typescript@3.10.1)(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@4.9.5))(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@4.9.5))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@4.9.5))(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@4.9.5) @@ -9587,8 +9587,8 @@ snapshots: 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@8.57.2(eslint@8.57.1)(typescript@4.9.5))(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@4.9.5))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(eslint@8.57.1))(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@4.9.5))(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@4.9.5))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@4.9.5))(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@4.9.5) @@ -9655,7 +9655,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(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@4.9.5))(eslint@8.57.1))(eslint@8.57.1): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3(supports-color@8.1.1) @@ -9666,7 +9666,7 @@ snapshots: tinyglobby: 0.2.15 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-plugin-import@2.32.0(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(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@4.9.5))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) transitivePeerDependencies: - supports-color @@ -9681,18 +9681,18 @@ snapshots: tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@6.21.0(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.57.2(eslint@8.57.1)(typescript@5.9.3))(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@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@6.21.0(eslint@8.57.1)(typescript@4.9.5))(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@4.9.5))(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@4.9.5) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.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@4.9.5))(eslint@8.57.1))(eslint@8.57.1) transitivePeerDependencies: - supports-color @@ -9707,14 +9707,14 @@ snapshots: 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-plugin-import@2.32.0(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): + 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-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@4.9.5))(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@4.9.5) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(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@4.9.5))(eslint@8.57.1))(eslint@8.57.1) transitivePeerDependencies: - supports-color @@ -9742,7 +9742,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@4.9.5))(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@4.9.5))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -9753,7 +9753,7 @@ snapshots: 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@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@6.21.0(eslint@8.57.1)(typescript@4.9.5))(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@4.9.5))(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 @@ -9800,7 +9800,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-plugin-import@2.32.0(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(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@4.9.5))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -9811,7 +9811,7 @@ snapshots: 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-plugin-import@2.32.0(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + 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-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@4.9.5))(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