diff --git a/.talismanrc b/.talismanrc index e621bfa6..37810c2b 100644 --- a/.talismanrc +++ b/.talismanrc @@ -5,7 +5,7 @@ fileignoreconfig: - filename: test/utils/mocks.ts checksum: a1cb4b1890a584f1facd30f2a0974c97a66f91417022be79d00516338e244227 - filename: package-lock.json - checksum: 9268723da89e00cb39a558ae443ca1bff63255599f5ab22afa221c19c93572c5 + checksum: af15bd4d7d590b3f88eee77ff66a06561b03888a30bd5e2b11b899f9ba4aca00 - filename: test/typescript/taxonomy.test.ts checksum: e4bdf633e147fd60d929d379f20c814eed5f68b11421d7b53ec8826e9142de37 - filename: src/core/modules/taxonomy.js diff --git a/LICENSE.txt b/LICENSE.txt index adddc83c..eebdf5a6 100755 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,7 +1,7 @@ The MIT License (MIT) -Copyright (c) 2016-2023 Contentstack +Copyright (c) 2016-2024 Contentstack Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/package-lock.json b/package-lock.json index 8b5e416d..f594abb6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "@contentstack/delivery", "version": "0.0.1", "dependencies": { - "@contentstack/core": "file:contentstack-core-1.0.0.tgz", + "@contentstack/core": "^1.0.1", "@contentstack/utils": "^1.1.3", "@types/humps": "^2.0.2", "dotenv": "^16.3.1", @@ -1855,11 +1855,11 @@ "dev": true }, "node_modules/@contentstack/core": { - "version": "1.0.0", - "resolved": "file:contentstack-core-1.0.0.tgz", - "integrity": "sha512-Zqs5/L/Ryr21tVw5SpWBjCN7pJQ+B0KUHFQWryAfXKVqFqch0fo5wSohXvKCya+LZjc/yBvzvRounHQyqziV4g==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@contentstack/core/-/core-1.0.1.tgz", + "integrity": "sha512-D2sv/5soSPEXGRntRgOzN9e0vfZGQebClfD6ghHoHQEaMyZb2Kt9V6tT/qsiz56Vcbno7X1G9j2ydaWUWLdLTQ==", "dependencies": { - "axios": "^1.6.2", + "axios": "^1.6.5", "axios-mock-adapter": "^1.22.0", "lodash": "^4.17.21", "qs": "^6.11.0", @@ -3007,159 +3007,6 @@ "node": ">= 10" } }, - "node_modules/@nx/nx-darwin-x64": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-17.2.3.tgz", - "integrity": "sha512-oabtuc8j9pzCUI1RPihyKCVvZL1gLZa+n9M0w6nkHLYBu+D+Ot1NxW2m+AT5+H8euKhr9ozk+A4BySuq+Wr+Yg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-freebsd-x64": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-17.2.3.tgz", - "integrity": "sha512-2hKiqLwBJwZT5lZ2hO/MVhCqfre746zy+QhMptwK4b6lVVdC/4x75bkQA7VoInIg7357DTem2PSyB4/0d90TaQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-arm-gnueabihf": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-17.2.3.tgz", - "integrity": "sha512-mG1QNFRvN4BnYbQwLhKH5ewvF70tYYsijPR40opptrJYdi0jBjv50yRgRUzrrDjkyYiBW2ARzcEPVYqP39Rltw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-arm64-gnu": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-17.2.3.tgz", - "integrity": "sha512-w5fbbS9wxiFG/mUd9bm3doHautyzRTk16K8a3M4t/M6c+JciTunTIivUC/rQpclyFhq0T8oKx2n7ZPHrxHIbFQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-arm64-musl": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-17.2.3.tgz", - "integrity": "sha512-1jupF1CJGw5DsO03/zkqhsk8vbOijf4ldpe4OrGJimKomIvtlvbUikjy7QupGBsHfg2MEs5wWa/1W5W9nYWocA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-x64-gnu": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-17.2.3.tgz", - "integrity": "sha512-S5eJpbUHrmQNxGmdUg2trwtajBhablyV7fArWsI/Nvhe75aVZLAVHLDuEKJgt1U9GtBU65qx+Ne25zlGC9xEQg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-x64-musl": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-17.2.3.tgz", - "integrity": "sha512-abLPQi1egb3/SM3HwbJkHX1Z9Mvvmf0i2FQ4/tPJFSffJhfogEBGhcP5jtrVSn5dtPwFRQgrA2zcCUVtzoxA3w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-win32-arm64-msvc": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-17.2.3.tgz", - "integrity": "sha512-dIIKVRBjz6DXpZGbljJ7g3jd2T1tkCl7xnqHARpvrBvOPHucKbmm2aK43AdM/uEorfGHR0J+SqDb8uVUVeE9CQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-win32-x64-msvc": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-17.2.3.tgz", - "integrity": "sha512-E9nNdHHQLhyZd/sOewAko3ZIgK4mrAmNKVcb1bVVYMgKad786OjMoUkQbDobgEV6pO4hKvQXGDFXg4bNwpT6Qw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, "node_modules/@nx/workspace": { "version": "16.10.0", "resolved": "https://registry.npmjs.org/@nx/workspace/-/workspace-16.10.0.tgz", @@ -3206,150 +3053,6 @@ "node": ">= 10" } }, - "node_modules/@nx/workspace/node_modules/@nx/nx-darwin-x64": { - "version": "16.10.0", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-16.10.0.tgz", - "integrity": "sha512-ypi6YxwXgb0kg2ixKXE3pwf5myVNUgWf1CsV5OzVccCM8NzheMO51KDXTDmEpXdzUsfT0AkO1sk5GZeCjhVONg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/workspace/node_modules/@nx/nx-freebsd-x64": { - "version": "16.10.0", - "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-16.10.0.tgz", - "integrity": "sha512-UeEYFDmdbbDkTQamqvtU8ibgu5jQLgFF1ruNb/U4Ywvwutw2d4ruOMl2e0u9hiNja9NFFAnDbvzrDcMo7jYqYw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/workspace/node_modules/@nx/nx-linux-arm-gnueabihf": { - "version": "16.10.0", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-16.10.0.tgz", - "integrity": "sha512-WV3XUC2DB6/+bz1sx+d1Ai9q2Cdr+kTZRN50SOkfmZUQyEBaF6DRYpx/a4ahhxH3ktpNfyY8Maa9OEYxGCBkQA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/workspace/node_modules/@nx/nx-linux-arm64-gnu": { - "version": "16.10.0", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-16.10.0.tgz", - "integrity": "sha512-aWIkOUw995V3ItfpAi5FuxQ+1e9EWLS1cjWM1jmeuo+5WtaKToJn5itgQOkvSlPz+HSLgM3VfXMvOFALNk125g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/workspace/node_modules/@nx/nx-linux-arm64-musl": { - "version": "16.10.0", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-16.10.0.tgz", - "integrity": "sha512-uO6Gg+irqpVcCKMcEPIQcTFZ+tDI02AZkqkP7koQAjniLEappd8DnUBSQdcn53T086pHpdc264X/ZEpXFfrKWQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/workspace/node_modules/@nx/nx-linux-x64-gnu": { - "version": "16.10.0", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-16.10.0.tgz", - "integrity": "sha512-134PW/u/arNFAQKpqMJniC7irbChMPz+W+qtyKPAUXE0XFKPa7c1GtlI/wK2dvP9qJDZ6bKf0KtA0U/m2HMUOA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/workspace/node_modules/@nx/nx-linux-x64-musl": { - "version": "16.10.0", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-16.10.0.tgz", - "integrity": "sha512-q8sINYLdIJxK/iUx9vRk5jWAWb/2O0PAbOJFwv4qkxBv4rLoN7y+otgCZ5v0xfx/zztFgk/oNY4lg5xYjIso2Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/workspace/node_modules/@nx/nx-win32-arm64-msvc": { - "version": "16.10.0", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-16.10.0.tgz", - "integrity": "sha512-moJkL9kcqxUdJSRpG7dET3UeLIciwrfP08mzBQ12ewo8K8FzxU8ZUsTIVVdNrwt01CXOdXoweGfdQLjJ4qTURA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/workspace/node_modules/@nx/nx-win32-x64-msvc": { - "version": "16.10.0", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-16.10.0.tgz", - "integrity": "sha512-5iV2NKZnzxJwZZ4DM5JVbRG/nkhAbzEskKaLBB82PmYGKzaDHuMHP1lcPoD/rtYMlowZgNA/RQndfKvPBPwmXA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, "node_modules/@nx/workspace/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -4262,11 +3965,11 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/axios": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", - "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz", + "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==", "dependencies": { - "follow-redirects": "^1.15.0", + "follow-redirects": "^1.15.4", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -9869,14 +9572,15 @@ } }, "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz", + "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==", "dependencies": { "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.2", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -12492,10 +12196,11 @@ "dev": true }, "@contentstack/core": { - "version": "file:contentstack-core-1.0.0.tgz", - "integrity": "sha512-Zqs5/L/Ryr21tVw5SpWBjCN7pJQ+B0KUHFQWryAfXKVqFqch0fo5wSohXvKCya+LZjc/yBvzvRounHQyqziV4g==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@contentstack/core/-/core-1.0.1.tgz", + "integrity": "sha512-D2sv/5soSPEXGRntRgOzN9e0vfZGQebClfD6ghHoHQEaMyZb2Kt9V6tT/qsiz56Vcbno7X1G9j2ydaWUWLdLTQ==", "requires": { - "axios": "^1.6.2", + "axios": "^1.6.5", "axios-mock-adapter": "^1.22.0", "lodash": "^4.17.21", "qs": "^6.11.0", @@ -13385,78 +13090,6 @@ "optional": true, "peer": true }, - "@nx/nx-darwin-x64": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-17.2.3.tgz", - "integrity": "sha512-oabtuc8j9pzCUI1RPihyKCVvZL1gLZa+n9M0w6nkHLYBu+D+Ot1NxW2m+AT5+H8euKhr9ozk+A4BySuq+Wr+Yg==", - "dev": true, - "optional": true, - "peer": true - }, - "@nx/nx-freebsd-x64": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-17.2.3.tgz", - "integrity": "sha512-2hKiqLwBJwZT5lZ2hO/MVhCqfre746zy+QhMptwK4b6lVVdC/4x75bkQA7VoInIg7357DTem2PSyB4/0d90TaQ==", - "dev": true, - "optional": true, - "peer": true - }, - "@nx/nx-linux-arm-gnueabihf": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-17.2.3.tgz", - "integrity": "sha512-mG1QNFRvN4BnYbQwLhKH5ewvF70tYYsijPR40opptrJYdi0jBjv50yRgRUzrrDjkyYiBW2ARzcEPVYqP39Rltw==", - "dev": true, - "optional": true, - "peer": true - }, - "@nx/nx-linux-arm64-gnu": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-17.2.3.tgz", - "integrity": "sha512-w5fbbS9wxiFG/mUd9bm3doHautyzRTk16K8a3M4t/M6c+JciTunTIivUC/rQpclyFhq0T8oKx2n7ZPHrxHIbFQ==", - "dev": true, - "optional": true, - "peer": true - }, - "@nx/nx-linux-arm64-musl": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-17.2.3.tgz", - "integrity": "sha512-1jupF1CJGw5DsO03/zkqhsk8vbOijf4ldpe4OrGJimKomIvtlvbUikjy7QupGBsHfg2MEs5wWa/1W5W9nYWocA==", - "dev": true, - "optional": true, - "peer": true - }, - "@nx/nx-linux-x64-gnu": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-17.2.3.tgz", - "integrity": "sha512-S5eJpbUHrmQNxGmdUg2trwtajBhablyV7fArWsI/Nvhe75aVZLAVHLDuEKJgt1U9GtBU65qx+Ne25zlGC9xEQg==", - "dev": true, - "optional": true, - "peer": true - }, - "@nx/nx-linux-x64-musl": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-17.2.3.tgz", - "integrity": "sha512-abLPQi1egb3/SM3HwbJkHX1Z9Mvvmf0i2FQ4/tPJFSffJhfogEBGhcP5jtrVSn5dtPwFRQgrA2zcCUVtzoxA3w==", - "dev": true, - "optional": true, - "peer": true - }, - "@nx/nx-win32-arm64-msvc": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-17.2.3.tgz", - "integrity": "sha512-dIIKVRBjz6DXpZGbljJ7g3jd2T1tkCl7xnqHARpvrBvOPHucKbmm2aK43AdM/uEorfGHR0J+SqDb8uVUVeE9CQ==", - "dev": true, - "optional": true, - "peer": true - }, - "@nx/nx-win32-x64-msvc": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-17.2.3.tgz", - "integrity": "sha512-E9nNdHHQLhyZd/sOewAko3ZIgK4mrAmNKVcb1bVVYMgKad786OjMoUkQbDobgEV6pO4hKvQXGDFXg4bNwpT6Qw==", - "dev": true, - "optional": true, - "peer": true - }, "@nx/workspace": { "version": "16.10.0", "resolved": "https://registry.npmjs.org/@nx/workspace/-/workspace-16.10.0.tgz", @@ -13491,69 +13124,6 @@ "dev": true, "optional": true }, - "@nx/nx-darwin-x64": { - "version": "16.10.0", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-16.10.0.tgz", - "integrity": "sha512-ypi6YxwXgb0kg2ixKXE3pwf5myVNUgWf1CsV5OzVccCM8NzheMO51KDXTDmEpXdzUsfT0AkO1sk5GZeCjhVONg==", - "dev": true, - "optional": true - }, - "@nx/nx-freebsd-x64": { - "version": "16.10.0", - "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-16.10.0.tgz", - "integrity": "sha512-UeEYFDmdbbDkTQamqvtU8ibgu5jQLgFF1ruNb/U4Ywvwutw2d4ruOMl2e0u9hiNja9NFFAnDbvzrDcMo7jYqYw==", - "dev": true, - "optional": true - }, - "@nx/nx-linux-arm-gnueabihf": { - "version": "16.10.0", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-16.10.0.tgz", - "integrity": "sha512-WV3XUC2DB6/+bz1sx+d1Ai9q2Cdr+kTZRN50SOkfmZUQyEBaF6DRYpx/a4ahhxH3ktpNfyY8Maa9OEYxGCBkQA==", - "dev": true, - "optional": true - }, - "@nx/nx-linux-arm64-gnu": { - "version": "16.10.0", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-16.10.0.tgz", - "integrity": "sha512-aWIkOUw995V3ItfpAi5FuxQ+1e9EWLS1cjWM1jmeuo+5WtaKToJn5itgQOkvSlPz+HSLgM3VfXMvOFALNk125g==", - "dev": true, - "optional": true - }, - "@nx/nx-linux-arm64-musl": { - "version": "16.10.0", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-16.10.0.tgz", - "integrity": "sha512-uO6Gg+irqpVcCKMcEPIQcTFZ+tDI02AZkqkP7koQAjniLEappd8DnUBSQdcn53T086pHpdc264X/ZEpXFfrKWQ==", - "dev": true, - "optional": true - }, - "@nx/nx-linux-x64-gnu": { - "version": "16.10.0", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-16.10.0.tgz", - "integrity": "sha512-134PW/u/arNFAQKpqMJniC7irbChMPz+W+qtyKPAUXE0XFKPa7c1GtlI/wK2dvP9qJDZ6bKf0KtA0U/m2HMUOA==", - "dev": true, - "optional": true - }, - "@nx/nx-linux-x64-musl": { - "version": "16.10.0", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-16.10.0.tgz", - "integrity": "sha512-q8sINYLdIJxK/iUx9vRk5jWAWb/2O0PAbOJFwv4qkxBv4rLoN7y+otgCZ5v0xfx/zztFgk/oNY4lg5xYjIso2Q==", - "dev": true, - "optional": true - }, - "@nx/nx-win32-arm64-msvc": { - "version": "16.10.0", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-16.10.0.tgz", - "integrity": "sha512-moJkL9kcqxUdJSRpG7dET3UeLIciwrfP08mzBQ12ewo8K8FzxU8ZUsTIVVdNrwt01CXOdXoweGfdQLjJ4qTURA==", - "dev": true, - "optional": true - }, - "@nx/nx-win32-x64-msvc": { - "version": "16.10.0", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-16.10.0.tgz", - "integrity": "sha512-5iV2NKZnzxJwZZ4DM5JVbRG/nkhAbzEskKaLBB82PmYGKzaDHuMHP1lcPoD/rtYMlowZgNA/RQndfKvPBPwmXA==", - "dev": true, - "optional": true - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -14331,11 +13901,11 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "axios": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", - "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz", + "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==", "requires": { - "follow-redirects": "^1.15.0", + "follow-redirects": "^1.15.4", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -18441,14 +18011,15 @@ } }, "set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz", + "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==", "requires": { "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.2", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.1" } }, "shallow-clone": { diff --git a/package.json b/package.json index 1112fff3..674b235f 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "build:types": "node tools/cleanup types && tsc -p config/tsconfig.types.json" }, "dependencies": { - "@contentstack/core": "file:contentstack-core-1.0.0.tgz", + "@contentstack/core": "^1.0.1", "@contentstack/utils": "^1.1.3", "@types/humps": "^2.0.2", "dotenv": "^16.3.1", diff --git a/src/lib/contentstack.ts b/src/lib/contentstack.ts index 2913f0b9..7d286f60 100644 --- a/src/lib/contentstack.ts +++ b/src/lib/contentstack.ts @@ -80,25 +80,25 @@ export function Stack(config: StackConfig): StackClass { client.interceptors.request.use(retryRequestHandler); client.interceptors.response.use(retryResponseHandler, errorHandler); - // if (config.plugins) { - // client.interceptors.request.use((reqConfig: InternalAxiosRequestConfig): InternalAxiosRequestConfig => { - // if (config && config.plugins) - // config.plugins.forEach((pluginInstance) => { - // reqConfig = pluginInstance.onRequest(reqConfig); - // }); + if (config.plugins) { + client.interceptors.request.use((reqConfig: InternalAxiosRequestConfig): InternalAxiosRequestConfig => { + if (config && config.plugins) + config.plugins.forEach((pluginInstance) => { + reqConfig = pluginInstance.onRequest(reqConfig); + }); + + return reqConfig; + }); - // return reqConfig; - // }); + client.interceptors.response.use((response: AxiosResponse) => { + if (config && config.plugins) + config.plugins.forEach((pluginInstance) => { + response = pluginInstance.onResponse(response.request, response, response.data); + }); - // client.interceptors.response.use((response: AxiosResponse) => { - // if (config && config.plugins) - // config.plugins.forEach((pluginInstance) => { - // response = pluginInstance.onResponse(response.request, response, response.data); - // }); - - // return response; - // }); - // } + return response; + }); + } return new StackClass(client, config); } diff --git a/test/unit/contentstack.spec.ts b/test/unit/contentstack.spec.ts index 5773a583..8e2d1e35 100644 --- a/test/unit/contentstack.spec.ts +++ b/test/unit/contentstack.spec.ts @@ -2,12 +2,16 @@ import exp = require('constants'); import * as core from '@contentstack/core'; import * as Contentstack from '../../src/lib/contentstack'; import { Stack } from '../../src/lib/stack'; -import { Region, StackConfig } from '../../src/lib/types'; +import { Policy, Region, StackConfig } from '../../src/lib/types'; import { DUMMY_URL, HOST_EU_REGION, HOST_URL } from '../utils/constant'; +import { AxiosRequestConfig, AxiosResponse } from 'axios'; jest.mock('@contentstack/core'); const createHttpClientMock = >(core.httpClient); +const reqInterceptor = jest.fn(); +const resInterceptor = jest.fn(); + describe('Contentstack', () => { beforeEach(() => createHttpClientMock.mockReturnValue({ @@ -18,10 +22,10 @@ describe('Contentstack', () => { }, interceptors: { request: { - use: jest.fn(), + use: reqInterceptor, }, response: { - use: jest.fn(), + use: resInterceptor, }, }, }) @@ -31,6 +35,7 @@ describe('Contentstack', () => { }); const createStackInstance = (config: StackConfig) => Contentstack.Stack(config); + it('should throw error when api key is empty', (done) => { const config = { apiKey: '', @@ -161,4 +166,45 @@ describe('Contentstack', () => { expect(stackInstance).toBeInstanceOf(Stack); done(); }); + + it('should add logHandler', async () => { + const mockLogHandler = jest.fn(); + const config = { + apiKey: 'apiKey', + deliveryToken: 'delivery', + environment: 'env', + region: Region.AZURE_NA, + logHandler: mockLogHandler, + cacheOptions: { + policy: Policy.IGNORE_CACHE + } + }; + + const stackInstance = createStackInstance(config); + expect(stackInstance).toBeInstanceOf(Stack); + expect(mockLogHandler).not.toHaveBeenCalled(); + mockLogHandler.mockReset(); + }); + + it('should add plugins onRequest and onResponse as req and res interceptors when plugin is passed', (done) => { + + const mockPlugin = { + onRequest: jest.fn((request) => request), + onResponse: jest.fn((response) => response), + }; + + const stackInstance = createStackInstance({ + apiKey: 'apiKey', + deliveryToken: 'delivery', + environment: 'env', + plugins: [mockPlugin], + }); + + expect(stackInstance).toBeInstanceOf(Stack); + expect(reqInterceptor).toHaveBeenCalledWith(expect.any(Function)); + expect(resInterceptor).toHaveBeenCalledWith(expect.any(Function)); + + createHttpClientMock.mockReset(); + done(); + }); }); diff --git a/test/persistance/local-storage.spec.ts b/test/unit/persistance/local-storage.spec.ts similarity index 90% rename from test/persistance/local-storage.spec.ts rename to test/unit/persistance/local-storage.spec.ts index ecf99d50..d5da9c47 100644 --- a/test/persistance/local-storage.spec.ts +++ b/test/unit/persistance/local-storage.spec.ts @@ -1,6 +1,6 @@ -import { iGlobal } from '../../src/persistance/helper/utils'; -import { localStorage } from '../../src/persistance/storages/local-storage'; -import { Storage } from '../../src/persistance/types/storage'; +import { iGlobal } from '../../../src/persistance/helper/utils'; +import { localStorage } from '../../../src/persistance/storages/local-storage'; +import { Storage } from '../../../src/persistance/types/storage'; describe('local store', () => { let store: Storage; diff --git a/test/persistance/memory-storage.spec.ts b/test/unit/persistance/memory-storage.spec.ts similarity index 93% rename from test/persistance/memory-storage.spec.ts rename to test/unit/persistance/memory-storage.spec.ts index aaa4c6e5..fb5e3fd5 100644 --- a/test/persistance/memory-storage.spec.ts +++ b/test/unit/persistance/memory-storage.spec.ts @@ -1,5 +1,5 @@ -import { memoryStorage } from '../../src/persistance/storages/memory-storage'; -import { Storage } from '../../src/persistance/types/storage'; +import { memoryStorage } from '../../../src/persistance/storages/memory-storage'; +import { Storage } from '../../../src/persistance/types/storage'; describe('memory store', () => { let store: Storage; diff --git a/test/persistance/preference-store.spec.ts b/test/unit/persistance/preference-store.spec.ts similarity index 96% rename from test/persistance/preference-store.spec.ts rename to test/unit/persistance/preference-store.spec.ts index f5ae73c3..f55997a6 100644 --- a/test/persistance/preference-store.spec.ts +++ b/test/unit/persistance/preference-store.spec.ts @@ -1,6 +1,6 @@ -import { PersistanceStore } from '../../src/persistance/persistance-store'; -import { StorageType } from '../../src/persistance/types/storage-type'; -import { memoryStorage } from '../../src/persistance/storages/memory-storage'; +import { PersistanceStore } from '../../../src/persistance/persistance-store'; +import { StorageType } from '../../../src/persistance/types/storage-type'; +import { memoryStorage } from '../../../src/persistance/storages/memory-storage'; describe('persistance store intiialization test', () => { it('should initialize default persistance ', () => { const persistance = new PersistanceStore(); diff --git a/test/unit/plugins.spec.ts b/test/unit/plugins.spec.ts deleted file mode 100644 index 0f484048..00000000 --- a/test/unit/plugins.spec.ts +++ /dev/null @@ -1,55 +0,0 @@ -import exp = require('constants'); -import * as core from '@contentstack/core'; -import { AxiosRequestConfig, AxiosResponse } from 'axios'; -import axios from 'axios'; -import MockAdapter from 'axios-mock-adapter'; -import * as Contentstack from '../../src/lib/contentstack'; -import { Stack } from '../../src/lib/stack'; -import { StackConfig } from '../../src/lib/types'; -import { MOCK_CLIENT_OPTIONS } from '../utils/constant'; - -jest.mock('axios'); - -describe('Contentstack', () => { - - it('should add plugins to stack when plugins in config is passed', async () => { - // const spy = jest.spyOn(axios.interceptors.request, 'use'); - - // spy.mockImplementationOnce((callback) => { - // // Simulate the request interceptor logic - // const modifiedConfig = callback(config); - // // Modify the config or assert as needed - // modifiedConfig.headers.Authorization = 'Bearer yourToken'; - - // return Promise.resolve(modifiedConfig); - // }); - - const client = core.httpClient(MOCK_CLIENT_OPTIONS); - const mockClient = new MockAdapter(client as any); - - mockClient.onGet('/asset/myAsset').reply(200, {}); - class CustomPlugin { - onRequest(request: AxiosRequestConfig) { - request.data = { ...request.data, key1: 'value1' }; - - return request; - } - async onResponse(request: AxiosRequestConfig, response: AxiosResponse) { - response.data = { ...response.data, assetDetails: 'addedDetails' }; - - return response; - } - } - - const stackInstance = Contentstack.Stack({ - apiKey: 'apiKey', - deliveryToken: 'delivery', - environment: 'env', - plugins: [new CustomPlugin()], - }); - - const myasset = await stackInstance.Asset('myAsset').fetch(); - console.log('🚀 ~ file: contentstack.spec.ts:195 ~ it ~ myasset:', myasset); - expect(stackInstance).toBeInstanceOf(Stack); - }); -});