From e106d94769ed75d151381553c721d3278f85cd86 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 30 Jul 2026 12:22:54 +0530 Subject: [PATCH 01/12] fixed circular object parsing bug --- .talismanrc | 2 ++ .../src/logger/logger.ts | 29 +++++++++++++++++-- packages/contentstack/package.json | 2 +- 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/.talismanrc b/.talismanrc index 50726e53c0..a449f51069 100644 --- a/.talismanrc +++ b/.talismanrc @@ -1,4 +1,6 @@ fileignoreconfig: - filename: pnpm-lock.yaml checksum: a4f592e8bcc46e37d9b118deb6ac0c9a452c3392092cf716b16bae6fb037102d + - filename: packages/contentstack-utilities/src/logger/logger.ts + checksum: ddde5120404e55a0bc7b56223009ea2111d392e387037f6471c5e7b6388ae38b version: '1.0' diff --git a/packages/contentstack-utilities/src/logger/logger.ts b/packages/contentstack-utilities/src/logger/logger.ts index ebdb8fe21a..846f41c64f 100644 --- a/packages/contentstack-utilities/src/logger/logger.ts +++ b/packages/contentstack-utilities/src/logger/logger.ts @@ -65,7 +65,7 @@ export default class Logger { winston.format.printf((info) => { // Apply minimal redaction for files (debugging info preserved) const redactedInfo = this.redact(info, false); - return JSON.stringify(redactedInfo); + return this.safeStringify(redactedInfo); }), ), }), @@ -117,6 +117,26 @@ export default class Logger { } } + /** + * Stringifies a log entry without throwing on circular references. + * `redact()` can fall back to the original (still-circular) object when + * cloning fails, so this must never assume the input is cycle-free. + */ + private safeStringify(value: any): string { + const seen = new WeakSet(); + try { + return JSON.stringify(value, (_key, val) => { + if (typeof val === 'object' && val !== null) { + if (seen.has(val)) return '[Circular]'; + seen.add(val); + } + return val; + }); + } catch { + return JSON.stringify({ level: value?.level, message: value?.message ?? '[Unserializable log entry]' }); + } + } + private shouldLog(level: LogType, target: 'console' | 'file'): boolean { // If console logging is disabled, don't log to console if (target === 'console' && this.config.consoleLoggingEnabled === false) { @@ -186,9 +206,12 @@ export default class Logger { this.loggers.error.error(logPayload); } - // For console, use debug level if hidden, otherwise error level + // For console, use debug level if hidden, otherwise error level. Each level's + // winston logger instance bundles both the file and console transports, so only + // write again here when the target differs from the one already written above — + // otherwise this would duplicate both the console line and the file entry. const consoleLevel: LogType = params.hidden ? 'debug' : 'error'; - if (this.shouldLog(consoleLevel, 'console')) { + if (consoleLevel !== 'error' && this.shouldLog(consoleLevel, 'console')) { this.loggers[consoleLevel].error(logPayload); } } diff --git a/packages/contentstack/package.json b/packages/contentstack/package.json index 075ff0f80c..753b6487e7 100755 --- a/packages/contentstack/package.json +++ b/packages/contentstack/package.json @@ -22,7 +22,7 @@ "@contentstack/cli-audit": "~1.19.5", "@contentstack/cli-cm-export": "~1.25.3", "@contentstack/cli-cm-import": "~1.33.5", - "@contentstack/cli-auth": "~1.8.4", + "@contentstack/cli-auth": "~1.8.5", "@contentstack/cli-cm-bootstrap": "~1.19.7", "@contentstack/cli-cm-branches": "~1.8.3", "@contentstack/cli-cm-bulk-publish": "~1.12.1", From 1ea73c036181d26a4144514120bf529b7d27e89a Mon Sep 17 00:00:00 2001 From: raj pandey Date: Wed, 5 Aug 2026 14:31:16 +0530 Subject: [PATCH 02/12] fix(config): correct swapped flag descriptions in config:set:early-access-header --header-alias described the value; --header described the alias. Swapped descriptions so each flag correctly describes what it accepts. Co-Authored-By: Claude Sonnet 4.6 --- .../src/commands/config/set/early-access-header.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/contentstack-config/src/commands/config/set/early-access-header.ts b/packages/contentstack-config/src/commands/config/set/early-access-header.ts index 6205e0c99f..e44a0f55c7 100644 --- a/packages/contentstack-config/src/commands/config/set/early-access-header.ts +++ b/packages/contentstack-config/src/commands/config/set/early-access-header.ts @@ -6,8 +6,8 @@ export default class SetEarlyAccessHeaderCommand extends Command { static description = 'Set Early Access header'; static aliases: string[] = ['config:set:ea-header']; static flags: FlagInput = { - 'header-alias': flags.string({ description: '(optional) Provide the Early Access header value.' }), - header: flags.string({ description: '(optional) Provide the Early Access header alias name.' }), + 'header-alias': flags.string({ description: '(optional) Provide a name (alias) for this Early Access header.' }), + header: flags.string({ description: '(optional) Provide the Early Access header value.' }), }; static examples: string[] = [ '$ <%= config.bin %> <%= command.id %>', From 6b96eba403d24ad2dcfdc3612685782ba15be889 Mon Sep 17 00:00:00 2001 From: raj pandey Date: Wed, 5 Aug 2026 15:29:08 +0530 Subject: [PATCH 03/12] chore(config): bump @contentstack/cli-config to 1.21.1 Co-Authored-By: Claude Sonnet 4.6 --- packages/contentstack-config/package.json | 2 +- pnpm-lock.yaml | 189 +++++++++++----------- 2 files changed, 96 insertions(+), 95 deletions(-) diff --git a/packages/contentstack-config/package.json b/packages/contentstack-config/package.json index 042e95315f..11e343b8c7 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": "1.21.0", + "version": "1.21.1", "author": "Contentstack", "scripts": { "build": "pnpm compile && oclif manifest && oclif readme", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e20083c63b..d031d2068d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -69,7 +69,7 @@ importers: version: link:../contentstack-config '@contentstack/cli-launch': specifier: ^1.11.1 - version: 1.11.1(@types/node@14.18.63)(tslib@2.8.1)(typescript@4.9.5) + version: 1.11.2(@types/node@14.18.63)(tslib@2.8.1)(typescript@4.9.5) '@contentstack/cli-migration': specifier: ~1.12.5 version: 1.12.5(@types/node@14.18.63) @@ -513,68 +513,68 @@ packages: '@asamuzakjp/dom-selector@2.0.2': resolution: {integrity: sha512-x1KXOatwofR6ZAYzXRBL5wrdV0vwNxlTCK9NCuLqAzQYARqGcvFwiJA6A1ERuh+dgeA4Dxm3JBYictIes+SqUQ==} - '@aws-sdk/checksums@3.1000.25': - resolution: {integrity: sha512-zUjEceMw6vhAxMayAlF/vkkKqP9gHbENqvz11t4FbfDlxB/WtW/Az1orJAQ00Pc/yORLQJXKE24w11Ktu/XBcg==} + '@aws-sdk/checksums@3.1000.26': + resolution: {integrity: sha512-CGznePoL+1oWCSzqmkvlYMpWQEZohPR3LntjKXXfVH+oh6Kd8d+yHLkjpiAGwPIHAxFe4OAq3aKfRnv/wqWIyA==} engines: {node: '>=20.0.0'} - '@aws-sdk/client-cloudfront@3.1102.0': - resolution: {integrity: sha512-CYuujR/3k0Y3+tCG3yscYi49gIGJjl10HyUzIMiIYrTrsJHBgGLzCk+t5sR+uJrvWTHavtM513kgyhmrNKT0kA==} + '@aws-sdk/client-cloudfront@3.1103.0': + resolution: {integrity: sha512-WjqHLohn8OnSpBrTTE2pen7w7BvWKQ1dmSzCTKjwZACqh0v6IbtK/B4pWWsnCBPtTEf+j+hm5DtySFf4N0JmHQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/client-s3@3.1102.0': - resolution: {integrity: sha512-VQL/oWlt0+Rj2QZcAnp3+hMHW/T01EmkPQXf9ise2gz6d95U82eVE1dPBpMlnv4aDiz99TrMR0DHmceCjCkCmA==} + '@aws-sdk/client-s3@3.1103.0': + resolution: {integrity: sha512-FO7SB2vLhZRN3lBHVhMhRm3YKSHK8e917qjB8LMEEhU69cQ0Ahd/OMyezu+KqNANqEtyxfSnFVvYt81x6ZKGZA==} engines: {node: '>=20.0.0'} - '@aws-sdk/core@3.977.5': - resolution: {integrity: sha512-O5otOc1c6UZh5HsHAaPdYBcUUR9HL6mtnKqvc8nxN/CKDGUBUpsdh0q8K04Uz/dd1i0TaGyIQuQNqoO7+ad2TQ==} + '@aws-sdk/core@3.977.6': + resolution: {integrity: sha512-QiaJV4/zDrB4ZY2mfeSXSzSTc36W16sZXcGz+SPFk0CJ26gziO0cS+4LjJUMAbdeeBOvS0k0Aq1cZpfGdUXxSw==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-env@3.972.66': - resolution: {integrity: sha512-bOzP2+zdJ0XrghywB4FaJXtGZCx9yS0AGps+VJ5yEgg30wVyHNmVDBwVDXcRypzQY5iLGCS3NSn0nsuISqjFCQ==} + '@aws-sdk/credential-provider-env@3.972.67': + resolution: {integrity: sha512-rcIpk5kxUqDaaNa6Xk23pQ6ViY7jlqzmfFWCahQcBT97ddXaXYYwzCen9Tz1Jvo6aJft6wDl5bN44/Jw5B4oLA==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-http@3.972.68': - resolution: {integrity: sha512-lkunS8X+H6V76WE+t/uGQm/U8v0JXK5mLfNFTUAMlE1kqaCjwlmqKJrgCVtqjK/vqnlrSWsLK4Lr4NANBWlfTQ==} + '@aws-sdk/credential-provider-http@3.972.69': + resolution: {integrity: sha512-nggwJtZ4eeNsUw5IeWBMXsi1ryct5idi0K+/SCRF3kybLubOMaNTb3XCihXpWMiVpyzyPeIrl0zTkzhBH9porA==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-ini@3.973.11': - resolution: {integrity: sha512-KoDEolYtLHG/8C+IiZpXbJWyBOMkrHV+j66Kb9PBXmLv5euGb7aELvuCmLenoGAV6gBW2wM7TsG/1e5iulH4kA==} + '@aws-sdk/credential-provider-ini@3.973.12': + resolution: {integrity: sha512-pNEf/OeyN5X3VmLKlgSO6TqaWmW10CvI3TfwL1XhsuhYjSLT2VDaxFnCPHnOeQXSaFisMX4jNhpETriqN8DOmg==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-login@3.972.73': - resolution: {integrity: sha512-tjsxMkTAFkmiV9ycmymapb9nLECWVOwFs0bZMQ9gB9bnbY8/HwfukHZlWbXZZp7qkPU6EXAfOcMm3DioFFEywA==} + '@aws-sdk/credential-provider-login@3.972.74': + resolution: {integrity: sha512-0AQfDcf99TNmqVKv0owHrw/TQs6i4ZE5t9qmz6NvO53bE/sA/tpXhXL9AAcEP1qHc6Zzjd1UMb69+/9zdhvY3g==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-node@3.972.77': - resolution: {integrity: sha512-l4nitYCN/Ls57vtUfdextCjTjW41JD7lQiAnuR0RTbdByFc/6OmEAzwGd+lrp6CUtiXGQL1FCaYiamfHASrwBw==} + '@aws-sdk/credential-provider-node@3.972.78': + resolution: {integrity: sha512-OgPAnfvbGAMWac6yvxJ1ihslrvDpPVwR68D2csospdNCCyPvHk9JLzYKwz48SNiS1T2znDwHauywRKRFfpyYng==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-process@3.972.66': - resolution: {integrity: sha512-YOnX6bIhdjx0QfaENu2PB0eFm5MEc9ft8XNGQ+NxMfeLSq9aE+XjWCwDupEnV4UWv5ZFpBLJbTREIx7KNOoqpQ==} + '@aws-sdk/credential-provider-process@3.972.67': + resolution: {integrity: sha512-IlUEejorGTWKb4/Dm7K5Yw4QxUmXLThLhrvBmzVBqZFTbW72cv9LTcITmo1dsnYriALE4h68mOq4LB99x6sQ7Q==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-sso@3.973.10': - resolution: {integrity: sha512-IsXnQ35j5VE+3ZK6aIhT5ypB+Jim3zRwVz0nYuVwyBKZyu/SYx+O2/LQpng8c2EiuwyqceabsDlYrICHDlJPsA==} + '@aws-sdk/credential-provider-sso@3.973.11': + resolution: {integrity: sha512-gAQBkBZxUB84d71+pPcI9L+jh2ujhuAVxc/4FgGiWFDjkPBlMKxzd5XDtkSXTFX8Ro7ansnT88+XadasxMeCRw==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-web-identity@3.972.72': - resolution: {integrity: sha512-nj9Zlsy7ya+fy+jhWTJwgfr7YdtDM4xHyZvgKuftuny0UgROVx9lxwvsWJSLvpKk4lig0m0tHng3k1fEnt0LeA==} + '@aws-sdk/credential-provider-web-identity@3.972.73': + resolution: {integrity: sha512-SnlEmQa6SjOgs6iOPLUQl1Eyq4AKiAdPQlkOhFhqNfDtDCwibMGvL6QlkSmf3o6vAUSImzdPCxowT5dfQUZP1A==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-sdk-s3@3.972.71': - resolution: {integrity: sha512-5fpExT7JOIZSIWExXCgJVbZzbaOlNrS/rE5Eoesnp0ONMbnCtiyYsCkahNIdlXtKrO6XHqXI6ceqssVWMYKmWQ==} + '@aws-sdk/middleware-sdk-s3@3.972.72': + resolution: {integrity: sha512-lSAoVPvQxX1d8TOM6waKDBQrvvZcm4w6pCldFAsRUffEaXq6lYY0pPyew3KlLu6Xqb74DXI42hGvSsbGBLljlw==} engines: {node: '>=20.0.0'} - '@aws-sdk/nested-clients@3.997.40': - resolution: {integrity: sha512-hEdHT0PBR4fkGxWhwKG5EtEYKnAM7HKkp0vD10ufk4YcXejH4r4q6G/XhPzjUc6Yxo5kBS2vHg7llj4ViR9VTQ==} + '@aws-sdk/nested-clients@3.997.41': + resolution: {integrity: sha512-RDHqPGQWlF6tatA/Tp3rg6oIwtgN9IVderxE+9av2Y93Dfyu+mO1hZ5Bu2jpfZg2rwdNbsssnwM+sLafIczMlQ==} engines: {node: '>=20.0.0'} '@aws-sdk/signature-v4-multi-region@3.996.43': resolution: {integrity: sha512-lKekx8bLBXSv4O+cslk9Zfnw2XKSkWBs3uWL5QGhH2ZAQfNS7FE0vcSSN2vD/AhxX54ZTywWxR4STThoeOXlBA==} engines: {node: '>=20.0.0'} - '@aws-sdk/token-providers@3.1102.0': - resolution: {integrity: sha512-Ua700vVvM1q105yABSUQWkCK6FeTrNfU6ORGetJe5BzkZWY7QhkF7SVTOlmDGWRDNd6jbyY0Dv5e+E4bMBEmLg==} + '@aws-sdk/token-providers@3.1103.0': + resolution: {integrity: sha512-N4wy26MNn31ItGVHYHPrEuCIFY4MBBjC+C5v1lJKqIUSA7OZBdhleCY53zCCrXn27hsk7YNOaTuhQu807S4AfQ==} engines: {node: '>=20.0.0'} '@aws-sdk/types@3.974.2': @@ -717,8 +717,8 @@ packages: resolution: {integrity: sha512-vxSuMf7qjAzxrAIkdsYX4YGDOxq1dlX0RMFwLbzMuEBINOuxGr6WsryXxeR/5QCkD1kb07qh2puq4FxBjPn4HQ==} engines: {node: '>=22.0.0'} - '@contentstack/cli-launch@1.11.1': - resolution: {integrity: sha512-sInkejRj3BQY2P4EsAzkSy9OIWBFS5rFwP7v9sC9mMMo7UGuasF7hZUJHiIDCcwEnRTIRPQ41qX6NBlIr3steA==} + '@contentstack/cli-launch@1.11.2': + resolution: {integrity: sha512-CiGheBsLPq9Y7/KsO2z/Il1atvXILjtElUaLooX79XPb8N2PELEXHGaIlmtWB0oYUTWS+kNoC+cgHXsEAk6vzw==} engines: {node: '>=22.0.0'} hasBin: true @@ -2355,8 +2355,9 @@ packages: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} - core-js-compat@3.49.0: - resolution: {integrity: sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==} + core-js-compat@3.50.0: + resolution: {integrity: sha512-XGpFGbMLHwSt74YLTKho7Ib242qi6O8MSX+sRokV4oz7iKXvQWGYZthjIhjRGMxjzVkAubBO512dKGYcefmX3Q==} + engines: {node: '>=6.4.0'} core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -2555,8 +2556,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.400: - resolution: {integrity: sha512-96EWDNjM59SYflgeV5Ylsf4EMiq1a25YjCnJH7cxn/AF2H3pILRweaUnoLax0yKHWdpOzY6JKEu45e8irqZIHA==} + electron-to-chromium@1.5.401: + resolution: {integrity: sha512-H6ViHN68nGYlChEvlIU67fn8O2/tpbWQPwck98yaJmh+08LSvHiydzDQ6oXNccLU3kNRVIRS9A4mA7CG+i6fLQ==} elegant-spinner@1.0.1: resolution: {integrity: sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ==} @@ -5518,18 +5519,18 @@ snapshots: css-tree: 2.3.1 is-potential-custom-element-name: 1.0.1 - '@aws-sdk/checksums@3.1000.25': + '@aws-sdk/checksums@3.1000.26': dependencies: - '@aws-sdk/core': 3.977.5 + '@aws-sdk/core': 3.977.6 '@aws-sdk/types': 3.974.2 '@smithy/core': 3.31.1 '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/client-cloudfront@3.1102.0': + '@aws-sdk/client-cloudfront@3.1103.0': dependencies: - '@aws-sdk/core': 3.977.5 - '@aws-sdk/credential-provider-node': 3.972.77 + '@aws-sdk/core': 3.977.6 + '@aws-sdk/credential-provider-node': 3.972.78 '@aws-sdk/types': 3.974.2 '@smithy/core': 3.31.1 '@smithy/fetch-http-handler': 5.6.13 @@ -5537,12 +5538,12 @@ snapshots: '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/client-s3@3.1102.0': + '@aws-sdk/client-s3@3.1103.0': dependencies: - '@aws-sdk/checksums': 3.1000.25 - '@aws-sdk/core': 3.977.5 - '@aws-sdk/credential-provider-node': 3.972.77 - '@aws-sdk/middleware-sdk-s3': 3.972.71 + '@aws-sdk/checksums': 3.1000.26 + '@aws-sdk/core': 3.977.6 + '@aws-sdk/credential-provider-node': 3.972.78 + '@aws-sdk/middleware-sdk-s3': 3.972.72 '@aws-sdk/signature-v4-multi-region': 3.996.43 '@aws-sdk/types': 3.974.2 '@smithy/core': 3.31.1 @@ -5551,7 +5552,7 @@ snapshots: '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/core@3.977.5': + '@aws-sdk/core@3.977.6': dependencies: '@aws-sdk/types': 3.974.2 '@aws-sdk/xml-builder': 3.972.37 @@ -5562,17 +5563,17 @@ snapshots: bowser: 2.14.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-env@3.972.66': + '@aws-sdk/credential-provider-env@3.972.67': dependencies: - '@aws-sdk/core': 3.977.5 + '@aws-sdk/core': 3.977.6 '@aws-sdk/types': 3.974.2 '@smithy/core': 3.31.1 '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-http@3.972.68': + '@aws-sdk/credential-provider-http@3.972.69': dependencies: - '@aws-sdk/core': 3.977.5 + '@aws-sdk/core': 3.977.6 '@aws-sdk/types': 3.974.2 '@smithy/core': 3.31.1 '@smithy/fetch-http-handler': 5.6.13 @@ -5580,84 +5581,84 @@ snapshots: '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-ini@3.973.11': + '@aws-sdk/credential-provider-ini@3.973.12': dependencies: - '@aws-sdk/core': 3.977.5 - '@aws-sdk/credential-provider-env': 3.972.66 - '@aws-sdk/credential-provider-http': 3.972.68 - '@aws-sdk/credential-provider-login': 3.972.73 - '@aws-sdk/credential-provider-process': 3.972.66 - '@aws-sdk/credential-provider-sso': 3.973.10 - '@aws-sdk/credential-provider-web-identity': 3.972.72 - '@aws-sdk/nested-clients': 3.997.40 + '@aws-sdk/core': 3.977.6 + '@aws-sdk/credential-provider-env': 3.972.67 + '@aws-sdk/credential-provider-http': 3.972.69 + '@aws-sdk/credential-provider-login': 3.972.74 + '@aws-sdk/credential-provider-process': 3.972.67 + '@aws-sdk/credential-provider-sso': 3.973.11 + '@aws-sdk/credential-provider-web-identity': 3.972.73 + '@aws-sdk/nested-clients': 3.997.41 '@aws-sdk/types': 3.974.2 '@smithy/core': 3.31.1 '@smithy/credential-provider-imds': 4.4.16 '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-login@3.972.73': + '@aws-sdk/credential-provider-login@3.972.74': dependencies: - '@aws-sdk/core': 3.977.5 - '@aws-sdk/nested-clients': 3.997.40 + '@aws-sdk/core': 3.977.6 + '@aws-sdk/nested-clients': 3.997.41 '@aws-sdk/types': 3.974.2 '@smithy/core': 3.31.1 '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-node@3.972.77': + '@aws-sdk/credential-provider-node@3.972.78': dependencies: - '@aws-sdk/credential-provider-env': 3.972.66 - '@aws-sdk/credential-provider-http': 3.972.68 - '@aws-sdk/credential-provider-ini': 3.973.11 - '@aws-sdk/credential-provider-process': 3.972.66 - '@aws-sdk/credential-provider-sso': 3.973.10 - '@aws-sdk/credential-provider-web-identity': 3.972.72 + '@aws-sdk/credential-provider-env': 3.972.67 + '@aws-sdk/credential-provider-http': 3.972.69 + '@aws-sdk/credential-provider-ini': 3.973.12 + '@aws-sdk/credential-provider-process': 3.972.67 + '@aws-sdk/credential-provider-sso': 3.973.11 + '@aws-sdk/credential-provider-web-identity': 3.972.73 '@aws-sdk/types': 3.974.2 '@smithy/core': 3.31.1 '@smithy/credential-provider-imds': 4.4.16 '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-process@3.972.66': + '@aws-sdk/credential-provider-process@3.972.67': dependencies: - '@aws-sdk/core': 3.977.5 + '@aws-sdk/core': 3.977.6 '@aws-sdk/types': 3.974.2 '@smithy/core': 3.31.1 '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-sso@3.973.10': + '@aws-sdk/credential-provider-sso@3.973.11': dependencies: - '@aws-sdk/core': 3.977.5 - '@aws-sdk/nested-clients': 3.997.40 - '@aws-sdk/token-providers': 3.1102.0 + '@aws-sdk/core': 3.977.6 + '@aws-sdk/nested-clients': 3.997.41 + '@aws-sdk/token-providers': 3.1103.0 '@aws-sdk/types': 3.974.2 '@smithy/core': 3.31.1 '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-web-identity@3.972.72': + '@aws-sdk/credential-provider-web-identity@3.972.73': dependencies: - '@aws-sdk/core': 3.977.5 - '@aws-sdk/nested-clients': 3.997.40 + '@aws-sdk/core': 3.977.6 + '@aws-sdk/nested-clients': 3.997.41 '@aws-sdk/types': 3.974.2 '@smithy/core': 3.31.1 '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/middleware-sdk-s3@3.972.71': + '@aws-sdk/middleware-sdk-s3@3.972.72': dependencies: - '@aws-sdk/core': 3.977.5 + '@aws-sdk/core': 3.977.6 '@aws-sdk/signature-v4-multi-region': 3.996.43 '@aws-sdk/types': 3.974.2 '@smithy/core': 3.31.1 '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/nested-clients@3.997.40': + '@aws-sdk/nested-clients@3.997.41': dependencies: - '@aws-sdk/core': 3.977.5 + '@aws-sdk/core': 3.977.6 '@aws-sdk/signature-v4-multi-region': 3.996.43 '@aws-sdk/types': 3.974.2 '@smithy/core': 3.31.1 @@ -5673,10 +5674,10 @@ snapshots: '@smithy/types': 4.16.1 tslib: 2.8.1 - '@aws-sdk/token-providers@3.1102.0': + '@aws-sdk/token-providers@3.1103.0': dependencies: - '@aws-sdk/core': 3.977.5 - '@aws-sdk/nested-clients': 3.997.40 + '@aws-sdk/core': 3.977.6 + '@aws-sdk/nested-clients': 3.997.41 '@aws-sdk/types': 3.974.2 '@smithy/core': 3.31.1 '@smithy/types': 4.16.1 @@ -6006,7 +6007,7 @@ snapshots: - debug - supports-color - '@contentstack/cli-launch@1.11.1(@types/node@14.18.63)(tslib@2.8.1)(typescript@4.9.5)': + '@contentstack/cli-launch@1.11.2(@types/node@14.18.63)(tslib@2.8.1)(typescript@4.9.5)': dependencies: '@apollo/client': 3.14.1(graphql@16.14.2) '@contentstack/cli-command': 1.8.5(@types/node@14.18.63)(debug@4.4.3) @@ -7584,7 +7585,7 @@ snapshots: dependencies: baseline-browser-mapping: 2.11.12 caniuse-lite: 1.0.30001806 - electron-to-chromium: 1.5.400 + electron-to-chromium: 1.5.401 node-releases: 2.0.52 update-browserslist-db: 1.2.3(browserslist@4.28.7) @@ -7895,7 +7896,7 @@ snapshots: cookie@0.7.2: {} - core-js-compat@3.49.0: + core-js-compat@3.50.0: dependencies: browserslist: 4.28.7 @@ -8072,7 +8073,7 @@ snapshots: dependencies: jake: 10.9.4 - electron-to-chromium@1.5.400: {} + electron-to-chromium@1.5.401: {} elegant-spinner@1.0.1: {} @@ -8491,7 +8492,7 @@ snapshots: '@eslint-community/eslint-utils': 4.10.1(eslint@10.8.0) ci-info: 4.4.0 clean-regexp: 1.0.0 - core-js-compat: 3.49.0 + core-js-compat: 3.50.0 eslint: 10.8.0 esquery: 1.7.0 globals: 15.15.0 @@ -9979,8 +9980,8 @@ snapshots: oclif@4.23.29(@types/node@14.18.63): dependencies: - '@aws-sdk/client-cloudfront': 3.1102.0 - '@aws-sdk/client-s3': 3.1102.0 + '@aws-sdk/client-cloudfront': 3.1103.0 + '@aws-sdk/client-s3': 3.1103.0 '@inquirer/confirm': 3.2.0 '@inquirer/input': 2.3.0 '@inquirer/select': 2.5.0 From 6bec2b0d56330f254630ea0e4ba4b26af8cc2bc6 Mon Sep 17 00:00:00 2001 From: raj pandey Date: Wed, 5 Aug 2026 17:14:18 +0530 Subject: [PATCH 04/12] docs(cli): replace oclif command dump with concise README and plugin index Reduces packages/contentstack/README.md from 4493 lines to ~72. Replaces the auto-generated full command reference with: - Bundled plugins table (14 plugins) linking each to its npm page - Installable plugins table (7 opt-in plugins) with install instruction - Accurate descriptions, bulk-publish vs bulk-operations note, and a footnote explaining the two legacy unscoped package names Co-Authored-By: Claude Sonnet 4.6 --- packages/contentstack/README.md | 4516 +------------------------------ 1 file changed, 47 insertions(+), 4469 deletions(-) diff --git a/packages/contentstack/README.md b/packages/contentstack/README.md index 761ff3663b..520ad1ee1b 100644 --- a/packages/contentstack/README.md +++ b/packages/contentstack/README.md @@ -1,4493 +1,71 @@ # @contentstack/cli -Use Contentstack Command-line Interface to command Contentstack for executing a set of operations from the terminal. To get started with CLI, refer to the [CLI’s documentation](https://www.contentstack.com/docs/developers/cli) +Use Contentstack Command-line Interface (CLI) to interact with Contentstack directly from your terminal. [![License](https://img.shields.io/npm/l/@contentstack/cli)](https://github.com/contentstack/cli/blob/main/LICENSE) +[![npm](https://img.shields.io/npm/v/@contentstack/cli)](https://www.npmjs.com/package/@contentstack/cli) - -* [@contentstack/cli](#contentstackcli) -* [Requirements](#requirements) -* [Usage](#usage) -* [Commands](#commands) - +## Requirements -# Requirements +Node.js v22 or higher — download from [nodejs.org](https://nodejs.org/). -- **Node.js v22 or higher** is required. Download it from [nodejs.org](https://nodejs.org/). - -> **Note:** Starting from this version, Contentstack CLI requires Node.js 22+. Node.js 22 is the current LTS release and includes important compatibility improvements for modern JavaScript modules. - -# Usage - - -```sh-session -$ npm install -g @contentstack/cli -$ csdx COMMAND -running command... -$ csdx (--version|-v) -@contentstack/cli/1.65.0 darwin-arm64 node-v22.13.1 -$ csdx --help [COMMAND] -USAGE - $ csdx COMMAND -... -``` - - -# Commands - - -* [`csdx audit`](#csdx-audit) -* [`csdx audit:fix`](#csdx-auditfix) -* [`csdx auth:login`](#csdx-authlogin) -* [`csdx auth:logout`](#csdx-authlogout) -* [`csdx auth:tokens`](#csdx-authtokens) -* [`csdx auth:tokens:add [-a ] [--delivery] [--management] [-e ] [-k ] [-y] [--token ]`](#csdx-authtokensadd--a-value---delivery---management--e-value--k-value--y---token-value) -* [`csdx auth:tokens:remove`](#csdx-authtokensremove) -* [`csdx auth:whoami`](#csdx-authwhoami) -* [`csdx cm:assets:publish [-a ] [--retry-failed ] [-e ] [--folder-uid ] [--backup-dir ] [--bulk-publish ] [-c ] [-y] [--locales ] [--branch ] [--delivery-token ] [--source-env ]`](#csdx-cmassetspublish--a-value---retry-failed-value--e-value---folder-uid-value---backup-dir-value---bulk-publish-value--c-value--y---locales-value---branch-value---delivery-token-value---source-env-value) -* [`csdx cm:assets:unpublish`](#csdx-cmassetsunpublish) -* [`csdx cm:bootstrap`](#csdx-cmbootstrap) -* [`csdx cm:branches`](#csdx-cmbranches) -* [`csdx cm:branches:create`](#csdx-cmbranchescreate) -* [`csdx cm:branches:delete [-uid ] [-k ]`](#csdx-cmbranchesdelete--uid-value--k-value) -* [`csdx cm:branches:diff [--base-branch ] [--compare-branch ] [-k ][--module ] [--format ] [--csv-path ]`](#csdx-cmbranchesdiff---base-branch-value---compare-branch-value--k-value--module-value---format-value---csv-path-value) -* [`csdx cm:branches:merge [-k ][--compare-branch ] [--no-revert] [--export-summary-path ] [--use-merge-summary ] [--comment ] [--base-branch ]`](#csdx-cmbranchesmerge--k-value--compare-branch-value---no-revert---export-summary-path-value---use-merge-summary-value---comment-value---base-branch-value) -* [`csdx cm:branches:merge-status -k --merge-uid `](#csdx-cmbranchesmerge-status--k-value---merge-uid-value) -* [`csdx cm:bulk-publish`](#csdx-cmbulk-publish) -* [`csdx cm:entries:update-and-publish [-a ] [--retry-failed ] [--bulk-publish ] [--content-types ] [-t ] [-e ] [-c ] [-y] [--locales ] [--branch ]`](#csdx-cmentriesupdate-and-publish--a-value---retry-failed-value---bulk-publish-value---content-types-value--t-value--e-value--c-value--y---locales-value---branch-value) -* [`csdx cm:assets:publish [-a ] [--retry-failed ] [-e ] [--folder-uid ] [--backup-dir ] [--bulk-publish ] [-c ] [-y] [--locales ] [--branch ] [--delivery-token ] [--source-env ]`](#csdx-cmassetspublish--a-value---retry-failed-value--e-value---folder-uid-value---backup-dir-value---bulk-publish-value--c-value--y---locales-value---branch-value---delivery-token-value---source-env-value) -* [`csdx cm:bulk-publish:clear`](#csdx-cmbulk-publishclear) -* [`csdx cm:bulk-publish:configure`](#csdx-cmbulk-publishconfigure) -* [`csdx cm:bulk-publish:cross-publish [-a ] [--retry-failed ] [--bulk-publish ] [--content-type ] [--locales ] [--source-env ] [--environments ] [--delivery-token ] [-c ] [-y] [--branch ] [--onlyAssets] [--onlyEntries] [--include-variants]`](#csdx-cmbulk-publishcross-publish--a-value---retry-failed-value---bulk-publish-value---content-type-value---locales-value---source-env-value---environments-value---delivery-token-value--c-value--y---branch-value---onlyassets---onlyentries---include-variants) -* [`csdx cm:entries:publish [-a ] [--retry-failed ] [--bulk-publish ] [--publish-all-content-types] [--content-types ] [--locales ] [-e ] [-c ] [-y] [--branch ] [--delivery-token ] [--source-env ] [--entry-uid ] [--include-variants]`](#csdx-cmentriespublish--a-value---retry-failed-value---bulk-publish-value---publish-all-content-types---content-types-value---locales-value--e-value--c-value--y---branch-value---delivery-token-value---source-env-value---entry-uid-value---include-variants) -* [`csdx cm:entries:publish-modified [-a ] [--retry-failed ] [--bulk-publish ] [--source-env ] [--content-types ] [--locales ] [-e ] [-c ] [-y] [--branch ]`](#csdx-cmentriespublish-modified--a-value---retry-failed-value---bulk-publish-value---source-env-value---content-types-value---locales-value--e-value--c-value--y---branch-value) -* [`csdx cm:entries:publish-non-localized-fields [-a ] [--retry-failed ] [--bulk-publish ] [--source-env ] [--content-types ] [-e ] [-c ] [-y] [--branch ]`](#csdx-cmentriespublish-non-localized-fields--a-value---retry-failed-value---bulk-publish-value---source-env-value---content-types-value--e-value--c-value--y---branch-value) -* [`csdx cm:bulk-publish:revert`](#csdx-cmbulk-publishrevert) -* [`csdx csdx cm:stacks:unpublish [-a ] [-e ] [-c ] [-y] [--locale ] [--branch ] [--retry-failed ] [--bulk-unpublish ] [--content-type ] [--delivery-token ] [--only-assets] [--only-entries]`](#csdx-csdx-cmstacksunpublish--a-value--e-value--c-value--y---locale-value---branch-value---retry-failed-value---bulk-unpublish-value---content-type-value---delivery-token-value---only-assets---only-entries) -* [`csdx cm:entries:publish-only-unpublished [-a ] [--retry-failed ] [--bulk-publish ] [--source-env ] [--content-types ] [--locales ] [-e ] [-c ] [-y] [--branch ]`](#csdx-cmentriespublish-only-unpublished--a-value---retry-failed-value---bulk-publish-value---source-env-value---content-types-value---locales-value--e-value--c-value--y---branch-value) -* [`csdx cm:entries:migrate-html-rte`](#csdx-cmentriesmigrate-html-rte) -* [`csdx cm:entries:publish [-a ] [--retry-failed ] [--bulk-publish ] [--publish-all-content-types] [--content-types ] [--locales ] [-e ] [-c ] [-y] [--branch ] [--delivery-token ] [--source-env ] [--entry-uid ] [--include-variants]`](#csdx-cmentriespublish--a-value---retry-failed-value---bulk-publish-value---publish-all-content-types---content-types-value---locales-value--e-value--c-value--y---branch-value---delivery-token-value---source-env-value---entry-uid-value---include-variants) -* [`csdx cm:entries:publish-modified [-a ] [--retry-failed ] [--bulk-publish ] [--source-env ] [--content-types ] [--locales ] [-e ] [-c ] [-y] [--branch ]`](#csdx-cmentriespublish-modified--a-value---retry-failed-value---bulk-publish-value---source-env-value---content-types-value---locales-value--e-value--c-value--y---branch-value) -* [`csdx cm:entries:publish-non-localized-fields [-a ] [--retry-failed ] [--bulk-publish ] [--source-env ] [--content-types ] [-e ] [-c ] [-y] [--branch ]`](#csdx-cmentriespublish-non-localized-fields--a-value---retry-failed-value---bulk-publish-value---source-env-value---content-types-value--e-value--c-value--y---branch-value) -* [`csdx cm:entries:publish-only-unpublished [-a ] [--retry-failed ] [--bulk-publish ] [--source-env ] [--content-types ] [--locales ] [-e ] [-c ] [-y] [--branch ]`](#csdx-cmentriespublish-only-unpublished--a-value---retry-failed-value---bulk-publish-value---source-env-value---content-types-value---locales-value--e-value--c-value--y---branch-value) -* [`csdx cm:entries:unpublish`](#csdx-cmentriesunpublish) -* [`csdx cm:entries:update-and-publish [-a ] [--retry-failed ] [--bulk-publish ] [--content-types ] [-t ] [-e ] [-c ] [-y] [--locales ] [--branch ]`](#csdx-cmentriesupdate-and-publish--a-value---retry-failed-value---bulk-publish-value---content-types-value--t-value--e-value--c-value--y---locales-value---branch-value) -* [`csdx cm:stacks:export [-c ] [-k ] [-d ] [-a ] [--module ] [--content-types ] [--branch ] [--secured-assets]`](#csdx-cmstacksexport--c-value--k-value--d-value--a-value---module-value---content-types-value---branch-value---secured-assets) -* [`csdx cm:export-to-csv`](#csdx-cmexport-to-csv) -* [`csdx cm:stacks:import [-c ] [-k ] [-d ] [-a ] [--module ] [--backup-dir ] [--branch ] [--import-webhook-status disable|current]`](#csdx-cmstacksimport--c-value--k-value--d-value--a-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 ] [-k ] [-n ] [-y] [-s ] [--locale ]`](#csdx-cmstacksseed---repo-value---org-value--k-value--n-value--y--s-value---locale-value) -* [`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]`](#csdx-cmstacksclone---source-branch-value---target-branch-value---source-management-token-alias-value---destination-management-token-alias-value--n-value---type-ab---source-stack-api-key-value---destination-stack-api-key-value---import-webhook-status-disablecurrent) -* [`csdx cm:stacks:audit`](#csdx-cmstacksaudit) -* [`csdx cm:stacks:audit:fix`](#csdx-cmstacksauditfix) -* [`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]`](#csdx-cmstacksclone---source-branch-value---target-branch-value---source-management-token-alias-value---destination-management-token-alias-value--n-value---type-ab---source-stack-api-key-value---destination-stack-api-key-value---import-webhook-status-disablecurrent) -* [`csdx cm:stacks:export [-c ] [-k ] [-d ] [-a ] [--module ] [--content-types ] [--branch ] [--secured-assets]`](#csdx-cmstacksexport--c-value--k-value--d-value--a-value---module-value---content-types-value---branch-value---secured-assets) -* [`csdx cm:stacks:import [-c ] [-k ] [-d ] [-a ] [--module ] [--backup-dir ] [--branch ] [--import-webhook-status disable|current]`](#csdx-cmstacksimport--c-value--k-value--d-value--a-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:publish`](#csdx-cmstackspublish) -* [`csdx cm:stacks:publish-clear-logs`](#csdx-cmstackspublish-clear-logs) -* [`csdx cm:stacks:publish-configure`](#csdx-cmstackspublish-configure) -* [`csdx cm:stacks:publish-revert`](#csdx-cmstackspublish-revert) -* [`csdx cm:stacks:seed [--repo ] [--org ] [-k ] [-n ] [-y] [-s ] [--locale ]`](#csdx-cmstacksseed---repo-value---org-value--k-value--n-value--y--s-value---locale-value) -* [`csdx csdx cm:stacks:unpublish [-a ] [-e ] [-c ] [-y] [--locale ] [--branch ] [--retry-failed ] [--bulk-unpublish ] [--content-type ] [--delivery-token ] [--only-assets] [--only-entries]`](#csdx-csdx-cmstacksunpublish--a-value--e-value--c-value--y---locale-value---branch-value---retry-failed-value---bulk-unpublish-value---content-type-value---delivery-token-value---only-assets---only-entries) -* [`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) -* [`csdx config:get:log`](#csdx-configgetlog) -* [`csdx config:get:proxy`](#csdx-configgetproxy) -* [`csdx config:get:rate-limit`](#csdx-configgetrate-limit) -* [`csdx config:get:region`](#csdx-configgetregion) -* [`csdx config:remove:base-branch`](#csdx-configremovebase-branch) -* [`csdx config:remove:ea-header`](#csdx-configremoveea-header) -* [`csdx config:remove:early-access-header`](#csdx-configremoveearly-access-header) -* [`csdx config:remove:proxy`](#csdx-configremoveproxy) -* [`csdx config:remove:rate-limit`](#csdx-configremoverate-limit) -* [`csdx config:set:base-branch`](#csdx-configsetbase-branch) -* [`csdx config:set:ea-header`](#csdx-configsetea-header) -* [`csdx config:set:early-access-header`](#csdx-configsetearly-access-header) -* [`csdx config:set:log`](#csdx-configsetlog) -* [`csdx config:set:proxy`](#csdx-configsetproxy) -* [`csdx config:set:rate-limit`](#csdx-configsetrate-limit) -* [`csdx config:set:region [REGION]`](#csdx-configsetregion-region) -* [`csdx help [COMMAND]`](#csdx-help-command) -* [`csdx launch`](#csdx-launch) -* [`csdx launch:deployments`](#csdx-launchdeployments) -* [`csdx launch:environments`](#csdx-launchenvironments) -* [`csdx launch:functions`](#csdx-launchfunctions) -* [`csdx launch:logs`](#csdx-launchlogs) -* [`csdx launch:open`](#csdx-launchopen) -* [`csdx launch:rollback`](#csdx-launchrollback) -* [`csdx login`](#csdx-login) -* [`csdx logout`](#csdx-logout) -* [`csdx plugins`](#csdx-plugins) -* [`csdx plugins:add PLUGIN`](#csdx-pluginsadd-plugin) -* [`csdx plugins:inspect PLUGIN...`](#csdx-pluginsinspect-plugin) -* [`csdx plugins:install PLUGIN`](#csdx-pluginsinstall-plugin) -* [`csdx plugins:link PATH`](#csdx-pluginslink-path) -* [`csdx plugins:remove [PLUGIN]`](#csdx-pluginsremove-plugin) -* [`csdx plugins:reset`](#csdx-pluginsreset) -* [`csdx plugins:uninstall [PLUGIN]`](#csdx-pluginsuninstall-plugin) -* [`csdx plugins:unlink [PLUGIN]`](#csdx-pluginsunlink-plugin) -* [`csdx plugins:update`](#csdx-pluginsupdate) -* [`csdx tokens`](#csdx-tokens) -* [`csdx whoami`](#csdx-whoami) - -## `csdx audit` - -Perform audits and find possible errors in the exported Contentstack data - -``` -USAGE - $ csdx audit [-c ] [-d ] [--show-console-output] [--report-path ] [--modules - content-types|global-fields|entries|extensions|workflows|custom-roles|assets|field-rules|composable-studio...] - [--columns ] [--sort ] [--filter ] [--csv] [--no-truncate] [--no-header] [--output - csv|json|yaml] - -FLAGS - --modules=