Skip to content

Commit 26baf62

Browse files
Merge pull request #2357 from contentstack/enh/dx-3902-Refactor-Endpoints-Integrations
Enh/dx 3902 refactor endpoints integrations
2 parents 3c63dff + 31eb010 commit 26baf62

File tree

11 files changed

+600
-731
lines changed

11 files changed

+600
-731
lines changed

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,16 @@
22

33
Please refer to the Contentstack Command-line Interface release notes [here](https://www.contentstack.com/docs/developers/cli/cli-changelog).
44

5+
6+
7+
8+
#### Date: Feb-09-2025
9+
## cli
10+
- Refactor Endpoints Integration using Utils SDK in cli-cm-config v1.9.0
11+
## cli beta
12+
- Updated @contentstack/cli-cm-export from ~2.0.0-beta.6 to ~2.0.0-beta.7
13+
- Updated @contentstack/cli-cm-clone from ~2.0.0-beta.7 to ~2.0.0-beta.8
14+
515
## @contentstack/cli-cm-clone
616
### Version: 1.8.2
717
#### Date: June-30-2025

package-lock.json

Lines changed: 151 additions & 199 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/contentstack-bootstrap/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
"dependencies": {
1919
"@contentstack/cli-cm-seed": "~1.14.2",
2020
"@contentstack/cli-command": "~1.7.2",
21+
"@contentstack/cli-config": "~1.19.0",
2122
"@contentstack/cli-utilities": "~1.17.1",
2223
"@oclif/core": "^4.3.0",
2324
"@oclif/plugin-help": "^6.2.28",

packages/contentstack-bulk-publish/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
{
22
"name": "@contentstack/cli-cm-bulk-publish",
33
"description": "Contentstack CLI plugin for bulk publish actions",
4-
"version": "1.10.6",
4+
"version": "1.10.7",
55
"author": "Contentstack",
66
"bugs": "https://github.com/contentstack/cli/issues",
77
"dependencies": {
88
"@contentstack/cli-command": "~1.7.2",
9-
"@contentstack/cli-config": "~1.18.0",
9+
"@contentstack/cli-config": "~1.19.0",
1010
"@contentstack/cli-utilities": "~1.17.1",
1111
"@oclif/core": "^4.3.0",
1212
"@oclif/plugin-help": "^6.2.28",

packages/contentstack-clone/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"bugs": "https://github.com/rohitmishra209/cli-cm-clone/issues",
77
"dependencies": {
88
"@colors/colors": "^1.6.0",
9-
"@contentstack/cli-cm-export": "~1.23.1",
9+
"@contentstack/cli-cm-export": "~1.23.2",
1010
"@contentstack/cli-cm-import": "~1.31.2",
1111
"@contentstack/cli-command": "~1.7.2",
1212
"@contentstack/cli-utilities": "~1.17.1",

packages/contentstack-config/package.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@contentstack/cli-config",
33
"description": "Contentstack CLI plugin for configuration",
4-
"version": "1.18.0",
4+
"version": "1.19.0",
55
"author": "Contentstack",
66
"scripts": {
77
"build": "npm run clean && npm run compile",
@@ -22,7 +22,8 @@
2222
},
2323
"dependencies": {
2424
"@contentstack/cli-command": "~1.7.2",
25-
"@contentstack/cli-utilities": "~1.17.1",
25+
"@contentstack/cli-utilities": "~1.17.0",
26+
"@contentstack/utils": "~1.7.0",
2627
"@oclif/core": "^4.3.0",
2728
"@oclif/plugin-help": "^6.2.28",
2829
"lodash": "^4.17.23"
@@ -80,4 +81,4 @@
8081
}
8182
},
8283
"repository": "contentstack/cli"
83-
}
84+
}

packages/contentstack-config/src/interfaces/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,7 @@ export interface SetRateLimitConfig {
3939
default?: boolean;
4040
host?: string;
4141
}
42+
43+
export interface RegionsMap {
44+
[key: string]: Region;
45+
}

packages/contentstack-config/src/utils/region-handler.ts

Lines changed: 63 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
import { configHandler } from '@contentstack/cli-utilities';
2+
import { getContentstackEndpoint } from '@contentstack/utils';
3+
import { Region, RegionsMap } from '../interfaces';
24

35
function validURL(str) {
46
const pattern = new RegExp(
@@ -15,109 +17,67 @@ function validURL(str) {
1517
return pattern.test(str);
1618
}
1719

18-
// Available region list
19-
const regions = {
20-
NA: {
21-
name: 'NA',
22-
cma: 'https://api.contentstack.io',
23-
cda: 'https://cdn.contentstack.io',
24-
uiHost: 'https://app.contentstack.com',
25-
developerHubUrl: 'https://developerhub-api.contentstack.com',
26-
launchHubUrl: 'https://launch-api.contentstack.com',
27-
personalizeUrl: 'https://personalize-api.contentstack.com',
28-
composableStudioUrl: 'https://composable-studio-api.contentstack.com',
29-
},
30-
'AWS-NA': {
31-
name: 'AWS-NA',
32-
cma: 'https://api.contentstack.io',
33-
cda: 'https://cdn.contentstack.io',
34-
uiHost: 'https://app.contentstack.com',
35-
developerHubUrl: 'https://developerhub-api.contentstack.com',
36-
launchHubUrl: 'https://launch-api.contentstack.com',
37-
personalizeUrl: 'https://personalize-api.contentstack.com',
38-
composableStudioUrl: 'https://composable-studio-api.contentstack.com',
39-
},
40-
EU: {
41-
name: 'EU',
42-
cma: 'https://eu-api.contentstack.com',
43-
cda: 'https://eu-cdn.contentstack.com',
44-
uiHost: 'https://eu-app.contentstack.com',
45-
developerHubUrl: 'https://eu-developerhub-api.contentstack.com',
46-
launchHubUrl: 'https://eu-launch-api.contentstack.com',
47-
personalizeUrl: 'https://eu-personalize-api.contentstack.com',
48-
composableStudioUrl: 'https://eu-composable-studio-api.contentstack.com',
49-
},
50-
'AWS-EU': {
51-
name: 'AWS-EU',
52-
cma: 'https://eu-api.contentstack.com',
53-
cda: 'https://eu-cdn.contentstack.com',
54-
uiHost: 'https://eu-app.contentstack.com',
55-
developerHubUrl: 'https://eu-developerhub-api.contentstack.com',
56-
launchHubUrl: 'https://eu-launch-api.contentstack.com',
57-
personalizeUrl: 'https://eu-personalize-api.contentstack.com',
58-
composableStudioUrl: 'https://eu-composable-studio-api.contentstack.com',
59-
},
60-
AU: {
61-
name: 'AU',
62-
cma: 'https://au-api.contentstack.com',
63-
cda: 'https://au-cdn.contentstack.com',
64-
uiHost: 'https://au-app.contentstack.com',
65-
developerHubUrl: 'https://au-developerhub-api.contentstack.com',
66-
launchHubUrl: 'https://au-launch-api.contentstack.com',
67-
personalizeUrl: 'https://au-personalize-api.contentstack.com',
68-
composableStudioUrl: 'https://au-composable-studio-api.contentstack.com',
69-
},
70-
'AWS-AU': {
71-
name: 'AWS-AU',
72-
cma: 'https://au-api.contentstack.com',
73-
cda: 'https://au-cdn.contentstack.com',
74-
uiHost: 'https://au-app.contentstack.com',
75-
developerHubUrl: 'https://au-developerhub-api.contentstack.com',
76-
launchHubUrl: 'https://au-launch-api.contentstack.com',
77-
personalizeUrl: 'https://au-personalize-api.contentstack.com',
78-
composableStudioUrl: 'https://au-composable-studio-api.contentstack.com',
79-
},
80-
'AZURE-NA': {
81-
name: 'AZURE-NA',
82-
cma: 'https://azure-na-api.contentstack.com',
83-
cda: 'https://azure-na-cdn.contentstack.com',
84-
uiHost: 'https://azure-na-app.contentstack.com',
85-
developerHubUrl: 'https://azure-na-developerhub-api.contentstack.com',
86-
launchHubUrl: 'https://azure-na-launch-api.contentstack.com',
87-
personalizeUrl: 'https://azure-na-personalize-api.contentstack.com',
88-
composableStudioUrl: 'https://azure-na-composable-studio-api.contentstack.com',
89-
},
90-
'AZURE-EU': {
91-
name: 'AZURE-EU',
92-
cma: 'https://azure-eu-api.contentstack.com',
93-
cda: 'https://azure-eu-cdn.contentstack.com',
94-
uiHost: 'https://azure-eu-app.contentstack.com',
95-
developerHubUrl: 'https://azure-eu-developerhub-api.contentstack.com',
96-
launchHubUrl: 'https://azure-eu-launch-api.contentstack.com',
97-
personalizeUrl: 'https://azure-eu-personalize-api.contentstack.com',
98-
composableStudioUrl: 'https://azure-eu-composable-studio-api.contentstack.com',
99-
},
100-
'GCP-NA': {
101-
name: 'GCP-NA',
102-
cma: 'https://gcp-na-api.contentstack.com',
103-
cda: 'https://gcp-na-cdn.contentstack.com',
104-
uiHost: 'https://gcp-na-app.contentstack.com',
105-
developerHubUrl: 'https://gcp-na-developerhub-api.contentstack.com',
106-
launchHubUrl: 'https://gcp-na-launch-api.contentstack.com',
107-
personalizeUrl: 'https://gcp-na-personalize-api.contentstack.com',
108-
composableStudioUrl: 'https://gcp-na-composable-studio-api.contentstack.com',
109-
},
110-
'GCP-EU': {
111-
name: 'GCP-EU',
112-
cma: 'https://gcp-eu-api.contentstack.com',
113-
cda: 'https://gcp-eu-cdn.contentstack.com',
114-
uiHost: 'https://gcp-eu-app.contentstack.com',
115-
developerHubUrl: 'https://gcp-eu-developerhub-api.contentstack.com',
116-
launchHubUrl: 'https://gcp-eu-launch-api.contentstack.com',
117-
personalizeUrl: 'https://gcp-eu-personalize-api.contentstack.com',
118-
composableStudioUrl: 'https://gcp-eu-composable-studio-api.contentstack.com',
119-
},
120-
};
20+
/**
21+
* Helper function to build region object from @contentstack/utils
22+
* @param {string} regionKey - Region identifier
23+
* @returns {object} Region object with all necessary URLs
24+
*/
25+
function getRegionObject(regionKey: string): Region {
26+
try {
27+
// getContentstackEndpoint handles all aliases defined in regions.json
28+
const endpoints = getContentstackEndpoint(regionKey) as any;
29+
30+
if (typeof endpoints === 'string') {
31+
throw new Error('Invalid endpoint response');
32+
}
33+
34+
return {
35+
name: regionKey,
36+
cma: endpoints.contentManagement,
37+
cda: endpoints.contentDelivery,
38+
uiHost: endpoints.application,
39+
developerHubUrl: endpoints.developerHub,
40+
launchHubUrl: endpoints.launch,
41+
personalizeUrl: endpoints.personalizeManagement,
42+
composableStudioUrl: endpoints.composableStudio,
43+
};
44+
} catch (error) {
45+
return null;
46+
}
47+
}
48+
49+
/**
50+
* Get all available regions dynamically
51+
* This creates a regions object similar to the old hardcoded one but using @contentstack/utils
52+
*/
53+
function getAvailableRegions() {
54+
const regionKeys = [
55+
'NA',
56+
'AWS-NA',
57+
'EU',
58+
'AWS-EU',
59+
'AU',
60+
'AWS-AU',
61+
'AZURE-NA',
62+
'AZURE-EU',
63+
'GCP-NA',
64+
'GCP-EU',
65+
];
66+
67+
const regions: RegionsMap = {};
68+
69+
for (const key of regionKeys) {
70+
const regionObj = getRegionObject(key);
71+
if (regionObj) {
72+
regions[key] = regionObj;
73+
}
74+
}
75+
76+
return regions;
77+
}
78+
79+
// Available region list - now dynamically generated
80+
const regions = getAvailableRegions();
12181

12282
class UserConfig {
12383
/**

packages/contentstack-export/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@contentstack/cli-cm-export",
33
"description": "Contentstack CLI plugin to export content from stack",
4-
"version": "1.23.1",
4+
"version": "1.23.2",
55
"author": "Contentstack",
66
"bugs": "https://github.com/contentstack/cli/issues",
77
"dependencies": {
@@ -22,7 +22,7 @@
2222
},
2323
"devDependencies": {
2424
"@contentstack/cli-auth": "~1.7.3",
25-
"@contentstack/cli-config": "~1.18.0",
25+
"@contentstack/cli-config": "~1.19.0",
2626
"@contentstack/cli-dev-dependencies": "~1.3.1",
2727
"@oclif/plugin-help": "^6.2.28",
2828
"@oclif/test": "^4.1.13",

packages/contentstack/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@contentstack/cli",
33
"description": "Command-line tool (CLI) to interact with Contentstack",
4-
"version": "1.57.1",
4+
"version": "1.58.0",
55
"author": "Contentstack",
66
"bin": {
77
"csdx": "./bin/run.js"
@@ -23,19 +23,19 @@
2323
},
2424
"dependencies": {
2525
"@contentstack/cli-audit": "~1.17.1",
26-
"@contentstack/cli-cm-export": "~1.23.1",
26+
"@contentstack/cli-cm-export": "~1.23.2",
2727
"@contentstack/cli-cm-import": "~1.31.2",
2828
"@contentstack/cli-auth": "~1.7.3",
2929
"@contentstack/cli-cm-bootstrap": "~1.18.3",
3030
"@contentstack/cli-cm-branches": "~1.6.3",
31-
"@contentstack/cli-cm-bulk-publish": "~1.10.6",
31+
"@contentstack/cli-cm-bulk-publish": "~1.10.7",
3232
"@contentstack/cli-cm-clone": "~1.20.1",
3333
"@contentstack/cli-cm-export-to-csv": "~1.11.0",
3434
"@contentstack/cli-cm-import-setup": "~1.7.3",
3535
"@contentstack/cli-cm-migrate-rte": "~1.6.4",
3636
"@contentstack/cli-cm-seed": "~1.14.2",
3737
"@contentstack/cli-command": "~1.7.2",
38-
"@contentstack/cli-config": "~1.18.0",
38+
"@contentstack/cli-config": "~1.19.0",
3939
"@contentstack/cli-launch": "^1.9.2",
4040
"@contentstack/cli-migration": "~1.11.0",
4141
"@contentstack/cli-utilities": "~1.17.1",

0 commit comments

Comments
 (0)