diff --git a/package-lock.json b/package-lock.json
index 9f83039711..a713d41083 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -7625,9 +7625,9 @@
}
},
"node_modules/electron-to-chromium": {
- "version": "1.5.107",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.107.tgz",
- "integrity": "sha512-dJr1o6yCntRkXElnhsHh1bAV19bo/hKyFf7tCcWgpXbuFIF0Lakjgqv5LRfSDaNzAII8Fnxg2tqgHkgCvxdbxw==",
+ "version": "1.5.109",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.109.tgz",
+ "integrity": "sha512-AidaH9JETVRr9DIPGfp1kAarm/W6hRJTPuCnkF+2MqhF4KaAgRIcBc8nvjk+YMXZhwfISof/7WG29eS4iGxQLQ==",
"license": "ISC"
},
"node_modules/elegant-spinner": {
@@ -26756,23 +26756,23 @@
},
"packages/contentstack": {
"name": "@contentstack/cli",
- "version": "1.35.4",
+ "version": "1.36.0",
"license": "MIT",
"dependencies": {
"@contentstack/cli-audit": "~1.7.5",
"@contentstack/cli-auth": "~1.3.24",
- "@contentstack/cli-cm-bootstrap": "~1.13.1",
- "@contentstack/cli-cm-branches": "~1.2.1",
+ "@contentstack/cli-cm-bootstrap": "~1.13.2",
+ "@contentstack/cli-cm-branches": "~1.3.0",
"@contentstack/cli-cm-bulk-publish": "~1.7.2",
- "@contentstack/cli-cm-clone": "~1.13.1",
- "@contentstack/cli-cm-export": "~1.14.2",
+ "@contentstack/cli-cm-clone": "~1.13.2",
+ "@contentstack/cli-cm-export": "~1.15.0",
"@contentstack/cli-cm-export-to-csv": "~1.7.3",
- "@contentstack/cli-cm-import": "~1.19.5",
- "@contentstack/cli-cm-import-setup": "1.0.1",
+ "@contentstack/cli-cm-import": "~1.20.0",
+ "@contentstack/cli-cm-import-setup": "1.1.0",
"@contentstack/cli-cm-migrate-rte": "~1.4.21",
- "@contentstack/cli-cm-seed": "~1.10.1",
+ "@contentstack/cli-cm-seed": "~1.10.2",
"@contentstack/cli-command": "~1.3.3",
- "@contentstack/cli-config": "~1.9.1",
+ "@contentstack/cli-config": "~1.10.0",
"@contentstack/cli-launch": "^1.5.1",
"@contentstack/cli-migration": "~1.6.5",
"@contentstack/cli-utilities": "~1.8.2",
@@ -27047,10 +27047,10 @@
},
"packages/contentstack-bootstrap": {
"name": "@contentstack/cli-cm-bootstrap",
- "version": "1.13.1",
+ "version": "1.13.2",
"license": "MIT",
"dependencies": {
- "@contentstack/cli-cm-seed": "~1.10.1",
+ "@contentstack/cli-cm-seed": "~1.10.2",
"@contentstack/cli-command": "~1.3.3",
"@contentstack/cli-utilities": "~1.8.2",
"inquirer": "8.2.6",
@@ -27127,7 +27127,7 @@
},
"packages/contentstack-branches": {
"name": "@contentstack/cli-cm-branches",
- "version": "1.2.1",
+ "version": "1.3.0",
"license": "MIT",
"dependencies": {
"@contentstack/cli-command": "~1.3.3",
@@ -27185,12 +27185,12 @@
},
"packages/contentstack-clone": {
"name": "@contentstack/cli-cm-clone",
- "version": "1.13.1",
+ "version": "1.13.2",
"license": "MIT",
"dependencies": {
"@colors/colors": "^1.6.0",
- "@contentstack/cli-cm-export": "~1.14.2",
- "@contentstack/cli-cm-import": "~1.19.5",
+ "@contentstack/cli-cm-export": "~1.15.0",
+ "@contentstack/cli-cm-import": "~1.20.0",
"@contentstack/cli-command": "~1.3.3",
"@contentstack/cli-utilities": "~1.8.2",
"chalk": "^4.1.2",
@@ -27362,7 +27362,7 @@
},
"packages/contentstack-config": {
"name": "@contentstack/cli-config",
- "version": "1.9.1",
+ "version": "1.10.0",
"license": "MIT",
"dependencies": {
"@contentstack/cli-command": "~1.3.3",
@@ -27670,7 +27670,7 @@
},
"packages/contentstack-export": {
"name": "@contentstack/cli-cm-export",
- "version": "1.14.2",
+ "version": "1.15.0",
"license": "MIT",
"dependencies": {
"@contentstack/cli-command": "~1.3.3",
@@ -27690,7 +27690,7 @@
},
"devDependencies": {
"@contentstack/cli-auth": "~1.3.24",
- "@contentstack/cli-config": "~1.9.1",
+ "@contentstack/cli-config": "~1.10.0",
"@contentstack/cli-dev-dependencies": "~1.2.4",
"@oclif/plugin-help": "^5.2.20",
"@oclif/test": "^4.1.6",
@@ -28022,7 +28022,7 @@
},
"packages/contentstack-import": {
"name": "@contentstack/cli-cm-import",
- "version": "1.19.5",
+ "version": "1.20.0",
"license": "MIT",
"dependencies": {
"@contentstack/cli-audit": "~1.7.5",
@@ -28069,7 +28069,7 @@
},
"packages/contentstack-import-setup": {
"name": "@contentstack/cli-cm-import-setup",
- "version": "1.0.1",
+ "version": "1.1.0",
"license": "MIT",
"dependencies": {
"@contentstack/cli-command": "~1.3.3",
@@ -28167,10 +28167,10 @@
},
"packages/contentstack-seed": {
"name": "@contentstack/cli-cm-seed",
- "version": "1.10.1",
+ "version": "1.10.2",
"license": "MIT",
"dependencies": {
- "@contentstack/cli-cm-import": "~1.19.5",
+ "@contentstack/cli-cm-import": "~1.20.0",
"@contentstack/cli-command": "~1.3.3",
"@contentstack/cli-utilities": "~1.8.2",
"@contentstack/management": "~1.18.4",
diff --git a/packages/contentstack-bootstrap/README.md b/packages/contentstack-bootstrap/README.md
index 7dd59f0985..4287876fb6 100644
--- a/packages/contentstack-bootstrap/README.md
+++ b/packages/contentstack-bootstrap/README.md
@@ -15,7 +15,7 @@ $ npm install -g @contentstack/cli-cm-bootstrap
$ csdx COMMAND
running command...
$ csdx (--version)
-@contentstack/cli-cm-bootstrap/1.13.1 darwin-arm64 node-v22.14.0
+@contentstack/cli-cm-bootstrap/1.13.2 darwin-x64 node-v22.14.0
$ csdx --help [COMMAND]
USAGE
$ csdx COMMAND
diff --git a/packages/contentstack-bootstrap/package.json b/packages/contentstack-bootstrap/package.json
index bab7665175..a525a2548f 100644
--- a/packages/contentstack-bootstrap/package.json
+++ b/packages/contentstack-bootstrap/package.json
@@ -1,7 +1,7 @@
{
"name": "@contentstack/cli-cm-bootstrap",
"description": "Bootstrap contentstack apps",
- "version": "1.13.1",
+ "version": "1.13.2",
"author": "Contentstack",
"bugs": "https://github.com/contentstack/cli/issues",
"scripts": {
@@ -17,7 +17,7 @@
"test:report": "nyc --reporter=lcov mocha \"test/**/*.test.js\""
},
"dependencies": {
- "@contentstack/cli-cm-seed": "~1.10.1",
+ "@contentstack/cli-cm-seed": "~1.10.2",
"@contentstack/cli-command": "~1.3.3",
"@contentstack/cli-utilities": "~1.8.2",
"inquirer": "8.2.6",
diff --git a/packages/contentstack-branches/README.md b/packages/contentstack-branches/README.md
index b9a5460d66..3da34db135 100755
--- a/packages/contentstack-branches/README.md
+++ b/packages/contentstack-branches/README.md
@@ -37,7 +37,7 @@ $ npm install -g @contentstack/cli-cm-branches
$ csdx COMMAND
running command...
$ csdx (--version)
-@contentstack/cli-cm-branches/1.2.1 darwin-arm64 node-v22.14.0
+@contentstack/cli-cm-branches/1.3.0 darwin-x64 node-v22.14.0
$ csdx --help [COMMAND]
USAGE
$ csdx COMMAND
diff --git a/packages/contentstack-branches/package.json b/packages/contentstack-branches/package.json
index 199536e70f..6b63888f43 100644
--- a/packages/contentstack-branches/package.json
+++ b/packages/contentstack-branches/package.json
@@ -1,7 +1,7 @@
{
"name": "@contentstack/cli-cm-branches",
"description": "Contentstack CLI plugin to do branches operations",
- "version": "1.2.1",
+ "version": "1.3.0",
"author": "Contentstack",
"bugs": "https://github.com/contentstack/cli/issues",
"dependencies": {
diff --git a/packages/contentstack-branches/src/utils/entry-create-script.ts b/packages/contentstack-branches/src/utils/entry-create-script.ts
index ca5d06038d..bfda436afc 100644
--- a/packages/contentstack-branches/src/utils/entry-create-script.ts
+++ b/packages/contentstack-branches/src/utils/entry-create-script.ts
@@ -44,7 +44,7 @@ export function entryCreateScript(contentType) {
function getValueByPath(obj, path) {
return path.split('[').reduce((o, key) => o && o[key.replace(/\]$/, '')], obj);
}
-
+
function updateValueByPath(obj, path, newValue) {
path.split('[').reduce((o, key, index, arr) => {
if (index === arr.length - 1) {
@@ -54,10 +54,10 @@ export function entryCreateScript(contentType) {
}
}, obj);
}
-
+
const findReference = function (schema, path, flag) {
let references = [];
-
+
for (const i in schema) {
const currentPath = path ? path + '[' + schema[i].uid : schema[i].uid;
if (schema[i].data_type === 'group' || schema[i].data_type === 'global_field') {
@@ -77,7 +77,7 @@ export function entryCreateScript(contentType) {
references.push(currentPath);
}
}
-
+
return references;
};
@@ -169,7 +169,7 @@ export function entryCreateScript(contentType) {
}
parent.pop();
}
-
+
function findAssetIdsFromHtmlRte(entryObj, ctSchema) {
const regex = /
{
if (element.type) {
@@ -297,7 +297,7 @@ export function entryCreateScript(contentType) {
}
});
}
-
+
const updateAssetDetailsInEntries = function (entry) {
let updatedEntry = Object.assign({},entry);
entry = updateFileFields(updatedEntry, entry, null)
@@ -310,7 +310,7 @@ export function entryCreateScript(contentType) {
entry = entry.replace(assetUrl, mappedAssetUrl);
}
});
-
+
assetUIDs.forEach(function (assetUid) {
let uid = assetUIDMapper[assetUid];
if (typeof uid !== 'undefined') {
@@ -335,11 +335,11 @@ export function entryCreateScript(contentType) {
parent[pos] = '';
}
};
-
+
if (parent.uid && assetUIDMapper[parent.uid]) {
parent.uid = assetUIDMapper[parent.uid];
}
-
+
if (
object &&
isObject(parent[pos]) &&
@@ -356,7 +356,7 @@ export function entryCreateScript(contentType) {
) {
parent = omit(parent, ['asset']);
}
-
+
if (object.uid && assetUIDMapper[object.uid]) {
object.uid = assetUIDMapper[object.uid];
}
@@ -373,12 +373,12 @@ export function entryCreateScript(contentType) {
} else if (isArray(object) && object.length) {
for (let i = 0; i <= object.length; i++){
updateFileFields(object[i], object, i);
- }
+ }
parent[pos] = compact(object);
}
return object;
}
-
+
const checkAndDownloadAsset = async function (cAsset) {
const assetUID = cAsset?.uid;
if (cAsset && assetUID) {
@@ -431,24 +431,24 @@ export function entryCreateScript(contentType) {
}
return cAsset;
};
-
+
const uploadAssets = async function () {
const assetFolderMap = JSON.parse(fs.readFileSync(path.resolve(filePath, 'folder-mapper.json'), 'utf8'));
const stackAPIClient = managementAPIClient.stack({ api_key: stackSDKInstance.api_key, branch_uid: branch });
for (let i = 0; i < downloadedAssets?.length; i++) {
const asset = downloadedAssets[i];
let requestOption = {};
-
+
requestOption.parent_uid = assetFolderMap[asset.parent_uid] || asset.parent_uid;
-
+
if (asset.hasOwnProperty('description') && typeof asset.description === 'string') {
requestOption.description = asset.description;
}
-
+
if (asset.hasOwnProperty('tags') && Array.isArray(asset.tags)) {
requestOption.tags = asset.tags;
}
-
+
if (asset.hasOwnProperty('title') && typeof asset.title === 'string') {
requestOption.title = asset.title;
}
@@ -464,7 +464,7 @@ export function entryCreateScript(contentType) {
assetUrlMapper[asset.url] = res && res.url;
}
};
-
+
function handleErrorMsg(err) {
if (err?.errorMessage) {
console.log(err.errorMessage);
@@ -479,14 +479,14 @@ export function entryCreateScript(contentType) {
limit,
include_count: true,
};
-
+
const entriesSearchResponse = await managementAPIClient
.stack({ api_key: stackSDKInstance.api_key, branch_uid: branchName })
.contentType(contentType)
.entry()
.query(requestObject)
.find();
-
+
if (entriesSearchResponse?.items?.length > 0) {
skip += limit || 100;
entries = [...entries, ...entriesSearchResponse.items];
@@ -507,12 +507,12 @@ export function entryCreateScript(contentType) {
task: async () => {
const compareBranchEntries = await getEntries(compareBranch, '${contentType}')
-
+
const compareFilteredProperties = compareBranchEntries.map((entry) => {
keysToRemove.map((key) => delete entry[key]);
return entry;
});
-
+
let contentType = await managementAPIClient
.stack({ api_key: stackSDKInstance.api_key, branch_uid: compareBranch })
.contentType('${contentType}')
@@ -553,7 +553,7 @@ export function entryCreateScript(contentType) {
for (let i in references) {
let compareEntryRef = getValueByPath(entryDetails, references[i]);
let baseEntryRef = getValueByPath(baseEntry, references[i]);
-
+
if (compareEntryRef && compareEntryRef.length > 0 && baseEntryRef && baseEntryRef.length >= 0) {
let compareRefEntry = await managementAPIClient
.stack({ api_key: stackSDKInstance.api_key, branch_uid: compareBranch })
@@ -565,7 +565,7 @@ export function entryCreateScript(contentType) {
.entry()
.query({ query: { title: compareRefEntry.title } })
.find();
-
+
if(baseRefEntry?.items?.length > 0 && baseRefEntry.items[0]?.uid){
updateValueByPath(entryDetails, references[i], baseRefEntry.items[0].uid);
}
diff --git a/packages/contentstack-branches/src/utils/entry-create-update-script.ts b/packages/contentstack-branches/src/utils/entry-create-update-script.ts
index 284024595e..a47fcdb9b1 100644
--- a/packages/contentstack-branches/src/utils/entry-create-update-script.ts
+++ b/packages/contentstack-branches/src/utils/entry-create-update-script.ts
@@ -30,7 +30,7 @@ export function entryCreateUpdateScript(contentType) {
'setWorkflowStage',
'import',
];
-
+
let compareBranch = config['compare-branch'];
let filePath = config['file-path'] || process.cwd();
let assetDirPath = path.resolve(filePath, 'assets');
@@ -41,7 +41,7 @@ export function entryCreateUpdateScript(contentType) {
let assetUrlMapper = {};
let assetRefPath = {};
let parent=[];
-
+
function converter(data) {
let arr = [];
for (const elm of data) {
@@ -50,23 +50,23 @@ export function entryCreateUpdateScript(contentType) {
}
return arr;
}
-
+
function deleteUnwantedKeysFromObject(obj, keysToRemove) {
if(obj){
keysToRemove.map((key) => delete obj[key]);
return obj;
}
}
-
+
function uniquelyConcatenateArrays(compareArr, baseArr) {
let uniqueArray = compareArr.concat(baseArr.filter((item) => compareArr.indexOf(item) < 0));
return uniqueArray;
}
-
+
function getValueByPath(obj, path) {
return path.split('[').reduce((o, key) => o && o[key.replace(/\]$/, '')], obj);
}
-
+
function updateValueByPath(obj, path, newValue) {
path.split('[').reduce((o, key, index, arr) => {
if (index === arr.length - 1) {
@@ -79,7 +79,7 @@ export function entryCreateUpdateScript(contentType) {
const findReference = function (schema, path, flag) {
let references = [];
-
+
for (const i in schema) {
const currentPath = path ? path + '[' + schema[i].uid : schema[i].uid;
if (schema[i].data_type === 'group' || schema[i].data_type === 'global_field') {
@@ -99,7 +99,7 @@ export function entryCreateUpdateScript(contentType) {
references.push(currentPath);
}
}
-
+
return references;
};
@@ -156,7 +156,7 @@ export function entryCreateUpdateScript(contentType) {
}
}
};
-
+
function fetchAssetFromFileFields (parent, schema, entry) {
parent.push(schema.uid);
let updatedEntry = entry;
@@ -202,7 +202,7 @@ export function entryCreateUpdateScript(contentType) {
assetDetails.push({uid: match[1]});
}
}
-
+
function findFileUrls(schema, _entry) {
let markdownRegEx;
let markdownMatch;
@@ -214,7 +214,7 @@ export function entryCreateUpdateScript(contentType) {
text = JSON.stringify(_entry);
}
markdownRegEx = new RegExp(
- '(https://(assets|(eu-|azure-na-|azure-eu-|gcp-na-)?images).contentstack.(io|com)/v3/assets/(.*?)/(.*?)/(.*?)/(.*?)(?="))',
+ '(https://(assets|(eu-|azure-na-|azure-eu-|gcp-na-|gcp-eu-)?images).contentstack.(io|com)/v3/assets/(.*?)/(.*?)/(.*?)/(.*?)(?="))',
'g',
);
while ((markdownMatch = markdownRegEx.exec(text)) !== null) {
@@ -230,7 +230,7 @@ export function entryCreateUpdateScript(contentType) {
}
}
}
-
+
function findAssetIdsFromJsonRte(entryObj, ctSchema) {
if(ctSchema !== undefined){
for (const element of ctSchema) {
@@ -276,7 +276,7 @@ export function entryCreateUpdateScript(contentType) {
}
}
}
-
+
function gatherJsonRteAssetIds(jsonRteData) {
jsonRteData.children.forEach((element) => {
if (element.type) {
@@ -320,7 +320,7 @@ export function entryCreateUpdateScript(contentType) {
}
});
}
-
+
const updateAssetDetailsInEntries = function (entry) {
let updatedEntry = Object.assign({},entry);
entry = updateFileFields(updatedEntry, entry, null)
@@ -333,7 +333,7 @@ export function entryCreateUpdateScript(contentType) {
entry = entry.replace(assetUrl, mappedAssetUrl);
}
});
-
+
assetUIDs.forEach(function (assetUid) {
let uid = assetUIDMapper[assetUid];
if (typeof uid !== 'undefined') {
@@ -358,11 +358,11 @@ export function entryCreateUpdateScript(contentType) {
parent[pos] = '';
}
};
-
+
if (parent.uid && assetUIDMapper[parent.uid]) {
parent.uid = assetUIDMapper[parent.uid];
}
-
+
if (
object &&
isObject(parent[pos]) &&
@@ -379,7 +379,7 @@ export function entryCreateUpdateScript(contentType) {
) {
parent = omit(parent, ['asset']);
}
-
+
if (object.uid && assetUIDMapper[object.uid]) {
object.uid = assetUIDMapper[object.uid];
}
@@ -396,12 +396,12 @@ export function entryCreateUpdateScript(contentType) {
} else if (isArray(object) && object.length) {
for (let i = 0; i <= object.length; i++){
updateFileFields(object[i], object, i);
- }
+ }
parent[pos] = compact(object);
}
return object;
}
-
+
const checkAndDownloadAsset = async function (cAsset) {
if (cAsset) {
const assetUID = cAsset.uid;
@@ -454,24 +454,24 @@ export function entryCreateUpdateScript(contentType) {
}
return cAsset;
};
-
+
const uploadAssets = async function () {
const assetFolderMap = JSON.parse(fs.readFileSync(path.resolve(filePath, 'folder-mapper.json'), 'utf8'));
const stackAPIClient = managementAPIClient.stack({ api_key: stackSDKInstance.api_key, branch_uid: branch });
for (let i = 0; i < downloadedAssets?.length; i++) {
const asset = downloadedAssets[i];
let requestOption = {};
-
+
requestOption.parent_uid = assetFolderMap[asset.parent_uid] || asset.parent_uid;
-
+
if (asset.hasOwnProperty('description') && typeof asset.description === 'string') {
requestOption.description = asset.description;
}
-
+
if (asset.hasOwnProperty('tags') && Array.isArray(asset.tags)) {
requestOption.tags = asset.tags;
}
-
+
if (asset.hasOwnProperty('title') && typeof asset.title === 'string') {
requestOption.title = asset.title;
}
@@ -494,14 +494,14 @@ export function entryCreateUpdateScript(contentType) {
limit,
include_count: true,
};
-
+
const entriesSearchResponse = await managementAPIClient
.stack({ api_key: stackSDKInstance.api_key, branch_uid: branchName })
.contentType(contentType)
.entry()
.query(requestObject)
.find();
-
+
if (entriesSearchResponse?.items?.length > 0) {
skip += limit || 100;
entries = [...entries, ...entriesSearchResponse.items];
@@ -520,14 +520,14 @@ export function entryCreateUpdateScript(contentType) {
failedMessage: 'Failed to update entries',
task: async () => {
let compareBranchEntries = await getEntries(compareBranch, '${contentType}')
-
+
let baseBranchEntries = await getEntries(branch, '${contentType}');
-
+
let contentType = await managementAPIClient
.stack({ api_key: stackSDKInstance.api_key, branch_uid: compareBranch })
.contentType('${contentType}')
.fetch();
-
+
for (let i = 0; i < compareBranchEntries?.length; i++) {
assetRefPath[compareBranchEntries[i].uid] = []
findAssets(contentType.schema, compareBranchEntries[i], assetRefPath[compareBranchEntries[i].uid]);
@@ -554,13 +554,13 @@ export function entryCreateUpdateScript(contentType) {
}
if (downloadedAssets?.length) await uploadAssets();
}
-
+
let flag = {
references: false
};
-
+
const references = await findReference(contentType.schema, '', flag);
-
+
async function updateEntry(entry, entryDetails) {
if (entry) {
Object.assign(entry, { ...entryDetails });
@@ -572,7 +572,7 @@ export function entryCreateUpdateScript(contentType) {
for (let i in references) {
let compareEntryRef = getValueByPath(entryDetails, references[i]);
let baseEntryRef = getValueByPath(baseEntry, references[i]);
-
+
if (compareEntryRef && compareEntryRef.length > 0 && baseEntryRef && baseEntryRef.length >= 0) {
let compareRefEntry = await managementAPIClient
.stack({ api_key: stackSDKInstance.api_key, branch_uid: compareBranch })
@@ -584,7 +584,7 @@ export function entryCreateUpdateScript(contentType) {
.entry()
.query({ query: { title: compareRefEntry.title } })
.find();
-
+
if(baseRefEntry?.items?.length > 0 && baseRefEntry.items[0]?.uid){
updateValueByPath(entryDetails, references[i], baseRefEntry.items[0].uid);
}
@@ -598,23 +598,23 @@ export function entryCreateUpdateScript(contentType) {
let entryDetails = deleteUnwantedKeysFromObject(el, keysToRemove);
if(entryDetails !== undefined){
entryDetails = updateAssetDetailsInEntries(entryDetails);
-
+
if (baseBranchEntries && baseBranchEntries.length) {
let baseEntryUid = baseBranchEntries[0].uid;
let entry = await stackSDKInstance.contentType('${contentType}').entry(baseEntryUid);
-
+
if (flag.references) {
await updateReferences(entryDetails, baseBranchEntries[0], references);
}
-
+
await updateEntry(entry, entryDetails);
} else {
let createdEntry = await stackSDKInstance.contentType('${contentType}').entry().create({ entry: entryDetails });
-
+
if (flag.references) {
await updateReferences(entryDetails, createdEntry, references);
}
-
+
await updateEntry(createdEntry, entryDetails);
}
}
@@ -627,7 +627,7 @@ export function entryCreateUpdateScript(contentType) {
//TODO: Need to discuss this approach and replace it with uid condition
let arr = uniquelyConcatenateArrays(Array.from(compareMap.keys()), Array.from(baseMap.keys()));
- // Change
+ // Change
for(let i = 0; i < arr.length ; i++){
let entryDetails = deleteUnwantedKeysFromObject(compareMap.get(arr[i]), keysToRemove);
//NOTE: In the compare branch, entry must exist. Condition of deleted entry not handled
@@ -642,17 +642,17 @@ export function entryCreateUpdateScript(contentType) {
if(createdEntry){
if (flag.references) {
await updateReferences(entryDetails, createdEntry, references);
- }
+ }
await updateEntry(createdEntry, entryDetails);
}
} else if (compareMap.get(arr[i]) && baseMap.get(arr[i])) {
let baseEntry = baseMap.get(arr[i]);
let entry = await stackSDKInstance.contentType('${contentType}').entry(baseEntry.uid);
-
+
if (flag.references) {
await updateReferences(entryDetails, baseEntry, references);
}
-
+
await updateEntry(entry, entryDetails);
}
}
@@ -664,7 +664,7 @@ export function entryCreateUpdateScript(contentType) {
},
};
};
-
+
if (compareBranch && branch.length !== 0 && apiKey.length !== 0) {
migration.addTask(updateEntryTask());
} else {
diff --git a/packages/contentstack-branches/src/utils/entry-update-script.ts b/packages/contentstack-branches/src/utils/entry-update-script.ts
index d5fac3dc13..88ea7eb77c 100644
--- a/packages/contentstack-branches/src/utils/entry-update-script.ts
+++ b/packages/contentstack-branches/src/utils/entry-update-script.ts
@@ -30,7 +30,7 @@ export function entryUpdateScript(contentType) {
'setWorkflowStage',
'import',
];
-
+
let compareBranch = config['compare-branch'];
let filePath = config['file-path'] || process.cwd();
let assetDirPath = path.resolve(filePath, 'assets');
@@ -41,7 +41,7 @@ export function entryUpdateScript(contentType) {
let assetUrlMapper = {};
let assetRefPath = {};
let parent=[];
-
+
function converter(data) {
let arr = [];
for (const elm of data) {
@@ -50,23 +50,23 @@ export function entryUpdateScript(contentType) {
}
return arr;
}
-
+
function deleteUnwantedKeysFromObject(obj, keysToRemove) {
if(obj){
keysToRemove.map((key) => delete obj[key]);
return obj;
}
}
-
+
function uniquelyConcatenateArrays(compareArr, baseArr) {
let uniqueArray = compareArr.concat(baseArr.filter((item) => compareArr.indexOf(item) < 0));
return uniqueArray;
}
-
+
function getValueByPath(obj, path) {
return path.split('[').reduce((o, key) => o && o[key.replace(/\]$/, '')], obj);
}
-
+
function updateValueByPath(obj, path, newValue) {
path.split('[').reduce((o, key, index, arr) => {
if (index === arr.length - 1) {
@@ -79,7 +79,7 @@ export function entryUpdateScript(contentType) {
const findReference = function (schema, path, flag) {
let references = [];
-
+
for (const i in schema) {
const currentPath = path ? path + '[' + schema[i].uid : schema[i].uid;
if (schema[i].data_type === 'group' || schema[i].data_type === 'global_field') {
@@ -99,7 +99,7 @@ export function entryUpdateScript(contentType) {
references.push(currentPath);
}
}
-
+
return references;
};
@@ -191,7 +191,7 @@ export function entryUpdateScript(contentType) {
}
parent.pop();
}
-
+
function findAssetIdsFromHtmlRte(entryObj, ctSchema) {
const regex = /
{
if (element.type) {
@@ -319,7 +319,7 @@ export function entryUpdateScript(contentType) {
}
});
}
-
+
const updateAssetDetailsInEntries = function (entry) {
let updatedEntry = Object.assign({},entry);
entry = updateFileFields(updatedEntry, entry, null)
@@ -332,7 +332,7 @@ export function entryUpdateScript(contentType) {
entry = entry.replace(assetUrl, mappedAssetUrl);
}
});
-
+
assetUIDs.forEach(function (assetUid) {
let uid = assetUIDMapper[assetUid];
if (typeof uid !== 'undefined') {
@@ -357,11 +357,11 @@ export function entryUpdateScript(contentType) {
parent[pos] = '';
}
};
-
+
if (parent.uid && assetUIDMapper[parent.uid]) {
parent.uid = assetUIDMapper[parent.uid];
}
-
+
if (
object &&
isObject(parent[pos]) &&
@@ -378,7 +378,7 @@ export function entryUpdateScript(contentType) {
) {
parent = omit(parent, ['asset']);
}
-
+
if (object.uid && assetUIDMapper[object.uid]) {
object.uid = assetUIDMapper[object.uid];
}
@@ -395,12 +395,12 @@ export function entryUpdateScript(contentType) {
} else if (isArray(object) && object.length) {
for (let i = 0; i <= object.length; i++){
updateFileFields(object[i], object, i);
- }
+ }
parent[pos] = compact(object);
}
return object;
}
-
+
const checkAndDownloadAsset = async function (cAsset) {
if (cAsset) {
const assetUID = cAsset.uid;
@@ -453,24 +453,24 @@ export function entryUpdateScript(contentType) {
}
return cAsset;
};
-
+
const uploadAssets = async function () {
const assetFolderMap = JSON.parse(fs.readFileSync(path.resolve(filePath, 'folder-mapper.json'), 'utf8'));
const stackAPIClient = managementAPIClient.stack({ api_key: stackSDKInstance.api_key, branch_uid: branch });
for (let i = 0; i < downloadedAssets?.length; i++) {
const asset = downloadedAssets[i];
let requestOption = {};
-
+
requestOption.parent_uid = assetFolderMap[asset.parent_uid] || asset.parent_uid;
-
+
if (asset.hasOwnProperty('description') && typeof asset.description === 'string') {
requestOption.description = asset.description;
}
-
+
if (asset.hasOwnProperty('tags') && Array.isArray(asset.tags)) {
requestOption.tags = asset.tags;
}
-
+
if (asset.hasOwnProperty('title') && typeof asset.title === 'string') {
requestOption.title = asset.title;
}
@@ -493,14 +493,14 @@ export function entryUpdateScript(contentType) {
limit,
include_count: true,
};
-
+
const entriesSearchResponse = await managementAPIClient
.stack({ api_key: stackSDKInstance.api_key, branch_uid: branchName })
.contentType(contentType)
.entry()
.query(requestObject)
.find();
-
+
if (entriesSearchResponse?.items?.length > 0) {
skip += limit || 100;
entries = [...entries, ...entriesSearchResponse.items];
@@ -511,18 +511,18 @@ export function entryUpdateScript(contentType) {
}
return entries;
};
-
+
const updateEntryTask = () => {
return {
title: 'Update Entries',
successMessage: 'Entries Updated Successfully',
failedMessage: 'Failed to update entries',
task: async () => {
-
+
let compareBranchEntries = await getEntries(compareBranch, '${contentType}');
-
+
let baseBranchEntries = await getEntries(branch, '${contentType}');
-
+
let contentType = await managementAPIClient
.stack({ api_key: stackSDKInstance.api_key, branch_uid: compareBranch })
.contentType('${contentType}')
@@ -558,9 +558,9 @@ export function entryUpdateScript(contentType) {
let flag = {
references: false
};
-
+
const references = await findReference(contentType.schema, '', flag);
-
+
async function updateEntry(entry, entryDetails) {
Object.assign(entry, { ...entryDetails });
await entry.update();
@@ -570,7 +570,7 @@ export function entryUpdateScript(contentType) {
for (let i in references) {
let compareEntryRef = getValueByPath(entryDetails, references[i]);
let baseEntryRef = getValueByPath(baseEntry, references[i]);
-
+
if (compareEntryRef && compareEntryRef.length > 0 && baseEntryRef && baseEntryRef.length >= 0) {
let compareRefEntry = await managementAPIClient
.stack({ api_key: stackSDKInstance.api_key, branch_uid: compareBranch })
@@ -582,7 +582,7 @@ export function entryUpdateScript(contentType) {
.entry()
.query({ query: { title: compareRefEntry.title } })
.find();
-
+
if(baseRefEntry?.items?.length > 0 && baseRefEntry.items[0]?.uid){
updateValueByPath(entryDetails, references[i], baseRefEntry.items[0].uid);
}
@@ -599,19 +599,19 @@ export function entryUpdateScript(contentType) {
if (baseBranchEntries && baseBranchEntries.length) {
let baseEntryUid = baseBranchEntries[0].uid;
let entry = await stackSDKInstance.contentType('${contentType}').entry(baseEntryUid);
-
+
if (flag.references) {
await updateReferences(entryDetails, baseBranchEntries[0], references);
}
-
+
await updateEntry(entry, entryDetails);
} else {
let createdEntry = await stackSDKInstance.contentType('${contentType}').entry().create({ entry: entryDetails });
-
+
if (flag.references) {
await updateReferences(entryDetails, createdEntry, references);
}
-
+
await updateEntry(createdEntry, entryDetails);
}
}
@@ -623,7 +623,7 @@ export function entryUpdateScript(contentType) {
//NOTE: Filter distinct entries from the base and compare branches according to their titles.
//TODO: Need to discuss this approach and replace it with uid approach
let arr = uniquelyConcatenateArrays(Array.from(compareMap.keys()), Array.from(baseMap.keys()));
-
+
arr.map(async (el) => {
let entryDetails = deleteUnwantedKeysFromObject(compareMap.get(el), keysToRemove);
//NOTE: In the compare branch, entry must exist. Condition of deleted entry not handled
@@ -634,22 +634,22 @@ export function entryUpdateScript(contentType) {
.contentType('${contentType}')
.entry()
.create({ entry: entryDetails })
-
+
if(createdEntry){
if (flag.references) {
await updateReferences(entryDetails, createdEntry, references);
}
-
+
await updateEntry(createdEntry, entryDetails);
}
} else if (compareMap.get(el) && baseMap.get(el)) {
let baseEntry = baseMap.get(el);
let entry = await stackSDKInstance.contentType('${contentType}').entry(baseEntry.uid);
-
+
if (flag.references) {
await updateReferences(entryDetails, baseEntry, references);
}
-
+
await updateEntry(entry, entryDetails);
}
}
@@ -661,7 +661,7 @@ export function entryUpdateScript(contentType) {
},
};
};
-
+
if (compareBranch && branch.length !== 0 && apiKey.length !== 0) {
migration.addTask(updateEntryTask());
} else {
diff --git a/packages/contentstack-clone/README.md b/packages/contentstack-clone/README.md
index d7f671a178..686896ee40 100644
--- a/packages/contentstack-clone/README.md
+++ b/packages/contentstack-clone/README.md
@@ -16,7 +16,7 @@ $ npm install -g @contentstack/cli-cm-clone
$ csdx COMMAND
running command...
$ csdx (--version)
-@contentstack/cli-cm-clone/1.13.1 darwin-arm64 node-v22.14.0
+@contentstack/cli-cm-clone/1.13.2 darwin-x64 node-v22.14.0
$ csdx --help [COMMAND]
USAGE
$ csdx COMMAND
diff --git a/packages/contentstack-clone/package.json b/packages/contentstack-clone/package.json
index a9eabd3cdf..8c532ffa53 100644
--- a/packages/contentstack-clone/package.json
+++ b/packages/contentstack-clone/package.json
@@ -1,13 +1,13 @@
{
"name": "@contentstack/cli-cm-clone",
"description": "Contentstack stack clone plugin",
- "version": "1.13.1",
+ "version": "1.13.2",
"author": "Contentstack",
"bugs": "https://github.com/rohitmishra209/cli-cm-clone/issues",
"dependencies": {
"@colors/colors": "^1.6.0",
- "@contentstack/cli-cm-export": "~1.14.2",
- "@contentstack/cli-cm-import": "~1.19.5",
+ "@contentstack/cli-cm-export": "~1.15.0",
+ "@contentstack/cli-cm-import": "~1.20.0",
"@contentstack/cli-command": "~1.3.3",
"@contentstack/cli-utilities": "~1.8.2",
"chalk": "^4.1.2",
diff --git a/packages/contentstack-config/README.md b/packages/contentstack-config/README.md
index ca11a8962c..3198786fef 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/1.9.1 darwin-arm64 node-v22.14.0
+@contentstack/cli-config/1.10.0 darwin-x64 node-v22.14.0
$ csdx --help [COMMAND]
USAGE
$ csdx COMMAND
@@ -368,6 +368,8 @@ EXAMPLES
$ csdx config:set:region GCP-NA
+ $ csdx config:set:region GCP-EU
+
$ csdx config:set:region --cma --cda --ui-host --name "India"
$ csdx config:set:region --cma --cda --ui-host --name "India" --developer-hub
diff --git a/packages/contentstack-config/package.json b/packages/contentstack-config/package.json
index 56232b8332..48f9bb9fb8 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.9.1",
+ "version": "1.10.0",
"author": "Contentstack",
"scripts": {
"build": "npm run clean && npm run compile",
diff --git a/packages/contentstack-config/src/commands/config/set/region.ts b/packages/contentstack-config/src/commands/config/set/region.ts
index 3e2ae47684..bd478dbd2a 100644
--- a/packages/contentstack-config/src/commands/config/set/region.ts
+++ b/packages/contentstack-config/src/commands/config/set/region.ts
@@ -42,10 +42,10 @@ export default class RegionSetCommand extends BaseCommand --cda --ui-host --name "India"',
'$ csdx config:set:region --cma --cda --ui-host --name "India" --developer-hub ',
'$ csdx config:set:region --cma --cda --ui-host --name "India" --personalize ',
'$ csdx config:set:region --cma --cda --ui-host --name "India" --launch ',
- '$ csdx config:set:region --cda --cma --ui-host --name "India" --developer-hub --launch --personalize ',
+ '$ csdx config:set:region --cda --cma --ui-host --name "India" --developer-hub --launch --personalize ',
];
static args: ArgInput = {
@@ -117,7 +118,7 @@ export default class RegionSetCommand extends BaseCommand => {
{ name: 'AZURE-NA', value: 'AZURE-NA' },
{ name: 'AZURE-EU', value: 'AZURE-EU' },
{ name: 'GCP-NA', value: 'GCP-NA' },
+ { name: 'GCP-EU', value: 'GCP-EU' },
{ name: 'Custom', value: 'custom' },
{ name: 'exit', value: 'exit' },
],
diff --git a/packages/contentstack-config/src/utils/region-handler.ts b/packages/contentstack-config/src/utils/region-handler.ts
index 58ff346d1c..b1d4b167bc 100644
--- a/packages/contentstack-config/src/utils/region-handler.ts
+++ b/packages/contentstack-config/src/utils/region-handler.ts
@@ -3,12 +3,12 @@ import { configHandler } from '@contentstack/cli-utilities';
function validURL(str) {
const pattern = new RegExp(
'^(https?:\\/\\/)?' + // protocol (http or https)
- '([a-zA-Z0-9.-]+|' + // domain name
- '((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))' + // IP address
- '(:\\d+)?' + // port
- '(/[-a-zA-Z0-9_.~+-]*)*' + // path
- '(\\?[;&a-zA-Z0-9_.~+=-]*)?' + // query string
- '(\\#[-a-zA-Z0-9_]*)?$', // fragment
+ '([a-zA-Z0-9.-]+|' + // domain name
+ '((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))' + // IP address
+ '(:\\d+)?' + // port
+ '(/[-a-zA-Z0-9_.~+-]*)*' + // path
+ '(\\?[;&a-zA-Z0-9_.~+=-]*)?' + // query string
+ '(\\#[-a-zA-Z0-9_]*)?$', // fragment
'i',
);
@@ -18,49 +18,58 @@ function validURL(str) {
// Available region list
const regions = {
NA: {
+ name: 'NA',
cma: 'https://api.contentstack.io',
cda: 'https://cdn.contentstack.io',
uiHost: 'https://app.contentstack.com',
- name: 'NA',
- 'developerHubUrl': 'https://developerhub-api.contentstack.com',
- 'launchHubUrl': 'https://launch-api.contentstack.com',
- 'personalizeUrl': 'https://personalize-api.contentstack.com',
+ developerHubUrl: 'https://developerhub-api.contentstack.com',
+ launchHubUrl: 'https://launch-api.contentstack.com',
+ personalizeUrl: 'https://personalize-api.contentstack.com',
},
EU: {
+ name: 'EU',
cma: 'https://eu-api.contentstack.com',
cda: 'https://eu-cdn.contentstack.com',
uiHost: 'https://eu-app.contentstack.com',
- name: 'EU',
- 'developerHubUrl': 'https://eu-developerhub-api.contentstack.com',
- 'launchHubUrl': 'https://eu-launch-api.contentstack.com',
- 'personalizeUrl': 'https://eu-personalize-api.contentstack.com',
+ developerHubUrl: 'https://eu-developerhub-api.contentstack.com',
+ launchHubUrl: 'https://eu-launch-api.contentstack.com',
+ personalizeUrl: 'https://eu-personalize-api.contentstack.com',
},
'AZURE-NA': {
+ name: 'AZURE-NA',
cma: 'https://azure-na-api.contentstack.com',
cda: 'https://azure-na-cdn.contentstack.com',
uiHost: 'https://azure-na-app.contentstack.com',
- name: 'AZURE-NA',
- 'developerHubUrl': 'https://azure-na-developerhub-api.contentstack.com',
- 'launchHubUrl': 'https://azure-na-launch-api.contentstack.com',
- 'personalizeUrl': 'https://azure-na-personalize-api.contentstack.com',
+ developerHubUrl: 'https://azure-na-developerhub-api.contentstack.com',
+ launchHubUrl: 'https://azure-na-launch-api.contentstack.com',
+ personalizeUrl: 'https://azure-na-personalize-api.contentstack.com',
},
'AZURE-EU': {
+ name: 'AZURE-EU',
cma: 'https://azure-eu-api.contentstack.com',
cda: 'https://azure-eu-cdn.contentstack.com',
uiHost: 'https://azure-eu-app.contentstack.com',
- name: 'AZURE-EU',
- 'developerHubUrl': 'https://azure-eu-developerhub-api.contentstack.com',
- 'launchHubUrl': 'https://azure-eu-launch-api.contentstack.com',
- 'personalizeUrl': 'https://azure-eu-personalize-api.contentstack.com',
+ developerHubUrl: 'https://azure-eu-developerhub-api.contentstack.com',
+ launchHubUrl: 'https://azure-eu-launch-api.contentstack.com',
+ personalizeUrl: 'https://azure-eu-personalize-api.contentstack.com',
},
'GCP-NA': {
+ name: 'GCP-NA',
cma: 'https://gcp-na-api.contentstack.com',
cda: 'https://gcp-na-cdn.contentstack.com',
uiHost: 'https://gcp-na-app.contentstack.com',
- name: 'GCP-NA',
- 'developerHubUrl': 'https://gcp-na-developerhub-api.contentstack.com',
- 'launchHubUrl': 'https://gcp-na-launch-api.contentstack.com',
- 'personalizeUrl': 'https://gcp-na-personalize-api.contentstack.com',
+ developerHubUrl: 'https://gcp-na-developerhub-api.contentstack.com',
+ launchHubUrl: 'https://gcp-na-launch-api.contentstack.com',
+ personalizeUrl: 'https://gcp-na-personalize-api.contentstack.com',
+ },
+ 'GCP-EU': {
+ name: 'GCP-EU',
+ cma: 'https://gcp-eu-api.contentstack.com',
+ cda: 'https://gcp-eu-cdn.contentstack.com',
+ uiHost: 'https://gcp-eu-app.contentstack.com',
+ developerHubUrl: 'https://gcp-eu-developerhub-api.contentstack.com',
+ launchHubUrl: 'https://gcp-eu-launch-api.contentstack.com',
+ personalizeUrl: 'https://gcp-eu-personalize-api.contentstack.com',
},
};
diff --git a/packages/contentstack-export/README.md b/packages/contentstack-export/README.md
index 1c8fd668e0..6063bf8919 100755
--- a/packages/contentstack-export/README.md
+++ b/packages/contentstack-export/README.md
@@ -48,7 +48,7 @@ $ npm install -g @contentstack/cli-cm-export
$ csdx COMMAND
running command...
$ csdx (--version)
-@contentstack/cli-cm-export/1.14.2 darwin-arm64 node-v22.14.0
+@contentstack/cli-cm-export/1.15.0 darwin-x64 node-v22.14.0
$ csdx --help [COMMAND]
USAGE
$ csdx COMMAND
diff --git a/packages/contentstack-export/package.json b/packages/contentstack-export/package.json
index b4387ab87c..33b3ec6409 100644
--- a/packages/contentstack-export/package.json
+++ b/packages/contentstack-export/package.json
@@ -1,7 +1,7 @@
{
"name": "@contentstack/cli-cm-export",
"description": "Contentstack CLI plugin to export content from stack",
- "version": "1.14.2",
+ "version": "1.15.0",
"author": "Contentstack",
"bugs": "https://github.com/contentstack/cli/issues",
"dependencies": {
@@ -22,7 +22,7 @@
},
"devDependencies": {
"@contentstack/cli-auth": "~1.3.24",
- "@contentstack/cli-config": "~1.9.1",
+ "@contentstack/cli-config": "~1.10.0",
"@contentstack/cli-dev-dependencies": "~1.2.4",
"@oclif/plugin-help": "^5.2.20",
"@oclif/test": "^4.1.6",
diff --git a/packages/contentstack-export/src/config/index.ts b/packages/contentstack-export/src/config/index.ts
index e83d09215f..4d3de25571 100644
--- a/packages/contentstack-export/src/config/index.ts
+++ b/packages/contentstack-export/src/config/index.ts
@@ -11,6 +11,7 @@ const config: DefaultConfig = {
'https://azure-na-api.contentstack.com': 'https://azure-na-developerhub-api.contentstack.com',
'https://azure-eu-api.contentstack.com': 'https://azure-eu-developerhub-api.contentstack.com',
'https://gcp-na-api.contentstack.com': 'https://gcp-na-developerhub-api.contentstack.com',
+ 'https://gcp-eu-api.contentstack.com': 'https://gcp-eu-developerhub-api.contentstack.com',
},
// use below hosts for eu region
// host:'https://eu-api.contentstack.com/v3',
@@ -20,6 +21,8 @@ const config: DefaultConfig = {
// host:'https://azure-eu-api.contentstack.com/v3',
// use below hosts for gcp-na region
// host: 'https://gcp-na-api.contentstack.com'
+ // use below hosts for gcp-eu region
+ // host: 'https://gcp-eu-api.contentstack.com'
modules: {
types: [
'stack',
diff --git a/packages/contentstack-export/src/types/default-config.ts b/packages/contentstack-export/src/types/default-config.ts
index eb6c5c0474..a2f7fd8701 100644
--- a/packages/contentstack-export/src/types/default-config.ts
+++ b/packages/contentstack-export/src/types/default-config.ts
@@ -16,6 +16,8 @@ export default interface DefaultConfig {
// host:'https://azure-na-api.contentstack.com/v3',
// use below hosts for gcp-na region
// host: 'https://gcp-na-api.contentstack.com'
+ // use below hosts for gcp-eu region
+ // host: 'https://gcp-eu-api.contentstack.com'
modules: {
types: Modules[];
locales: {
diff --git a/packages/contentstack-import-setup/README.md b/packages/contentstack-import-setup/README.md
index 93a6e6023d..ceecf39bbe 100644
--- a/packages/contentstack-import-setup/README.md
+++ b/packages/contentstack-import-setup/README.md
@@ -47,7 +47,7 @@ $ npm install -g @contentstack/cli-cm-import-setup
$ csdx COMMAND
running command...
$ csdx (--version)
-@contentstack/cli-cm-import-setup/1.0.1 darwin-arm64 node-v22.14.0
+@contentstack/cli-cm-import-setup/1.1.0 darwin-x64 node-v22.14.0
$ csdx --help [COMMAND]
USAGE
$ csdx COMMAND
diff --git a/packages/contentstack-import-setup/package.json b/packages/contentstack-import-setup/package.json
index 5ab1cfd801..1dc92a974d 100644
--- a/packages/contentstack-import-setup/package.json
+++ b/packages/contentstack-import-setup/package.json
@@ -1,7 +1,7 @@
{
"name": "@contentstack/cli-cm-import-setup",
"description": "Contentstack CLI plugin to setup the mappers and configurations for the import command",
- "version": "1.0.1",
+ "version": "1.1.0",
"author": "Contentstack",
"bugs": "https://github.com/contentstack/cli/issues",
"dependencies": {
diff --git a/packages/contentstack-import-setup/src/config/index.ts b/packages/contentstack-import-setup/src/config/index.ts
index 7dc87c9022..d72f8bd230 100644
--- a/packages/contentstack-import-setup/src/config/index.ts
+++ b/packages/contentstack-import-setup/src/config/index.ts
@@ -10,6 +10,8 @@ const config: DefaultConfig = {
// host:'https://azure-eu-api.contentstack.com/v3',
// use below hosts for gcp-na region
// host:'https://gcp-na-api.contentstack.com',
+ // use below hosts for gcp-eu region
+ // host:'https://gcp-eu-api.contentstack.com',
// pass locale, only to migrate entries from that locale
// not passing `locale` will migrate all the locales present
// locales: ['fr-fr'],
diff --git a/packages/contentstack-import/README.md b/packages/contentstack-import/README.md
index 04802faceb..6e48d0b38c 100644
--- a/packages/contentstack-import/README.md
+++ b/packages/contentstack-import/README.md
@@ -47,7 +47,7 @@ $ npm install -g @contentstack/cli-cm-import
$ csdx COMMAND
running command...
$ csdx (--version)
-@contentstack/cli-cm-import/1.19.5 darwin-arm64 node-v22.14.0
+@contentstack/cli-cm-import/1.20.0 darwin-x64 node-v22.14.0
$ csdx --help [COMMAND]
USAGE
$ csdx COMMAND
diff --git a/packages/contentstack-import/package.json b/packages/contentstack-import/package.json
index 38f9ba35a2..8031e6f647 100644
--- a/packages/contentstack-import/package.json
+++ b/packages/contentstack-import/package.json
@@ -1,7 +1,7 @@
{
"name": "@contentstack/cli-cm-import",
"description": "Contentstack CLI plugin to import content into stack",
- "version": "1.19.5",
+ "version": "1.20.0",
"author": "Contentstack",
"bugs": "https://github.com/contentstack/cli/issues",
"dependencies": {
diff --git a/packages/contentstack-import/src/config/index.ts b/packages/contentstack-import/src/config/index.ts
index 2489e60075..16ce4f7038 100644
--- a/packages/contentstack-import/src/config/index.ts
+++ b/packages/contentstack-import/src/config/index.ts
@@ -10,6 +10,8 @@ const config: DefaultConfig = {
// host:'https://azure-eu-api.contentstack.com/v3',
// use below hosts for gcp-na region
// host:'https://gcp-na-api.contentstack.com',
+ // use below hosts for gcp-eu region
+ // host:'https://gcp-eu-api.contentstack.com',
// pass locale, only to migrate entries from that locale
// not passing `locale` will migrate all the locales present
// locales: ['fr-fr'],
@@ -21,6 +23,7 @@ const config: DefaultConfig = {
'https://azure-na-api.contentstack.com': 'https://azure-na-developerhub-api.contentstack.com',
'https://azure-eu-api.contentstack.com': 'https://azure-eu-developerhub-api.contentstack.com',
'https://gcp-na-api.contentstack.com': 'https://gcp-na-developerhub-api.contentstack.com',
+ 'https://gcp-eu-api.contentstack.com': 'https://gcp-eu-developerhub-api.contentstack.com',
},
modules: {
apiConcurrency: 5,
diff --git a/packages/contentstack-import/src/utils/asset-helper.ts b/packages/contentstack-import/src/utils/asset-helper.ts
index 0d6e169669..d4561ec37b 100644
--- a/packages/contentstack-import/src/utils/asset-helper.ts
+++ b/packages/contentstack-import/src/utils/asset-helper.ts
@@ -359,7 +359,7 @@ function findFileUrls(schema: any, _entry: any, assetUrls: any) {
text = JSON.stringify(_entry);
}
markdownRegEx = new RegExp(
- '(https://(assets|(eu-|azure-na-|azure-eu-|gcp-na-)?images).contentstack.(io|com)/v3/assets/(.*?)/(.*?)/(.*?)/(.*?)(?="))',
+ '(https://(assets|(eu-|azure-na-|azure-eu-|gcp-na-|gcp-eu-)?images).contentstack.(io|com)/v3/assets/(.*?)/(.*?)/(.*?)/(.*?)(?="))',
'g',
);
while ((markdownMatch = markdownRegEx.exec(text)) !== null) {
diff --git a/packages/contentstack-seed/package.json b/packages/contentstack-seed/package.json
index 5b922cb964..8b22c7953b 100644
--- a/packages/contentstack-seed/package.json
+++ b/packages/contentstack-seed/package.json
@@ -1,11 +1,11 @@
{
"name": "@contentstack/cli-cm-seed",
"description": "create a Stack from existing content types, entries, assets, etc.",
- "version": "1.10.1",
+ "version": "1.10.2",
"author": "Contentstack",
"bugs": "https://github.com/contentstack/cli/issues",
"dependencies": {
- "@contentstack/cli-cm-import": "~1.19.5",
+ "@contentstack/cli-cm-import": "~1.20.0",
"@contentstack/cli-command": "~1.3.3",
"@contentstack/cli-utilities": "~1.8.2",
"@contentstack/management": "~1.18.4",
diff --git a/packages/contentstack/README.md b/packages/contentstack/README.md
index 5b90aaa9bd..e201cbbbbb 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/1.35.4 darwin-arm64 node-v22.14.0
+@contentstack/cli/1.36.0 darwin-x64 node-v22.14.0
$ csdx --help [COMMAND]
USAGE
$ csdx COMMAND
@@ -3560,6 +3560,8 @@ EXAMPLES
$ csdx config:set:region GCP-NA
+ $ csdx config:set:region GCP-EU
+
$ csdx config:set:region --cma --cda --ui-host --name "India"
$ csdx config:set:region --cma --cda --ui-host --name "India" --developer-hub
diff --git a/packages/contentstack/package.json b/packages/contentstack/package.json
index c0fa86856f..1a9a583cc9 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": "1.35.4",
+ "version": "1.36.0",
"author": "Contentstack",
"bin": {
"csdx": "./bin/run.js"
@@ -24,18 +24,18 @@
"dependencies": {
"@contentstack/cli-audit": "~1.7.5",
"@contentstack/cli-auth": "~1.3.24",
- "@contentstack/cli-cm-bootstrap": "~1.13.1",
- "@contentstack/cli-cm-branches": "~1.2.1",
+ "@contentstack/cli-cm-bootstrap": "~1.13.2",
+ "@contentstack/cli-cm-branches": "~1.3.0",
"@contentstack/cli-cm-bulk-publish": "~1.7.2",
- "@contentstack/cli-cm-clone": "~1.13.1",
- "@contentstack/cli-cm-export": "~1.14.2",
+ "@contentstack/cli-cm-clone": "~1.13.2",
+ "@contentstack/cli-cm-export": "~1.15.0",
"@contentstack/cli-cm-export-to-csv": "~1.7.3",
- "@contentstack/cli-cm-import": "~1.19.5",
- "@contentstack/cli-cm-import-setup": "1.0.1",
+ "@contentstack/cli-cm-import": "~1.20.0",
+ "@contentstack/cli-cm-import-setup": "1.1.0",
"@contentstack/cli-cm-migrate-rte": "~1.4.21",
- "@contentstack/cli-cm-seed": "~1.10.1",
+ "@contentstack/cli-cm-seed": "~1.10.2",
"@contentstack/cli-command": "~1.3.3",
- "@contentstack/cli-config": "~1.9.1",
+ "@contentstack/cli-config": "~1.10.0",
"@contentstack/cli-launch": "^1.5.1",
"@contentstack/cli-migration": "~1.6.5",
"@contentstack/cli-utilities": "~1.8.2",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 49f8cdc08f..d5dc6b46e5 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -12,18 +12,18 @@ importers:
specifiers:
'@contentstack/cli-audit': ~1.7.5
'@contentstack/cli-auth': ~1.3.24
- '@contentstack/cli-cm-bootstrap': ~1.13.1
- '@contentstack/cli-cm-branches': ~1.2.1
+ '@contentstack/cli-cm-bootstrap': ~1.13.2
+ '@contentstack/cli-cm-branches': ~1.3.0
'@contentstack/cli-cm-bulk-publish': ~1.7.2
- '@contentstack/cli-cm-clone': ~1.13.1
- '@contentstack/cli-cm-export': ~1.14.2
+ '@contentstack/cli-cm-clone': ~1.13.2
+ '@contentstack/cli-cm-export': ~1.15.0
'@contentstack/cli-cm-export-to-csv': ~1.7.3
- '@contentstack/cli-cm-import': ~1.19.5
- '@contentstack/cli-cm-import-setup': 1.0.1
+ '@contentstack/cli-cm-import': ~1.20.0
+ '@contentstack/cli-cm-import-setup': 1.1.0
'@contentstack/cli-cm-migrate-rte': ~1.4.21
- '@contentstack/cli-cm-seed': ~1.10.1
+ '@contentstack/cli-cm-seed': ~1.10.2
'@contentstack/cli-command': ~1.3.3
- '@contentstack/cli-config': ~1.9.1
+ '@contentstack/cli-config': ~1.10.0
'@contentstack/cli-launch': ^1.5.1
'@contentstack/cli-migration': ~1.6.5
'@contentstack/cli-utilities': ~1.8.2
@@ -237,7 +237,7 @@ importers:
packages/contentstack-bootstrap:
specifiers:
- '@contentstack/cli-cm-seed': ~1.10.1
+ '@contentstack/cli-cm-seed': ~1.10.2
'@contentstack/cli-command': ~1.3.3
'@contentstack/cli-utilities': ~1.8.2
'@oclif/test': ^4.1.6
@@ -363,8 +363,8 @@ importers:
packages/contentstack-clone:
specifiers:
'@colors/colors': ^1.6.0
- '@contentstack/cli-cm-export': ~1.14.2
- '@contentstack/cli-cm-import': ~1.19.5
+ '@contentstack/cli-cm-export': ~1.15.0
+ '@contentstack/cli-cm-import': ~1.20.0
'@contentstack/cli-command': ~1.3.3
'@contentstack/cli-utilities': ~1.8.2
'@oclif/test': ^4.1.6
@@ -508,7 +508,7 @@ importers:
specifiers:
'@contentstack/cli-auth': ~1.3.24
'@contentstack/cli-command': ~1.3.3
- '@contentstack/cli-config': ~1.9.1
+ '@contentstack/cli-config': ~1.10.0
'@contentstack/cli-dev-dependencies': ~1.2.4
'@contentstack/cli-utilities': ~1.8.2
'@contentstack/cli-variants': ~1.1.5
@@ -824,7 +824,7 @@ importers:
packages/contentstack-seed:
specifiers:
- '@contentstack/cli-cm-import': ~1.19.5
+ '@contentstack/cli-cm-import': ~1.20.0
'@contentstack/cli-command': ~1.3.3
'@contentstack/cli-utilities': ~1.8.2
'@contentstack/management': ~1.18.4
@@ -1414,7 +1414,7 @@ packages:
resolution: {integrity: sha512-DJ6gU8teAScWw6uZo+MBRrlEHfXfvtuVzoHiS5VCIAA6wVftGHQak7K+ch60PKZDW562VQ1u4Ky9HWjsIfZ7+Q==}
engines: {node: '>=14.0.0'}
dependencies:
- '@contentstack/cli-utilities': 1.8.1_debug@4.4.0
+ '@contentstack/cli-utilities': 1.8.2_debug@4.4.0
contentstack: 3.24.2
transitivePeerDependencies:
- '@jest/globals'
@@ -1429,7 +1429,7 @@ packages:
dependencies:
'@apollo/client': 3.13.1_graphql@16.10.0
'@contentstack/cli-command': 1.3.3_debug@4.4.0
- '@contentstack/cli-utilities': 1.8.1_debug@4.4.0
+ '@contentstack/cli-utilities': 1.8.2_debug@4.4.0
'@oclif/core': 3.27.0
'@oclif/plugin-help': 5.2.20_ogreqof3k35xezedraj6pnd45y
'@oclif/plugin-plugins': 5.4.34
@@ -1469,8 +1469,8 @@ packages:
- typescript
dev: false
- /@contentstack/cli-utilities/1.8.1_debug@4.4.0:
- resolution: {integrity: sha512-fBj9t9xGux9jGXlQ6MymPJ2MOqXqcIny3N6MwG5J6ppW86Ps4tBfgrnRuODSBTc0GGjup4Jg84Q3zyJyF3pJfg==}
+ /@contentstack/cli-utilities/1.8.2_debug@4.4.0:
+ resolution: {integrity: sha512-5d2tL8Fnztrf3dDMTyecxlje1HiojY0cppq+eY3t/xrSHIKyjXLr8hjE9g7iSFdyuqrylUbnYdWJFo9KMf6g+w==}
dependencies:
'@contentstack/management': 1.18.4_debug@4.4.0
'@contentstack/marketplace-sdk': 1.2.5_debug@4.4.0
@@ -5556,7 +5556,7 @@ packages:
engines: {node: '>=8.0.0'}
dependencies:
'@contentstack/cli-command': 1.3.3_debug@4.4.0
- '@contentstack/cli-utilities': 1.8.1_debug@4.4.0
+ '@contentstack/cli-utilities': 1.8.2_debug@4.4.0
'@contentstack/types-generator': 2.2.0_zav7a7arc4aduyoecinlry72ui
async: 3.2.6
dotenv: 16.4.7