From 0b0d42c5539d4c92e8113debb9c9d19b6b00255e Mon Sep 17 00:00:00 2001 From: sunil-lakshman <104969541+sunil-lakshman@users.noreply.github.com> Date: Fri, 23 Jan 2026 16:02:24 +0530 Subject: [PATCH 1/3] updated readme file with host and region support document (#302) * updated readme file with host and region support document * remove commented line --- README.md | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/README.md b/README.md index 5dbc5ca8..5e8ec2b7 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,63 @@ You will need to specify the API key, Delivery Token, and Environment Name of yo Once you have initialized the SDK, you can start getting content in your app. +#### Region and Host Configuration + +The SDK supports region and custom host configuration to connect to different Contentstack data centers or custom endpoints. + +**Region Support** + +You can specify a region to connect to the appropriate Contentstack data center. Available regions are: +- `US` (default) - Uses `cdn.contentstack.io` +- `EU` - Uses `eu-cdn.contentstack.com` +- `AU` - Uses `au-cdn.contentstack.com` +- `AZURE_NA` - Uses `azure-na-cdn.contentstack.com` +- `AZURE_EU` - Uses `azure-eu-cdn.contentstack.com` +- `GCP_NA` - Uses `gcp-na-cdn.contentstack.com` +- `GCP_EU` - Uses `gcp-eu-cdn.contentstack.com` + +```typescript +import contentstack, { Region } from '@contentstack/delivery-sdk' + +// Using region enum +const stack = contentstack.stack({ + apiKey: "apiKey", + deliveryToken: "deliveryToken", + environment: "environment", + region: Region.EU +}); + +// Using region string +const stack = contentstack.stack({ + apiKey: "apiKey", + deliveryToken: "deliveryToken", + environment: "environment", + region: "eu" +}); +``` + +**Custom Host Support** + +You can specify a custom host to connect to a custom endpoint. If a custom host is provided, it takes priority over the region-based host. + +```typescript +const stack = contentstack.stack({ + apiKey: "apiKey", + deliveryToken: "deliveryToken", + environment: "environment", + host: "custom-cdn.example.com" +}); + +// Custom host with region (host takes priority) +const stack = contentstack.stack({ + apiKey: "apiKey", + deliveryToken: "deliveryToken", + environment: "environment", + region: Region.EU, + host: "custom-cdn.example.com" +}); +``` + #### Querying content from your stack To get a single entry, you need to specify the content type as well as the ID of the entry. From d2ddc3843c8ed6bb6883d9bced3e821756e50d3b Mon Sep 17 00:00:00 2001 From: sunil-lakshman <104969541+sunil-lakshman@users.noreply.github.com> Date: Fri, 6 Feb 2026 18:09:51 +0530 Subject: [PATCH 2/3] Upgraded js core & utils package version --- package-lock.json | 89 +++++++++-------------------------------------- package.json | 4 +-- 2 files changed, 19 insertions(+), 74 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1c4543a9..1f6f4553 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,8 +9,8 @@ "version": "4.11.0", "license": "MIT", "dependencies": { - "@contentstack/core": "^1.3.6", - "@contentstack/utils": "^1.6.3", + "@contentstack/core": "^1.3.9", + "@contentstack/utils": "^1.7.0", "axios": "^1.13.1", "humps": "^2.0.1" }, @@ -1891,15 +1891,14 @@ "license": "MIT" }, "node_modules/@contentstack/core": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/@contentstack/core/-/core-1.3.8.tgz", - "integrity": "sha512-cmQJ87BuEQTvxQ8HJivHAMO6fL6KGuqjBUsrvcoP+DhUEbehlN+QVW/SgjvFTN896sB+dhB5kMJejzWhBNHzlQ==", + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/@contentstack/core/-/core-1.3.9.tgz", + "integrity": "sha512-EPfCQbippYAoFPO5DAAZdC6I95j1hDvIir7v5Fr6xYd5uuO9jD8FEB6ZaNRuuUH1WMgHctzTI4IqwohZ/ILtow==", "license": "MIT", "dependencies": { - "axios": "^1.12.2", + "axios": "^1.13.4", "axios-mock-adapter": "^2.1.0", - "husky": "^9.1.7", - "lodash": "^4.17.21", + "lodash": "^4.17.23", "qs": "6.14.1", "tslib": "^2.8.1" } @@ -1918,9 +1917,9 @@ } }, "node_modules/@contentstack/utils": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@contentstack/utils/-/utils-1.6.3.tgz", - "integrity": "sha512-FU1hFks9vnJ5e9cwBTPgnf3obx/fuKh+c3Gtc71mq1Mrub3/z4rJZJWLJ2kublVKnXWnhz+Yt66rshxO/TT9IQ==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@contentstack/utils/-/utils-1.7.0.tgz", + "integrity": "sha512-wNWNt+wkoGJzCr5ZhAMKWJ5ND5xbD7N3t++Y6s1O+FB+AFzJszqCT740j6VqwjhQzw5sGfHoGjHIvlQA9dCcBw==", "license": "MIT" }, "node_modules/@cspotcode/source-map-support": { @@ -5283,9 +5282,9 @@ "license": "MIT" }, "node_modules/axios": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz", - "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.4.tgz", + "integrity": "sha512-1wVkUaAO6WyaYtCkcYCOx12ZgpGf9Zif+qXa4n+oYzK558YryKqiL6UWwd5DqiH3VRW0GYhTZQ/vlgJrCoNQlg==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", @@ -7681,6 +7680,7 @@ "version": "9.1.7", "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", + "dev": true, "license": "MIT", "bin": { "husky": "bin.js" @@ -8246,43 +8246,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-circus/node_modules/babel-plugin-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - } - }, - "node_modules/jest-circus/node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/jest-circus/node_modules/dedent": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.1.tgz", @@ -9222,9 +9185,9 @@ } }, "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", "license": "MIT" }, "node_modules/lodash.debounce": { @@ -12017,24 +11980,6 @@ "node": ">= 12" } }, - "node_modules/tsup/node_modules/yaml": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", - "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", - "dev": true, - "license": "ISC", - "optional": true, - "peer": true, - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14.6" - }, - "funding": { - "url": "https://github.com/sponsors/eemeli" - } - }, "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", diff --git a/package.json b/package.json index 2ca16974..c61f5ebc 100644 --- a/package.json +++ b/package.json @@ -47,8 +47,8 @@ "prerelease": "npm run test:all && npm run validate:all" }, "dependencies": { - "@contentstack/core": "^1.3.6", - "@contentstack/utils": "^1.6.3", + "@contentstack/core": "^1.3.9", + "@contentstack/utils": "^1.7.0", "axios": "^1.13.1", "humps": "^2.0.1" }, From 3ae64c8a77d381160bae76b50efc99d2ff4afcda Mon Sep 17 00:00:00 2001 From: sunil-lakshman <104969541+sunil-lakshman@users.noreply.github.com> Date: Mon, 9 Feb 2026 11:19:57 +0530 Subject: [PATCH 3/3] Added version bump --- CHANGELOG.md | 4 ++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 22654506..b1c9e917 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +### Version: 4.11.1 +#### Date: feb-09-2026 +Fix: Fix security issues + ### Version: 4.11.0 #### Date: Jan-19-2026 Enhancement: Integrated getContentstackEndpoint method of Utils SDK for endpoint selection diff --git a/package-lock.json b/package-lock.json index 1f6f4553..2a4c6aaa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@contentstack/delivery-sdk", - "version": "4.11.0", + "version": "4.11.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@contentstack/delivery-sdk", - "version": "4.11.0", + "version": "4.11.1", "license": "MIT", "dependencies": { "@contentstack/core": "^1.3.9", diff --git a/package.json b/package.json index c61f5ebc..6e6353ba 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@contentstack/delivery-sdk", - "version": "4.11.0", + "version": "4.11.1", "type": "module", "license": "MIT", "main": "./dist/legacy/index.cjs",