Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 4 additions & 94 deletions .talismanrc
Original file line number Diff line number Diff line change
@@ -1,96 +1,6 @@
fileignoreconfig:
- filename: packages/contentstack-migrate-rte/test/dummy/expectedEntriesResponse.json
checksum: a2784a3cb21780434958478d478dcb91d2d9a3a8025567d90fe8d74e9141b052
- filename: packages/contentstack-migrate-rte/test/dummy/entriesResponse.json
checksum: 691f3dcfbbcf69fd21e109a0d7003bdb500af2d0253bb7d7e8a0636d8f2a58f4
- filename: pnpm-lock.yaml
checksum: e0fb4541c1f31354c8899eba61bc579942a4c1057658973b4691c2890c98ff93
- filename: packages/contentstack-bulk-operations/src/utils/bulk-publish-url-generator.ts
checksum: 052d811adb5da9bac8c70e5b3dc4ddf700d5aea274dd2aa90a2df374118fbd26
- filename: packages/contentstack-bulk-operations/src/utils/client.ts
checksum: efdada21291db6d66e3114b7408163dee4cafe6ddb3904f02aa67140a1a89bb6
- filename: packages/contentstack-bulk-operations/test/unit/core/index.test.ts
checksum: 0d789258f5a9664e8a7dc5f5b23da846d0eaf8c52638ff20fb1f26104d3f9f8d
- filename: packages/contentstack-migrate-rte/README.md
checksum: 3810817d905405de86814af35fc0f0a6712cacd70f43223869b4f0599b6e579c
- filename: packages/contentstack-bulk-operations/test/unit/messages/index.test.ts
checksum: e86e76db4f4afc899ae2a4742627a71a7d227a7139014361b9d83de6154b3c7a
- filename: packages/contentstack-bulk-operations/test/unit/base-bulk-command.test.ts
checksum: 18684a596707865e671f1ee57b4819cb3f4b4f2633d6c49f7f4b6ce09391359f
- filename: packages/contentstack-bulk-operations/src/base-bulk-command.ts
checksum: 34907f0e00c40096cbe517b680a24fdf57caac351e45bc44b96e41987e619b67
- filename: packages/contentstack-bulk-operations/test/unit/services/index.test.ts
checksum: aae62ba072551bedf869ec7b1f6bf90238bc039336f37e7c583da8ba0637f9be
- filename: packages/contentstack-bulk-operations/test/unit/utils/bulk-operation-log-handler.test.ts
checksum: cec7ba35157c6516d67931d41deb57b7a156d9fc05dbab93ca5116e89b95c820
- filename: packages/contentstack-bulk-operations/test/unit/utils/client.test.ts
checksum: 178611b1f153b46a0020da22cc18293d5bd9c539ec2e54557fd8c1a3c2e796b3
- filename: packages/contentstack-bulk-operations/test/unit/services/taxonomy-service.test.ts
checksum: 33af8ee198158dd92916d76207e172b5316864d063a6929526ca259b459ec79a
- filename: packages/contentstack-cli-tsgen/src/commands/tsgen.ts
checksum: 054ea78f765edca62c785714cf8962df4fb91529c0851439d1ed61e963467408
- filename: packages/contentstack-cli-cm-regex-validate/messages/index.json
checksum: 044b311bde624dcc3c12434174d6027dbb6b62eefdfae120570a1748f806c60c
- filename: packages/contentstack-cli-tsgen/AGENTS.md
checksum: 75b4f1414b547d0bd83df5ed4fb80020acc0ed849619bed2639491b565be7a1b
- filename: packages/contentstack-bulk-operations/eslint.config.js
checksum: 0d93d7f660fe4cd6d62348c85ac10bf7c66018ea0b8e3e6d5a53419433f15867
- filename: packages/contentstack-cli-cm-regex-validate/test/utils/connect-stack.test.ts
checksum: 8fcd1dc2770a2a3f55ba462b7ffd3fc2e3cf45342c63e5b6dc5c1db4c2bd9738
- filename: packages/contentstack-bulk-operations/test/unit/utils/validators.test.ts
checksum: 69cf394584e325b972d6825879de7c31b9dd1bd50b0bb057aecb739258ac0317
- filename: packages/contentstack-bulk-operations/test/unit/commands/bulk-assets.test.ts
checksum: c099c628c7ae1a40a9ca5580de0afa8309a611b2dff7837b10bb8f70eb92f8b3
- filename: packages/contentstack-bulk-operations/test/unit/core/operation-executor.test.ts
checksum: 97f0ddd4d547f37a8d93650aa1e8af4ef4dbce343dd51853e34bbde6107cd725
- filename: packages/contentstack-cli-tsgen/src/lib/helper.ts
checksum: a7ead0030ead9d15b6b6e9623f61e7def77b00325e3988f0e3d73a145180dedc
- filename: packages/contentstack-migrate-rte/test/utils/index.js
checksum: bc2a509a86174aecbaf0bfc44d6ad3afabe57ef871ec91b796d498e00177e3f0
- filename: packages/contentstack-cli-cm-regex-validate/skills/code-review/SKILL.md
checksum: b92ea1c8e2f901c9e1e60f6ef6986d348a40a7869c236e3c1f3ca53b553dbb8e
- filename: packages/contentstack-migrate-rte/test/commands/json-migration.test.js
checksum: 56e10f1e0d2794fa13bcf5a6bb3e868b28277df1762fb3df0a8a82ad44f8045b
- filename: packages/contentstack-bulk-operations/test/unit/utils/interactive.test.ts
checksum: 3ee0ff5a74929346bfe997aeb977b4e93d398ea63892efc5f85e0b51a21074f6
- filename: packages/contentstack-bulk-operations/src/core/operation-executor.ts
checksum: 46295f495f007ad291787133936c5af3c76838d72f2be0de9c235bb644d6f905
- filename: packages/contentstack-bulk-operations/src/utils/batch-queue-handler.ts
checksum: d1d031242b99f5c738e2f4587ca2f5f3e96373e479ebaf4d93b2f98152943593
- filename: packages/contentstack-bulk-operations/src/messages/index.ts
checksum: 2d904462af6dc3ddc00ae6bb4433c846500ddfecee5a9e1fb1c236bd598a2ee1
- filename: packages/contentstack-migrate-rte/src/commands/cm/entries/migrate-html-rte.js
checksum: a069c50d5152022a0957d5f597158e2d8c74803b3d24ff6bbbe3b09f0e9053e2
- filename: packages/contentstack-bulk-operations/test/unit/utils/config-builder.test.ts
checksum: d46757d3bb98d76845e83d4585f269b62b1fa9cb5bee3215b88fed38fd1dbb53
- filename: packages/contentstack-bulk-operations/src/utils/revert-retry-handler.ts
checksum: 76899098d74de1dd20f1b08401c65f23b2bec584c051388e63f70f3d24a6d1a4
- filename: packages/contentstack-bulk-operations/src/utils/interactive.ts
checksum: ba4fdd6f17c7d43cae639158f82dea3065ba8a368ddce8c476bfe49a6945e5c1
- filename: packages/contentstack-bulk-operations/test/unit/utils/taxonomy-interactive-select.test.ts
checksum: 34a085702d01d7e16e1507ea1e434b374c2cba5dd884aad5996c5484412897c0
- filename: packages/contentstack-bulk-operations/src/core/rate-limiter.ts
checksum: 81e3d624166ab34a589e3e8527b9e57ebc7e7f4374efd0483b1df0dd11788b68
- filename: packages/contentstack-bulk-operations/src/interfaces/index.ts
checksum: 0ff6bbc372758a20783f36bd391ba9d500530433fde472a1aacaf54f6b4a1688
- filename: packages/contentstack-bulk-operations/test/unit/utils/operation-confirmation.test.ts
checksum: 043185e56361ffae2116a2af5a4da16986816ad054fd94f189269e5b6150609e
- filename: packages/contentstack-cli-cm-regex-validate/skills/contentstack-cli/SKILL.md
checksum: 9420a516ba6046b05748683c90e3817d091cef76c46e029cb3745d6c0c350838
- filename: packages/contentstack-cli-cm-regex-validate/skills/dev-workflow/SKILL.md
checksum: b423dd35d0f7f0f25315e2a30198669b50db350f0ab2f917a1d3c4fbb0af0534
- filename: packages/contentstack-bulk-operations/test/unit/commands/bulk-entries.test.ts
checksum: 845512e660813a6d7d96efd89dcff6eba4591a3f9ff371dc9b1aad38921e18a6
- filename: packages/contentstack-bulk-operations/test/unit/utils/revert-retry-handler.test.ts
checksum: 078f9633edb53204ed14ebe3cf6b1d6063729dd37b7ee1c6e936a344ceabebda
- filename: packages/contentstack-migrate-rte/src/lib/util/index.js
checksum: 7d85f342c7fd7875713cebfae83f68d8592cc732a15cca48ddecbeae818cb4c5
- filename: packages/contentstack-cli-cm-regex-validate/src/utils/connect-stack.ts
checksum: c77c7c25efc6d043b26e3dd0a516e22ac50142fa9fa5ff3a53a7c9fb8f24ebd6
- filename: packages/contentstack-bulk-operations/src/utils/config-builder.ts
checksum: a7b5259ad719b8c5929f9fea3783bdc92610dc2549426204c1bb6813e7e1112a
- filename: packages/contentstack-bulk-operations/README.md
checksum: 169110e7c6159632f19dc16e17dcb5bac22e5d6880339b35ba076a2fe0d75266
- filename: packages/contentstack-bulk-operations/test/unit/utils/batch-queue-handler.test.ts
checksum: c91f1822b5cfd34a4f4ba05dfc56c10a66e0f5ddb55a1cf5b454fa9549ea0052
- filename: packages/contentstack-import/src/import/modules/webhooks.ts
checksum: 8c9527f966fe24debfb36d96a280ac3b2dd6494a58128380c69d7475e595436d
- filename: packages/contentstack-import/test/unit/import/modules/webhooks.test.ts
checksum: 3924a3e38211b8554f25365fe3100cb83361d03370fdaa77e5c7f9e74abafcee
version: '1.0'
2 changes: 1 addition & 1 deletion packages/contentstack-bootstrap/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ $ npm install -g @contentstack/cli-cm-bootstrap
$ csdx COMMAND
running command...
$ csdx (--version)
@contentstack/cli-cm-bootstrap/1.19.3 darwin-arm64 node-v24.14.0
@contentstack/cli-cm-bootstrap/1.19.6 darwin-arm64 node-v24.14.0
$ csdx --help [COMMAND]
USAGE
$ csdx COMMAND
Expand Down
4 changes: 2 additions & 2 deletions packages/contentstack-bootstrap/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@contentstack/cli-cm-bootstrap",
"description": "Bootstrap contentstack apps",
"version": "1.19.5",
"version": "1.19.6",
"author": "Contentstack",
"bugs": "https://github.com/contentstack/cli/issues",
"scripts": {
Expand All @@ -16,7 +16,7 @@
"test:report": "nyc --reporter=lcov mocha \"test/**/*.test.js\""
},
"dependencies": {
"@contentstack/cli-cm-seed": "~1.15.5",
"@contentstack/cli-cm-seed": "~1.15.6",
"@contentstack/cli-command": "~1.8.3",
"@contentstack/cli-config": "~1.20.4",
"@contentstack/cli-utilities": "~1.18.4",
Expand Down
2 changes: 1 addition & 1 deletion packages/contentstack-clone/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ $ npm install -g @contentstack/cli-cm-clone
$ csdx COMMAND
running command...
$ csdx (--version)
@contentstack/cli-cm-clone/1.21.4 darwin-arm64 node-v24.14.0
@contentstack/cli-cm-clone/1.21.7 darwin-arm64 node-v24.14.0
$ csdx --help [COMMAND]
USAGE
$ csdx COMMAND
Expand Down
4 changes: 2 additions & 2 deletions packages/contentstack-clone/package.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
{
"name": "@contentstack/cli-cm-clone",
"description": "Contentstack stack clone plugin",
"version": "1.21.6",
"version": "1.21.7",
"author": "Contentstack",
"bugs": "https://github.com/rohitmishra209/cli-cm-clone/issues",
"dependencies": {
"@colors/colors": "^1.6.0",
"@contentstack/cli-cm-export": "~1.25.1",
"@contentstack/cli-cm-import": "~1.33.2",
"@contentstack/cli-cm-import": "~1.33.3",
"@contentstack/cli-command": "~1.8.3",
"@contentstack/cli-utilities": "~1.18.4",
"@oclif/core": "^4.11.4",
Expand Down
12 changes: 6 additions & 6 deletions packages/contentstack-content-type/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ EXAMPLES
$ csdx content-type:audit --alias "management token" --content-type "home_page"
```

_See code: [src/commands/content-type/audit.ts](https://github.com/contentstack/contentstack-cli-content-type/blob/v1.3.0/src/commands/content-type/audit.ts)_
_See code: [src/commands/content-type/audit.ts](https://github.com/contentstack/cli-plugins/blob/main/packages/contentstack-content-type/src/commands/content-type/audit.ts)_

## `csdx content-type:compare`

Expand Down Expand Up @@ -115,7 +115,7 @@ EXAMPLES
$ csdx content-type:compare --alias "management token" --content-type "home_page" --left # --right #
```

_See code: [src/commands/content-type/compare.ts](https://github.com/contentstack/contentstack-cli-content-type/blob/v1.3.0/src/commands/content-type/compare.ts)_
_See code: [src/commands/content-type/compare.ts](https://github.com/contentstack/cli-plugins/blob/main/packages/contentstack-content-type/src/commands/content-type/compare.ts)_

## `csdx content-type:compare-remote`

Expand All @@ -137,7 +137,7 @@ EXAMPLES
$ csdx content-type:compare-remote --origin-stack "xxxxxxxxxxxxxxxxxxx" --remote-stack "xxxxxxxxxxxxxxxxxxx" -content-type "home_page"
```

_See code: [src/commands/content-type/compare-remote.ts](https://github.com/contentstack/contentstack-cli-content-type/blob/v1.3.0/src/commands/content-type/compare-remote.ts)_
_See code: [src/commands/content-type/compare-remote.ts](https://github.com/contentstack/cli-plugins/blob/main/packages/contentstack-content-type/src/commands/content-type/compare-remote.ts)_

## `csdx content-type:details`

Expand Down Expand Up @@ -166,7 +166,7 @@ EXAMPLES
$ csdx content-type:details --alias "management token" --content-type "home_page" --no-path
```

_See code: [src/commands/content-type/details.ts](https://github.com/contentstack/contentstack-cli-content-type/blob/v1.3.0/src/commands/content-type/details.ts)_
_See code: [src/commands/content-type/details.ts](https://github.com/contentstack/cli-plugins/blob/main/packages/contentstack-content-type/src/commands/content-type/details.ts)_

## `csdx content-type:diagram`

Expand Down Expand Up @@ -201,7 +201,7 @@ EXAMPLES
$ csdx content-type:diagram --alias "management token" --output "content-model.dot" --type "dot"
```

_See code: [src/commands/content-type/diagram.ts](https://github.com/contentstack/contentstack-cli-content-type/blob/v1.3.0/src/commands/content-type/diagram.ts)_
_See code: [src/commands/content-type/diagram.ts](https://github.com/contentstack/cli-plugins/blob/main/packages/contentstack-content-type/src/commands/content-type/diagram.ts)_

## `csdx content-type:list`

Expand Down Expand Up @@ -230,5 +230,5 @@ EXAMPLES
$ csdx content-type:list --alias "management token" --order modified
```

_See code: [src/commands/content-type/list.ts](https://github.com/contentstack/contentstack-cli-content-type/blob/v1.3.0/src/commands/content-type/list.ts)_
_See code: [src/commands/content-type/list.ts](https://github.com/contentstack/cli-plugins/blob/main/packages/contentstack-content-type/src/commands/content-type/list.ts)_
<!-- commandsstop -->
2 changes: 1 addition & 1 deletion packages/contentstack-import/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ $ npm install -g @contentstack/cli-cm-import
$ csdx COMMAND
running command...
$ csdx (--version)
@contentstack/cli-cm-import/1.33.0 darwin-arm64 node-v24.14.0
@contentstack/cli-cm-import/1.33.3 darwin-arm64 node-v24.14.0
$ csdx --help [COMMAND]
USAGE
$ csdx COMMAND
Expand Down
2 changes: 1 addition & 1 deletion packages/contentstack-import/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@contentstack/cli-cm-import",
"description": "Contentstack CLI plugin to import content into stack",
"version": "1.33.2",
"version": "1.33.3",
"author": "Contentstack",
"bugs": "https://github.com/contentstack/cli/issues",
"dependencies": {
Expand Down
12 changes: 10 additions & 2 deletions packages/contentstack-import/src/import/modules/webhooks.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import isEmpty from 'lodash/isEmpty';
import values from 'lodash/values';
import { join } from 'node:path';
import { log, handleAndLogError } from '@contentstack/cli-utilities';

Expand Down Expand Up @@ -93,7 +92,16 @@ export default class ImportWebhooks extends BaseClass {
return;
}

const apiContent = values(this.webhooks);
// Attach each webhook's UID (the JSON key) onto its body. Webhooks are keyed by
// UID in webhooks.json, but the body may not carry a `uid` field. Deriving it from
// the key keeps the dedup mapper keyed by a unique, defined UID — otherwise every
// webhook collapses onto the same `undefined` key and gets falsely skipped as a
// duplicate once the first one is created. The `uid` is stripped before the create
// API call (see `omit(apiData, ['uid'])` in base-class), so this is import-only.
const apiContent = Object.entries(this.webhooks).map(([uid, webhook]) => ({
...(webhook as Record<string, unknown>),
uid,
}));
log.debug(`Starting to import ${apiContent.length} webhooks`, this.importConfig.context);

const onSuccess = ({ response, apiData: { uid, name } = { uid: null, name: '' } }: any) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2887,4 +2887,70 @@ describe('ImportWebhooks - Simple Tests', () => {
expect((importWebhooks as any).failedWebhooks.length).to.equal(1);
});
});

describe('UID derivation from JSON key (regression)', () => {
it('attaches the JSON key as uid even when the webhook body has no uid', async () => {
// Mirrors the user's bundle: webhooks keyed by uid, but no `uid` in the body.
(importWebhooks as any).webhooks = {
'09Ah2QxtkCSKeIRCDYnfkF': { name: 'KB Revalidation' },
'6fikvC9O4jTp8LNMSV006u': { name: 'DT documentation revalidater' },
};

let captured: any[] = [];
sinon.stub(importWebhooks as any, 'makeConcurrentCall').callsFake(async (config: any) => {
captured = config.apiContent;
});

await (importWebhooks as any).importWebhooks();

expect(captured).to.have.length(2);
expect(captured[0].uid).to.equal('09Ah2QxtkCSKeIRCDYnfkF');
expect(captured[1].uid).to.equal('6fikvC9O4jTp8LNMSV006u');
// Distinct uids — not all collapsed onto a single `undefined` key.
expect(new Set(captured.map((w: any) => w.uid)).size).to.equal(2);
});

it('does not falsely skip later webhooks after the first is created', async () => {
// Bodies have no `uid`. Before the fix, the first success wrote
// webhookUidMapper["undefined"], so every later webhook was serialized as a
// "duplicate" and skipped. The fix keys the mapper by the unique JSON key.
(importWebhooks as any).webhooks = {
uidA: { name: 'Webhook A' },
uidB: { name: 'Webhook B' },
uidC: { name: 'Webhook C' },
};

// onSuccess persists the mapper via fsUtil.writeFile — stub the real write.
const utils = require('../../../../src/utils');
sinon.stub(utils.fsUtil, 'writeFile');

const created: string[] = [];
const skipped: string[] = [];

sinon.stub(importWebhooks as any, 'makeConcurrentCall').callsFake(async (config: any) => {
const { serializeData, resolve } = config.apiParams;
// Process sequentially so the first success writes the mapper BEFORE the
// next item is serialized — the exact ordering that triggered the bug.
for (const apiData of config.apiContent) {
const opts = serializeData({ apiData, entity: 'create-webhooks' });
if (opts.entity === undefined) {
skipped.push(apiData.name);
continue;
}
resolve({ response: { uid: `new-${apiData.uid}` }, apiData: opts.apiData });
created.push(apiData.name);
}
});

await (importWebhooks as any).importWebhooks();

expect(skipped).to.deep.equal([]); // none falsely skipped
expect(created).to.deep.equal(['Webhook A', 'Webhook B', 'Webhook C']);
expect((importWebhooks as any).webhookUidMapper).to.deep.equal({
uidA: 'new-uidA',
uidB: 'new-uidB',
uidC: 'new-uidC',
});
});
});
});
4 changes: 2 additions & 2 deletions packages/contentstack-seed/package.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"name": "@contentstack/cli-cm-seed",
"description": "create a Stack from existing content types, entries, assets, etc.",
"version": "1.15.5",
"version": "1.15.6",
"author": "Contentstack",
"bugs": "https://github.com/contentstack/cli/issues",
"dependencies": {
"@contentstack/cli-cm-import": "~1.33.2",
"@contentstack/cli-cm-import": "~1.33.3",
"@contentstack/cli-command": "~1.8.3",
"@contentstack/cli-utilities": "~1.18.4",
"inquirer": "8.2.7",
Expand Down
Loading
Loading