From 90f62ef6b815b8689dcba077ea2a40a6ef664603 Mon Sep 17 00:00:00 2001 From: Vikram Kalta Date: Sun, 1 Dec 2024 11:06:07 +0000 Subject: [PATCH 1/5] fix: axios update --- package-lock.json | 9 ++++----- package.json | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 09e0a635..5355f115 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@contentstack/core": "^1.1.3", "@contentstack/utils": "^1.3.14", "@types/humps": "^2.0.6", - "axios": "^1.7.7", + "axios": "^1.7.8", "dotenv": "^16.4.5", "humps": "^2.0.1", "path-browserify": "^1.0.1" @@ -4630,10 +4630,9 @@ "license": "MIT" }, "node_modules/axios": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", - "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", - "license": "MIT", + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.8.tgz", + "integrity": "sha512-Uu0wb7KNqK2t5K+YQyVCLM76prD5sRFjKHbJYCP1J7JFGEQ6nN7HWn9+04LAeiJ3ji54lgS/gZCH1oxyrf1SPw==", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", diff --git a/package.json b/package.json index 883f718d..59503ea7 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "@contentstack/core": "^1.1.3", "@contentstack/utils": "^1.3.14", "@types/humps": "^2.0.6", - "axios": "^1.7.7", + "axios": "^1.7.8", "dotenv": "^16.4.5", "humps": "^2.0.1", "path-browserify": "^1.0.1" From f06fb9867619dd45db7bcc6759b5e4f52b8d8834 Mon Sep 17 00:00:00 2001 From: Vikram Kalta Date: Fri, 3 Jan 2025 11:07:41 +0000 Subject: [PATCH 2/5] fix: fixed issue for cache policy config --- package-lock.json | 266 ++++-------------- package.json | 4 +- src/lib/cache.ts | 12 +- .../config/persistance-storage-config.ts | 4 +- src/persistance/persistance-store.ts | 4 +- 5 files changed, 73 insertions(+), 217 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5355f115..860d7018 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,15 +1,15 @@ { "name": "@contentstack/delivery-sdk", - "version": "4.4.3", + "version": "4.4.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@contentstack/delivery-sdk", - "version": "4.4.3", + "version": "4.4.4", "license": "MIT", "dependencies": { - "@contentstack/core": "^1.1.3", + "@contentstack/core": "^1.1.4", "@contentstack/utils": "^1.3.14", "@types/humps": "^2.0.6", "axios": "^1.7.8", @@ -36,6 +36,56 @@ "webpack-cli": "^5.1.4" } }, + "../contentstack-js-core": { + "name": "@contentstack/core", + "version": "1.1.4", + "dependencies": { + "axios": "^1.7.7", + "axios-mock-adapter": "^1.22.0", + "lodash": "^4.17.21", + "qs": "^6.13.0", + "tslib": "^2.8.0" + }, + "devDependencies": { + "@commitlint/cli": "^17.8.1", + "@commitlint/config-conventional": "^17.8.1", + "@cspell/eslint-plugin": "^6.31.3", + "@types/jest": "28.1.8", + "@types/lodash": "^4.17.12", + "@types/node": "16.11.68", + "@types/qs": "^6.9.16", + "@typescript-eslint/eslint-plugin": "^5.62.0", + "@typescript-eslint/parser": "^5.62.0", + "babel-jest": "28.1.3", + "commitizen": "^4.3.1", + "eslint": "~8.57.1", + "eslint-config-airbnb-typescript": "^17.1.0", + "eslint-config-prettier": "8.1.0", + "eslint-import-resolver-webpack": "^0.13.9", + "eslint-plugin-cypress": "^2.15.2", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-functional": "^4.4.1", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-jsx-a11y": "^6.10.2", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-promise": "^6.6.0", + "eslint-plugin-react": "^7.37.2", + "eslint-plugin-react-hooks": "^4.6.2", + "eslint-plugin-spellcheck": "^0.0.20", + "husky": "^8.0.3", + "jest": "28.1.3", + "jest-environment-jsdom": "28.1.3", + "jest-html-reporters": "^3.1.7", + "jest-junit": "^15.0.0", + "prettier": "^2.8.8", + "ts-jest": "28.0.8", + "ts-loader": "^9.5.1", + "ts-node": "10.9.1", + "typescript": "~4.9.5", + "webpack": "^5.95.0", + "webpack-cli": "^4.10.0" + } + }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", @@ -1903,16 +1953,8 @@ "license": "MIT" }, "node_modules/@contentstack/core": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@contentstack/core/-/core-1.1.3.tgz", - "integrity": "sha512-0sbk7xte9JVlPfcgpfhxT9OZeGG0FgHnc7FABEWsBzKi41KSnDj7zFmkK7rVaORkeUM1elhKDmLqNDRYC1oCEw==", - "dependencies": { - "axios": "^1.7.7", - "axios-mock-adapter": "^1.22.0", - "lodash": "^4.17.21", - "qs": "^6.13.0", - "tslib": "^2.8.0" - } + "resolved": "../contentstack-js-core", + "link": true }, "node_modules/@contentstack/utils": { "version": "1.3.14", @@ -4643,6 +4685,7 @@ "version": "1.22.0", "resolved": "https://registry.npmjs.org/axios-mock-adapter/-/axios-mock-adapter-1.22.0.tgz", "integrity": "sha512-dmI0KbkyAhntUR05YY96qg2H6gg0XMl2+qTW0xmYg6Up+BFBAJYRLROMXRdDEL06/Wqwa0TJThAYvFtSFdRCZw==", + "dev": true, "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", @@ -5024,25 +5067,6 @@ "node": ">=8" } }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -5497,23 +5521,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", @@ -5747,27 +5754,6 @@ "is-arrayish": "^0.2.1" } }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/es-module-lexer": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", @@ -6021,6 +6007,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, "license": "MIT" }, "node_modules/fast-glob": { @@ -6265,6 +6252,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6290,25 +6278,6 @@ "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -6409,18 +6378,6 @@ "node": ">=4" } }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -6445,46 +6402,11 @@ "node": ">=8" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -6738,6 +6660,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true, "funding": [ { "type": "github", @@ -8035,12 +7958,6 @@ "node": ">=8" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "license": "MIT" - }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -8493,18 +8410,6 @@ "node": ">=0.10.0" } }, - "node_modules/object-inspect": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", - "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -8901,21 +8806,6 @@ ], "license": "MIT" }, - "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", @@ -9316,23 +9206,6 @@ "randombytes": "^2.1.0" } }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", @@ -9369,24 +9242,6 @@ "node": ">=8" } }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", @@ -10214,6 +10069,7 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, "license": "0BSD" }, "node_modules/tsup": { diff --git a/package.json b/package.json index 59503ea7..cc81d0f4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@contentstack/delivery-sdk", - "version": "4.4.3", + "version": "4.4.4", "type": "module", "license": "MIT", "main": "./dist/legacy/index.cjs", @@ -33,7 +33,7 @@ "build:types": "node tools/cleanup types && tsc -p config/tsconfig.types.json" }, "dependencies": { - "@contentstack/core": "^1.1.3", + "@contentstack/core": "^1.1.4", "@contentstack/utils": "^1.3.14", "@types/humps": "^2.0.6", "axios": "^1.7.8", diff --git a/src/lib/cache.ts b/src/lib/cache.ts index 090d7f5e..228d6569 100644 --- a/src/lib/cache.ts +++ b/src/lib/cache.ts @@ -17,9 +17,9 @@ export async function handleRequest( const apiResponse = await defaultAdapter(config); if (apiResponse.data) { - cacheStore.setItem(apiKey, apiResponse.data, config.contentTypeUid, cacheOptions.maxAge); + cacheStore.setItem(apiKey, JSON.parse(apiResponse.data), config.contentTypeUid, cacheOptions.maxAge); - return resolve(apiResponse.data); + return resolve({data: JSON.parse(apiResponse.data)}); } else { const cacheResponse = cacheStore.getItem(apiKey, config.contentTypeUid); if (cacheResponse) @@ -48,9 +48,9 @@ export async function handleRequest( const apiResponse = await defaultAdapter(config); if (apiResponse.data) { - cacheStore.setItem(apiKey, apiResponse.data, config.contentTypeUid, cacheOptions.maxAge); + cacheStore.setItem(apiKey, JSON.parse(apiResponse.data), config.contentTypeUid, cacheOptions.maxAge); - return resolve(apiResponse.data); + return resolve({data: JSON.parse(apiResponse.data)}); } else { return reject(apiResponse); } @@ -70,9 +70,9 @@ export async function handleRequest( const apiResponse = await defaultAdapter(config); if (apiResponse.data) { - cacheStore.setItem(apiKey, apiResponse.data, config.contentTypeUid, cacheOptions.maxAge); + cacheStore.setItem(apiKey, JSON.parse(apiResponse.data), config.contentTypeUid, cacheOptions.maxAge); - return resolve(apiResponse.data); + return resolve({data: JSON.parse(apiResponse.data)}); } else { return reject(apiResponse); } diff --git a/src/persistance/config/persistance-storage-config.ts b/src/persistance/config/persistance-storage-config.ts index e1c495a3..39029fe6 100644 --- a/src/persistance/config/persistance-storage-config.ts +++ b/src/persistance/config/persistance-storage-config.ts @@ -3,10 +3,10 @@ import { StorageType } from '../types/storage-type'; export type PersistanceStoreConfig = | (Store & PersistanceStoreOptions) - | ({ storageType?: StorageType } & PersistanceStoreOptions); + | ({ storeType?: StorageType } & PersistanceStoreOptions); export interface Store { storage: Storage; - storageType: 'customStorage'; + storeType: 'customStorage'; } export interface PersistanceStoreOptions { maxAge?: number; // default 24 hrs diff --git a/src/persistance/persistance-store.ts b/src/persistance/persistance-store.ts index d20e9ab9..008e5690 100644 --- a/src/persistance/persistance-store.ts +++ b/src/persistance/persistance-store.ts @@ -11,7 +11,7 @@ export class PersistanceStore { constructor(config?: PersistanceStoreConfig) { let defaultConfig: PersistanceStoreConfig = { - storageType: 'localStorage', + storeType: 'localStorage', maxAge: 1000 * 60 * 60 * 24, serializer: JSON.stringify, deserializer: JSON.parse, @@ -20,7 +20,7 @@ export class PersistanceStore { ...defaultConfig, ...config, }; - this.setStore(defaultConfig.storageType, (defaultConfig as unknown as Store).storage); + this.setStore(defaultConfig.storeType, (defaultConfig as unknown as Store).storage); this.config = defaultConfig; this.name = ''; // TODO add stack api key to name } From 8f8cce7b4372a74edcd6bb7881e705326a151e57 Mon Sep 17 00:00:00 2001 From: Vikram Kalta Date: Thu, 9 Jan 2025 21:07:37 +0000 Subject: [PATCH 3/5] fix: bumped version --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8f35abf4..617ee59c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@contentstack/delivery-sdk", - "version": "4.4.4", + "version": "4.4.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@contentstack/delivery-sdk", - "version": "4.4.4", + "version": "4.4.5", "license": "MIT", "dependencies": { "@contentstack/core": "^1.1.4", diff --git a/package.json b/package.json index 3edc35f4..f2e89742 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@contentstack/delivery-sdk", - "version": "4.4.4", + "version": "4.4.5", "type": "module", "license": "MIT", "main": "./dist/legacy/index.cjs", From 391b1f76bffebd094d6fdbb103a87345128fb825 Mon Sep 17 00:00:00 2001 From: "harshitha.d" Date: Thu, 16 Jan 2025 12:41:27 +0530 Subject: [PATCH 4/5] to set the locale when locale is passed in setLocale() --- src/lib/contentstack.ts | 4 ++++ src/lib/stack.ts | 1 + test/unit/stack.spec.ts | 1 + 3 files changed, 6 insertions(+) diff --git a/src/lib/contentstack.ts b/src/lib/contentstack.ts index 65c01d44..a9360b14 100644 --- a/src/lib/contentstack.ts +++ b/src/lib/contentstack.ts @@ -59,6 +59,10 @@ export function stack(config: StackConfig): StackClass { throw new Error('Environment for Stack is required'); } + if (config.locale) { + defaultConfig.params.locale = config.locale; + } + if (config.live_preview) { if (Utility.isBrowser()) { const params = new URL(document.location.toString()).searchParams; diff --git a/src/lib/stack.ts b/src/lib/stack.ts index 9a6ec82d..e4bfc561 100644 --- a/src/lib/stack.ts +++ b/src/lib/stack.ts @@ -114,6 +114,7 @@ export class Stack { */ setLocale(locale: string) { this.config.locale = locale; + this._client.defaults.params.locale = locale; } /** diff --git a/test/unit/stack.spec.ts b/test/unit/stack.spec.ts index 35a34768..ca955188 100644 --- a/test/unit/stack.spec.ts +++ b/test/unit/stack.spec.ts @@ -32,6 +32,7 @@ describe('Stack class tests', () => { }); stack = new Stack(client, config() as StackConfig); + client.defaults.params = {}; }); it('should test import of class Stack', (done) => { expect(stack).toBeInstanceOf(Stack); From fd1bdd346955bbced3326010fba1c7c00d97aff5 Mon Sep 17 00:00:00 2001 From: "harshitha.d" Date: Thu, 16 Jan 2025 18:17:56 +0530 Subject: [PATCH 5/5] fix for live preview params issue --- src/lib/stack.ts | 9 ++++--- test/unit/cache.spec.ts | 12 ++++----- .../unit/persistance/preference-store.spec.ts | 26 +++++++++---------- test/unit/stack.spec.ts | 9 ++++--- 4 files changed, 29 insertions(+), 27 deletions(-) diff --git a/src/lib/stack.ts b/src/lib/stack.ts index e4bfc561..a1f6e22a 100644 --- a/src/lib/stack.ts +++ b/src/lib/stack.ts @@ -159,10 +159,11 @@ export class Stack { }; } else { livePreviewParams = { - live_preview: null, - contentTypeUid: null, - entryUid: null, - preview_timestamp: null, + ...livePreviewParams, + live_preview: "", + contentTypeUid: "", + entryUid: "", + preview_timestamp: "", include_applied_variants: false, }; } diff --git a/test/unit/cache.spec.ts b/test/unit/cache.spec.ts index fd10d576..d1706dc0 100644 --- a/test/unit/cache.spec.ts +++ b/test/unit/cache.spec.ts @@ -28,13 +28,13 @@ describe('Cache handleRequest function', () => { describe('NETWORK_ELSE_CACHE policy', () => { it('should return network response when proper response is received', async () => { const cacheOptions = { policy: Policy.NETWORK_ELSE_CACHE, maxAge: 3600 }; - const defaultAdapter = jest.fn((_config) => ({ data: 'foo' })); + const defaultAdapter = jest.fn((_config) => ({ data: JSON.stringify('foo') })); const cacheStore = new PersistanceStore(cacheOptions); await handleRequest(cacheOptions, apiKey, defaultAdapter, resolve, reject, config); expect(defaultAdapter).toHaveBeenCalledWith(config); - expect(resolve).toBeCalledWith('foo'); + expect(resolve).toBeCalledWith({"data": "foo"}); expect(reject).not.toBeCalled(); cacheStore.removeItem(apiKey, config.contentTypeUid); @@ -97,14 +97,14 @@ describe('Cache handleRequest function', () => { }); it('should return api response when proper cache is not available', async () => { const cacheOptions = { policy: Policy.CACHE_THEN_NETWORK, maxAge: 3600 }; - const defaultAdapter = jest.fn((_config) => ({ data: 'foo' })); + const defaultAdapter = jest.fn((_config) => ({ data: JSON.stringify('foo') })); const cacheStore = new PersistanceStore(cacheOptions); await handleRequest(cacheOptions, apiKey, defaultAdapter, resolve, reject, config); expect(defaultAdapter).toHaveBeenCalled(); - expect(resolve).toBeCalledWith('foo'); + expect(resolve).toBeCalledWith({"data": "foo"}); expect(reject).not.toBeCalled(); cacheStore.removeItem(apiKey, config.contentTypeUid); @@ -150,13 +150,13 @@ describe('Cache handleRequest function', () => { it('should return network response data when cache is not available', async () => { const cacheOptions = { policy: Policy.CACHE_ELSE_NETWORK, maxAge: 3600 }; - const defaultAdapter = jest.fn((_config) => ({ data: 'foo' })); + const defaultAdapter = jest.fn((_config) => ({ data: JSON.stringify('foo') })); const cacheStore = new PersistanceStore(cacheOptions); await handleRequest(cacheOptions, apiKey, defaultAdapter, resolve, reject, config); expect(defaultAdapter).toHaveBeenCalledWith(config); - expect(resolve).toBeCalledWith('foo'); + expect(resolve).toBeCalledWith({"data": "foo"}); expect(reject).not.toBeCalled(); cacheStore.removeItem(apiKey, config.contentTypeUid); diff --git a/test/unit/persistance/preference-store.spec.ts b/test/unit/persistance/preference-store.spec.ts index f55997a6..40be6606 100644 --- a/test/unit/persistance/preference-store.spec.ts +++ b/test/unit/persistance/preference-store.spec.ts @@ -7,35 +7,35 @@ describe('persistance store intiialization test', () => { expect(persistance).toBeDefined(); expect(persistance.config).toBeDefined(); expect(persistance.config.maxAge).toEqual(86400000); - expect(persistance.config.storageType).toEqual('localStorage'); + expect(persistance.config.storeType).toEqual('localStorage'); }); it('should initialize persistance with name and local storage type ', () => { - const storageType = 'localStorage'; - const persistance = makePersistance({ storageType }); + const storeType = 'localStorage'; + const persistance = makePersistance({ storeType }); expect(persistance).toBeDefined(); expect(persistance.config).toBeDefined(); expect(persistance.config.maxAge).toEqual(86400000); - expect(persistance.config.storageType).toEqual(storageType); + expect(persistance.config.storeType).toEqual(storeType); }); it('should initialize persistance with name and memory storage type ', () => { - const storageType = 'memoryStorage'; - const persistance = makePersistance({ storageType }); + const storeType = 'memoryStorage'; + const persistance = makePersistance({ storeType }); expect(persistance).toBeDefined(); expect(persistance.config).toBeDefined(); expect(persistance.config.maxAge).toEqual(86400000); - expect(persistance.config.storageType).toEqual(storageType); + expect(persistance.config.storeType).toEqual(storeType); }); it('should initialize persistance with name and local storage type ', () => { - const storageType = 'customStorage'; - const persistance = makePersistance({ storageType }); + const storeType = 'customStorage'; + const persistance = makePersistance({ storeType }); expect(persistance).toBeDefined(); expect(persistance.config).toBeDefined(); expect(persistance.config.maxAge).toEqual(86400000); - expect(persistance.config.storageType).toEqual(storageType); + expect(persistance.config.storeType).toEqual(storeType); }); it('should throw error on custom storage without storage', () => { - const config: any = { name: 'foobar', storageType: 'customStorage' }; + const config: any = { name: 'foobar', storeType: 'customStorage' }; config.storage = ''; const persistance = () => { new PersistanceStore(config); @@ -162,6 +162,6 @@ describe('persistance with 0 maxAge', () => { }); }); -function makePersistance(config: { storageType: StorageType | 'customStorage' }) { - return new PersistanceStore({ storageType: config.storageType, storage: memoryStorage }); +function makePersistance(config: { storeType: StorageType | 'customStorage' }) { + return new PersistanceStore({ storeType: config.storeType, storage: memoryStorage }); } diff --git a/test/unit/stack.spec.ts b/test/unit/stack.spec.ts index ca955188..bc6dd0b3 100644 --- a/test/unit/stack.spec.ts +++ b/test/unit/stack.spec.ts @@ -96,10 +96,11 @@ describe('Stack class tests', () => { stack.livePreviewQuery(query); expect(stack.getClient().stackConfig.live_preview).toEqual({ - live_preview: null, - contentTypeUid: null, - entryUid: null, - preview_timestamp: null, + live_preview: '', + contentTypeUid: '', + entryUid: '', + enable: false, + preview_timestamp: '', include_applied_variants: false, }); });