diff --git a/index.d.ts b/index.d.ts index 18d52b84..7eac8535 100644 --- a/index.d.ts +++ b/index.d.ts @@ -22,7 +22,8 @@ export class Utils { export enum Region { US = "us", EU = "eu", - AZURE_NA = "azure-na" + AZURE_NA = "azure-na", + AZURE_EU = "azure-eu" } //Enum for Contentstack CachePolicy @@ -37,11 +38,11 @@ export enum CachePolicy { // Sync Result export interface SyncResult { items: Array; - paginationToken?: string; - syncToken?: string; + pagination_token?: string; + sync_token?: string; skip: number; limit: number; - totalCount: number; + total_count: number; } // Contentstack Config @@ -209,6 +210,9 @@ export class Entry { includeSchema(): this; includeReferenceContentTypeUID(): this; includeContentType(): this; + /** + * @deprecated since version 3.3.0 + */ includeOwner(): this; toJSON(): this; addParam(key: string, value: any): this; diff --git a/package-lock.json b/package-lock.json index 74aa1c24..0000074c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "contentstack", - "version": "3.16.1", + "version": "3.17.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1899,9 +1899,9 @@ } }, "@types/eslint": { - "version": "8.21.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.21.1.tgz", - "integrity": "sha512-rc9K8ZpVjNcLs8Fp0dkozd5Pt2Apk1glO4Vgz8ix1u6yFByxfqo5Yavpy65o+93TAe24jr7v+eSBtFLvOQtCRQ==", + "version": "8.21.3", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.21.3.tgz", + "integrity": "sha512-fa7GkppZVEByMWGbTtE5MbmXWJTVbrjjaS8K6uQj+XtuuUv1fsuPAxhygfqLmsb/Ufb3CV8deFCpiMfAgi00Sw==", "dev": true, "requires": { "@types/estree": "*", @@ -7674,24 +7674,6 @@ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - }, - "dependencies": { - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } - } - }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", @@ -8403,7 +8385,7 @@ "psychic-ui": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/psychic-ui/-/psychic-ui-1.0.8.tgz", - "integrity": "sha1-Um7jHW8pSnq7tutjpN2b5D+9gBI=", + "integrity": "sha512-VGvdvRIXGxmhkUbpErWXxJUEvECmyUMFznJ2A6Zlfl+3d6UzmQWTPagrdBfLBcVj67JLnSH/dTVnN7kB1GlKZg==", "dev": true }, "punycode": { @@ -8419,9 +8401,9 @@ "dev": true }, "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.11.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.1.tgz", + "integrity": "sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==", "requires": { "side-channel": "^1.0.4" } @@ -10442,15 +10424,15 @@ } }, "tap-html": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tap-html/-/tap-html-1.0.1.tgz", - "integrity": "sha512-CQYBnps1oWyf2d2g0ytiq/PsgLRmH6lU2x9qLN1b4XPxmoNmx3+orbAge6Le6LLJ26BnfTPR3iQU0J7xnqhB1w==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tap-html/-/tap-html-1.1.0.tgz", + "integrity": "sha512-Fle5aqZLE+sMyBDnQykv0S92mY/mcY5chId0eL8PajpkYGUMbAY4642snsXFRx2gPMHUohbDBfxHJ8l/S7Ky6Q==", "dev": true, "requires": { "duplexer": "^0.1.1", "psychic-ui": "^1.0.7", - "tap-parser": "^9.3.2", - "through2": "^3.0.1" + "tap-parser": "^12.0.1", + "through2": "^4.0.2" } }, "tap-json": { @@ -10570,14 +10552,30 @@ } }, "tap-parser": { - "version": "9.3.3", - "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-9.3.3.tgz", - "integrity": "sha512-VlC7tlSZ3EGt2qPLSa9CTJepNkc2yCh7uzhzAF5DxnuujeKbFbKxMA+fxtTWEN2j/KgfGi+mgooiZPKkOhEQyw==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-12.0.1.tgz", + "integrity": "sha512-MHeYGwFyDxmIbDWoOp52gQze6iBh6R2c9rgfhyhCsxMHAbgggEDn0EmL/RFtra8XJY4fjV6E4CiyBTiHkiCBsg==", "dev": true, "requires": { - "events-to-array": "^1.0.1", - "minipass": "^2.2.0", - "tap-yaml": "^1.0.0" + "events-to-array": "^2.0.3", + "tap-yaml": "^1.0.2" + }, + "dependencies": { + "events-to-array": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/events-to-array/-/events-to-array-2.0.3.tgz", + "integrity": "sha512-f/qE2gImHRa4Cp2y1stEOSgw8wTFyUdVJX7G//bMwbaV9JqISFxg99NbmVQeP7YLnDUZ2un851jlaDrlpmGehQ==", + "dev": true + }, + "tap-yaml": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tap-yaml/-/tap-yaml-1.0.2.tgz", + "integrity": "sha512-GegASpuqBnRNdT1U+yuUPZ8rEU64pL35WPBpCISWwff4dErS2/438barz7WFJl4Nzh3Y05tfPidZnH+GaV1wMg==", + "dev": true, + "requires": { + "yaml": "^1.10.2" + } + } } }, "tap-yaml": { @@ -10661,9 +10659,9 @@ } }, "terser": { - "version": "5.16.5", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.5.tgz", - "integrity": "sha512-qcwfg4+RZa3YvlFh0qjifnzBHjKGNbtDo9yivMqMFDy9Q6FSaQWSB/j1xKhsoUFJIqDOM3TsN6D5xbrMrFcHbg==", + "version": "5.16.8", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.8.tgz", + "integrity": "sha512-QI5g1E/ef7d+PsDifb+a6nnVgC4F22Bg6T0xrBrz6iloVB4PUkkunp6V8nzoOOZJIzjWVdAGqCdlKlhLq/TbIA==", "dev": true, "requires": { "@jridgewell/source-map": "^0.3.2", @@ -10697,16 +10695,27 @@ } }, "terser-webpack-plugin": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", - "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz", + "integrity": "sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==", "dev": true, "requires": { - "@jridgewell/trace-mapping": "^0.3.14", + "@jridgewell/trace-mapping": "^0.3.17", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "terser": "^5.14.1" + "serialize-javascript": "^6.0.1", + "terser": "^5.16.5" + }, + "dependencies": { + "serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + } } }, "test-exclude": { @@ -10733,19 +10742,18 @@ "dev": true }, "through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", "dev": true, "requires": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" + "readable-stream": "3" }, "dependencies": { "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -11109,9 +11117,9 @@ "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" }, "webpack": { - "version": "5.75.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", - "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", + "version": "5.76.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.3.tgz", + "integrity": "sha512-18Qv7uGPU8b2vqGeEEObnfICyw2g39CHlDEK4I7NK13LOur1d0HGmGNKGT58Eluwddpn3oEejwvBPoP4M7/KSA==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.3", @@ -11158,28 +11166,10 @@ "update-browserslist-db": "^1.0.10" } }, - "caniuse-lite": { - "version": "1.0.30001458", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001458.tgz", - "integrity": "sha512-lQ1VlUUq5q9ro9X+5gOEyH7i3vm+AYVT1WDCVB69XOZ17KZRhnZ9J0Sqz7wTHQaLBJccNCHq8/Ww5LlOIZbB0w==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.311", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.311.tgz", - "integrity": "sha512-RoDlZufvrtr2Nx3Yx5MB8jX3aHIxm8nRWPJm3yVvyHmyKaRvn90RjzB6hNnt0AkhS3IInJdyRfQb4mWhPvUjVw==", - "dev": true - }, "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "node-releases": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true } } diff --git a/package.json b/package.json index b8f0defc..c38dd1fa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "contentstack", - "version": "3.16.1", + "version": "3.17.0", "description": "Contentstack Javascript SDK", "homepage": "https://www.contentstack.com/", "author": { @@ -90,14 +90,14 @@ "request": "^2.88.2", "string-replace-loader": "1.3.0", "tap": "^16.3.4", - "tap-html": "^1.0.1", + "tap-html": "^1.1.0", "tap-json": "1.0.0", "tape": "4.8.0", - "terser-webpack-plugin": "^5.3.6", + "terser-webpack-plugin": "^5.3.7", "ts-jest": "^27.1.5", "typescript": "^4.9.5", "uglify-js": "2.8.29", - "webpack": "^5.75.0", + "webpack": "^5.76.3", "webpack-cli": "^4.10.0", "webpack-md5-hash": "0.0.5", "webpack-merge": "4.1.0", @@ -108,6 +108,6 @@ "es6-promise": "^4.1.1", "isomorphic-fetch": "^3.0.0", "localStorage": "1.0.4", - "qs": "^6.11.0" + "qs": "^6.11.1" } } diff --git a/src/core/contentstackregion.js b/src/core/contentstackregion.js index 69455022..c79734c5 100644 --- a/src/core/contentstackregion.js +++ b/src/core/contentstackregion.js @@ -1,7 +1,8 @@ const ContentstackRegion = { EU: "eu", US: "us", - AZURE_NA: "azure-na" + AZURE_NA: "azure-na", + AZURE_EU: "azure-eu" }; export default ContentstackRegion; diff --git a/src/core/lib/request.js b/src/core/lib/request.js index c2f113c9..1f623ca3 100755 --- a/src/core/lib/request.js +++ b/src/core/lib/request.js @@ -124,16 +124,19 @@ function fetchRetry(stack, queryParams, fetchOptions, resolve, reject, retryDela }) } else { + const {status, statusText} = response data.then((json) => { + const {error_message, error_code, errors} = json + const errorDetails = { error_message, error_code, errors, status, statusText } if (fetchOptions.retryCondition && fetchOptions.retryCondition(response)) { - onError(json) + onError(errorDetails) } else { - if (fetchOptions.debug) fetchOptions.logHandler('error', json); - reject(json) + if (fetchOptions.debug) fetchOptions.logHandler('error', errorDetails); + reject(errorDetails) } }).catch(() => { - if (fetchOptions.debug) fetchOptions.logHandler('error', {status: response.status, statusText: response.statusText}); - reject({status: response.status, statusText: response.statusText}) + if (fetchOptions.debug) fetchOptions.logHandler('error', {status, statusText}); + reject({status, statusText}) }); } }).catch((error) => { diff --git a/src/core/lib/utils.js b/src/core/lib/utils.js index 602b64ea..7714e358 100755 --- a/src/core/lib/utils.js +++ b/src/core/lib/utils.js @@ -347,7 +347,6 @@ export function sendRequest(queryObject, options) { if (err || !_data) { callback(true, resolve, reject); } else { - const originalData = JSON.parse(JSON.stringify(_data)); try { const doesQueryRequestForReferences = @@ -388,25 +387,16 @@ export function sendRequest(queryObject, options) { } } catch (error) { } - - await self.provider.set( - hashQuery, - originalData, - function (err) { - try { - - if (err) reject(err); - if (!tojson) - _data = - resultWrapper(_data); - return resolve( - spreadResult(_data) - ); - } catch (e) { - return reject(e); - } - } - ); + try { + if (!tojson) + _data = + resultWrapper(_data); + return resolve( + spreadResult(_data) + ); + } catch (e) { + return reject(e); + } } } catch (e) { return reject(e); diff --git a/src/core/modules/assets.js b/src/core/modules/assets.js index 4834037c..399f2017 100755 --- a/src/core/modules/assets.js +++ b/src/core/modules/assets.js @@ -81,9 +81,9 @@ export default class Assets { /** * @method includeFallback - * @memberOf Entry + * @memberOf Asset * @description Include the fallback locale publish content, if specified locale content is not publish. - * @example stack.ContentType(contentType_uid).Entry(entry_uid).includeFallback().fetch() + * @example stack.ContentType(contentType_uid).Assets(assetUid).includeFallback().fetch() * @returns {Asset} * @instance */ @@ -91,7 +91,18 @@ export default class Assets { this._query['include_fallback'] = true; return this; } - + /** + * @method includeMetadata + * @memberOf Asset + * @description Include the metadata for getting metadata content for the asset. + * @example stack.ContentType(contentType_uid).Assets(assetUid).includeMetadata().fetch() + * @returns {Asset} + * @instance + */ + includeMetadata() { + this._query['include_metadata'] = true; + return this; + } /** * Fetches a particular asset based on the provided asset UID. * @memberOf Assets diff --git a/src/core/modules/entry.js b/src/core/modules/entry.js index 9d7feddb..c0015dce 100755 --- a/src/core/modules/entry.js +++ b/src/core/modules/entry.js @@ -257,6 +257,19 @@ export default class Entry { this._query['include_branch'] = true; return this; } + + /** + * @method includeMetadata + * @memberOf Entry + * @description Include the metadata for getting metadata content for the entry. + * @example stack.ContentType(contentType_uid).Entry(entry_uid).includeMetadata().fetch() + * @returns {Entry} + * @instance + */ + includeMetadata() { + this._query['include_metadata'] = true; + return this; + } /** * @method includeContentType