Skip to content
Merged
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
8 changes: 8 additions & 0 deletions .github/workflows/release-production-plugins.yml
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,14 @@ jobs:
package: ./packages/contentstack-cli-tsgen/package.json
tag: latest

# External Migrate
- name: Publishing external-migrate (Production)
uses: JS-DevTools/npm-publish@v3
with:
token: ${{ secrets.NPM_TOKEN }}
package: ./packages/contentstack-external-migrate/package.json
tag: alpha

- name: Create Production Release
id: create_release
env:
Expand Down
94 changes: 1 addition & 93 deletions .talismanrc
Original file line number Diff line number Diff line change
@@ -1,96 +1,4 @@
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
checksum: 07642e8dd04d580185a459e5b088d8a1bb4e91be4e04f4842bf4fe4775205bf6
version: '1.0'
4 changes: 2 additions & 2 deletions packages/contentstack-apps-cli/src/util/common-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ function fetchAppInstallations(
flags: FlagInput,
orgUid: string,
options: MarketPlaceOptions
) {
): Promise<any> {
const { marketplaceSdk } = options;
const app: any = flags["app-uid"];
return marketplaceSdk
Expand Down Expand Up @@ -218,7 +218,7 @@ function uninstallApp(
orgUid: string,
options: MarketPlaceOptions,
installationUid: string
) {
): Promise<any> {
const { marketplaceSdk } = options;
// const app: any = flags["app-uid"];
return marketplaceSdk
Expand Down
2 changes: 1 addition & 1 deletion packages/contentstack-audit/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ $ npm install -g @contentstack/cli-audit
$ csdx COMMAND
running command...
$ csdx (--version|-v)
@contentstack/cli-audit/1.19.3 darwin-arm64 node-v24.14.0
@contentstack/cli-audit/1.19.4 darwin-arm64 node-v24.14.0
$ csdx --help [COMMAND]
USAGE
$ csdx COMMAND
Expand Down
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-branches/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ $ npm install -g @contentstack/cli-cm-branches
$ csdx COMMAND
running command...
$ csdx (--version)
@contentstack/cli-cm-branches/1.8.1 darwin-arm64 node-v24.14.0
@contentstack/cli-cm-branches/1.8.2 darwin-arm64 node-v24.14.0
$ csdx --help [COMMAND]
USAGE
$ csdx COMMAND
Expand Down
2 changes: 1 addition & 1 deletion packages/contentstack-bulk-publish/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ $ npm install -g @contentstack/cli-cm-bulk-publish
$ csdx COMMAND
running command...
$ csdx (--version)
@contentstack/cli-cm-bulk-publish/1.11.3 darwin-arm64 node-v24.14.0
@contentstack/cli-cm-bulk-publish/1.12.0 darwin-arm64 node-v24.14.0
$ csdx --help [COMMAND]
USAGE
$ csdx COMMAND
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-export/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ $ npm install -g @contentstack/cli-cm-export
$ csdx COMMAND
running command...
$ csdx (--version)
@contentstack/cli-cm-export/1.25.0 darwin-arm64 node-v24.14.0
@contentstack/cli-cm-export/1.25.1 darwin-arm64 node-v24.14.0
$ csdx --help [COMMAND]
USAGE
$ csdx COMMAND
Expand Down
18 changes: 18 additions & 0 deletions packages/contentstack-external-migrate/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
module.exports = {
parser: '@typescript-eslint/parser',
parserOptions: {
ecmaVersion: 2020,
sourceType: 'module',
},
plugins: ['@typescript-eslint'],
extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended'],
rules: {
'unicorn/prefer-module': 'off',
'unicorn/no-abusive-eslint-disable': 'off',
'@typescript-eslint/no-use-before-define': 'off',
'node/no-missing-import': 'off',
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-require-imports': 'off',
'no-useless-escape': 'off',
},
};
27 changes: 27 additions & 0 deletions packages/contentstack-external-migrate/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
node_modules/
/lib/
oclif.manifest.json
*.log
.DS_Store
coverage/

# Local migration outputs (may contain customer content)
migration-workspace/
contentstack-import/
audit-reports/
audit-fix/
audit-verify/
export.json
contentfulMigrationData/
_backup_*/
migration-manifest.json

# Import/audit session logs (local artifacts, may contain customer content)
logs/
session.json

# Internal scratch docs — never commit (PR drafts / status notes)
pr.md
achieve.md
out/
.vscode/
43 changes: 43 additions & 0 deletions packages/contentstack-external-migrate/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Agent guide — Contentstack Migrate plugin

Use this file when automating work in `cli-plugin-migrate/`.

## What this repo is

- **Package:** `@contentstack/cli-plugin-migrate`
- **Commands:** `csdx migrate:export|convert|audit|import|status`
- **Scope:** Contentful → Contentstack migration (expert CLI, no bundled AI)

## User-facing docs (read first)

| Doc | Use when |
|-----|----------|
| [README.md](./README.md) | Install, commands, troubleshooting |
| [docs/getting-started.md](./docs/getting-started.md) | Onboarding colleagues |
| [docs/expert-workflow.md](./docs/expert-workflow.md) | End-to-end pipeline |
| [docs/limitations-and-scope.md](./docs/limitations-and-scope.md) | What is / isn't supported |

## Maintainer docs

| Doc | Use when |
|-----|----------|
| [docs/architecture.md](./docs/architecture.md) | Package layout, adapters |
| [docs/implementation-principles.md](./docs/implementation-principles.md) | Port vs PRD flags, spawn rules |
| [docs/phases/](./docs/phases/) | Per-command implementation specs |

## Rules for changes

1. **Do not** add `--stack` to `migrate:convert` — import stays on `migrate:import`.
2. **Audit/import** → shell out via `src/lib/csdx-spawn.ts`, do not reimplement CMA.
3. **Export** → `src/lib/contentful-cli-spawn.ts` (global `contentful` or `npx -y contentful-cli`).
4. **Never log** management tokens or full stack API keys.
5. **Manifest** updates on successful command completion — see `src/lib/manifest.ts`.
6. Match flag names in [README.md](./README.md) and phase docs, not the old reference Commander CLI.

## Verify

```bash
npm run build && npm test
```

Reference port source (optional, parent monorepo): `../references/import-contentful-cli-main/`.
21 changes: 21 additions & 0 deletions packages/contentstack-external-migrate/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Changelog

All notable changes to `@contentstack/cli-plugin-migrate` are documented here.

## [0.1.0] — 2026-06-03

### Added

- `csdx migrate:export` — Contentful space export via Contentful CLI
- `csdx migrate:convert` — Contentful export → Contentstack import bundle
- `csdx migrate:audit` — wrapper for `csdx cm:stacks:audit`
- `csdx migrate:import` — wrapper for `csdx cm:stacks:import`
- `csdx migrate:status` — migration workspace manifest and next-step hints
- `migration-manifest.json` tracking (no secrets)
- Documentation set under `docs/` and root `README.md`

### Notes

- Contentful-only (`--legacy contentful`)
- Install via `csdx plugins:link .` after `npm run build`
- Import requires an empty destination stack and `csdx auth:login`
Loading
Loading