diff --git a/LICENCE b/LICENCE index f99e9ee..816ce04 100644 --- a/LICENCE +++ b/LICENCE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2024 Contentstack +Copyright (c) 2025 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/contenttype-data.js b/contenttype-data.js deleted file mode 100644 index 1457766..0000000 --- a/contenttype-data.js +++ /dev/null @@ -1,223 +0,0 @@ -'use strict'; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); -var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); -var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); -var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); -var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); -var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); -var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); -var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); -function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -var FetchContentTypes = /*#__PURE__*/function () { - function FetchContentTypes() { - (0, _classCallCheck2["default"])(this, FetchContentTypes); - } - return (0, _createClass2["default"])(FetchContentTypes, [{ - key: "getPagedData", - value: function () { - var _getPagedData = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() { - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - case "end": - return _context.stop(); - } - }, _callee); - })); - function getPagedData() { - return _getPagedData.apply(this, arguments); - } - return getPagedData; - }() - }]); -}(); -var FetchDefaultContentTypes = /*#__PURE__*/function (_FetchContentTypes) { - function FetchDefaultContentTypes() { - (0, _classCallCheck2["default"])(this, FetchDefaultContentTypes); - return _callSuper(this, FetchDefaultContentTypes, arguments); - } - (0, _inherits2["default"])(FetchDefaultContentTypes, _FetchContentTypes); - return (0, _createClass2["default"])(FetchDefaultContentTypes, [{ - key: "getPagedData", - value: function () { - var _getPagedData2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(url, config, responseKey, fn) { - var query, result; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - query = { - include_global_field_schema: true - }; - _context2.next = 3; - return fn.apply(null, [url, config, responseKey, query]); - case 3: - result = _context2.sent; - return _context2.abrupt("return", result); - case 5: - case "end": - return _context2.stop(); - } - }, _callee2); - })); - function getPagedData(_x, _x2, _x3, _x4) { - return _getPagedData2.apply(this, arguments); - } - return getPagedData; - }() - }]); -}(FetchContentTypes); -var FetchSpecifiedContentTypes = /*#__PURE__*/function (_FetchContentTypes2) { - function FetchSpecifiedContentTypes() { - (0, _classCallCheck2["default"])(this, FetchSpecifiedContentTypes); - return _callSuper(this, FetchSpecifiedContentTypes, arguments); - } - (0, _inherits2["default"])(FetchSpecifiedContentTypes, _FetchContentTypes2); - return (0, _createClass2["default"])(FetchSpecifiedContentTypes, [{ - key: "getPagedData", - value: function () { - var _getPagedData3 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(url, config, responseKey, fn) { - var query, contentTypes, referredContentTypes, referredContentTypesList, referredContentTypesData, result; - return _regenerator["default"].wrap(function _callee3$(_context3) { - while (1) switch (_context3.prev = _context3.next) { - case 0: - query = { - query: JSON.stringify({ - uid: { - $in: config.contentTypes - } - }), - include_global_field_schema: true - }; - _context3.next = 3; - return fn.apply(null, [url, config, responseKey, query]); - case 3: - contentTypes = _context3.sent; - referredContentTypes = new ReferredContentTypes(); - referredContentTypesList = referredContentTypes.getReferredContentTypes(contentTypes); - referredContentTypesData = []; - if (!referredContentTypesList.length) { - _context3.next = 12; - break; - } - query.query = JSON.stringify({ - uid: { - $in: referredContentTypesList - } - }); - _context3.next = 11; - return fn.apply(null, [url, config, responseKey, query]); - case 11: - referredContentTypesData = _context3.sent; - case 12: - result = contentTypes.concat(referredContentTypesData); - return _context3.abrupt("return", result); - case 14: - case "end": - return _context3.stop(); - } - }, _callee3); - })); - function getPagedData(_x5, _x6, _x7, _x8) { - return _getPagedData3.apply(this, arguments); - } - return getPagedData; - }() - }]); -}(FetchContentTypes); -var FetchUnspecifiedContentTypes = /*#__PURE__*/function (_FetchContentTypes3) { - function FetchUnspecifiedContentTypes() { - (0, _classCallCheck2["default"])(this, FetchUnspecifiedContentTypes); - return _callSuper(this, FetchUnspecifiedContentTypes, arguments); - } - (0, _inherits2["default"])(FetchUnspecifiedContentTypes, _FetchContentTypes3); - return (0, _createClass2["default"])(FetchUnspecifiedContentTypes, [{ - key: "getPagedData", - value: function () { - var _getPagedData4 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4(url, config, responseKey, fn) { - var query, contentTypes, referredContentTypes, referredContentTypesList, referredContentTypesData, result; - return _regenerator["default"].wrap(function _callee4$(_context4) { - while (1) switch (_context4.prev = _context4.next) { - case 0: - query = { - query: JSON.stringify({ - uid: { - $nin: config.excludeContentTypes - } - }), - include_global_field_schema: true - }; - _context4.next = 3; - return fn.apply(null, [url, config, responseKey, query]); - case 3: - contentTypes = _context4.sent; - referredContentTypes = new ReferredContentTypes(); - referredContentTypesList = referredContentTypes.getReferredContentTypes(contentTypes); - referredContentTypesData = []; - if (!referredContentTypesList.length) { - _context4.next = 12; - break; - } - query.query = JSON.stringify({ - uid: { - $in: referredContentTypesList - } - }); - _context4.next = 11; - return fn.apply(null, [url, config, responseKey, query]); - case 11: - referredContentTypesData = _context4.sent; - case 12: - result = contentTypes.concat(referredContentTypesData); - return _context4.abrupt("return", result); - case 14: - case "end": - return _context4.stop(); - } - }, _callee4); - })); - function getPagedData(_x9, _x10, _x11, _x12) { - return _getPagedData4.apply(this, arguments); - } - return getPagedData; - }() - }]); -}(FetchContentTypes); -var ReferredContentTypes = /*#__PURE__*/function () { - function ReferredContentTypes() { - (0, _classCallCheck2["default"])(this, ReferredContentTypes); - } - return (0, _createClass2["default"])(ReferredContentTypes, [{ - key: "getReferredContentTypes", - value: function getReferredContentTypes(contentTypes) { - var referredContentTypes = {}; - for (var i = 0; i < contentTypes.length; i++) { - var contentType = contentTypes[i]; - for (var j = 0; j < contentType.schema.length; j++) { - var schema = contentType.schema[j]; - if (schema.data_type === 'reference') { - for (var k = 0; k < schema.reference_to.length; k++) { - // Keep unique values only. - referredContentTypes[schema.reference_to[k]] = null; - } - } - } - } - // Remove the content-types if they were already fetched. - for (var _i = 0; _i < contentTypes.length; _i++) { - var _contentType = contentTypes[_i].uid; - var keys = Object.keys(referredContentTypes); - if (keys.includes(_contentType)) { - delete referredContentTypes[_contentType]; - } - } - return Object.keys(referredContentTypes); - } - }]); -}(); -exports.FetchContentTypes = FetchContentTypes; -exports.FetchDefaultContentTypes = FetchDefaultContentTypes; -exports.FetchSpecifiedContentTypes = FetchSpecifiedContentTypes; -exports.FetchUnspecifiedContentTypes = FetchUnspecifiedContentTypes; -//# sourceMappingURL=contenttype-data.js.map \ No newline at end of file diff --git a/create-resolvers.js b/create-resolvers.js deleted file mode 100644 index 11ecbf5..0000000 --- a/create-resolvers.js +++ /dev/null @@ -1,218 +0,0 @@ -'use strict'; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); -var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); -var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); -var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); -var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -var Contentstack = require('@contentstack/utils'); -var _require = require('./utils'), - getJSONToHtmlRequired = _require.getJSONToHtmlRequired; -var _require2 = require('./normalize'), - makeEntryNodeUid = _require2.makeEntryNodeUid, - makeAssetNodeUid = _require2.makeAssetNodeUid; -var _require3 = require('./live-preview/resolveCslpMeta'), - resolveCslpMeta = _require3.resolveCslpMeta; -exports.createResolvers = /*#__PURE__*/function () { - var _ref = (0, _asyncToGenerator2["default"])(function (_ref2, configOptions) { - var createResolvers = _ref2.createResolvers, - cache = _ref2.cache, - createNodeId = _ref2.createNodeId; - return /*#__PURE__*/_regenerator["default"].mark(function _callee() { - var resolvers, typePrefix, _yield$Promise$all, _yield$Promise$all2, fileFields, references, groups, jsonRteFields, contentTypes, contentTypeMap; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - resolvers = {}; - typePrefix = configOptions.type_prefix || 'Contentstack'; - _context.next = 4; - return Promise.all([cache.get("".concat(typePrefix, "_").concat(configOptions.api_key, "_file_fields")), cache.get("".concat(typePrefix, "_").concat(configOptions.api_key, "_references")), cache.get("".concat(typePrefix, "_").concat(configOptions.api_key, "_groups")), cache.get("".concat(typePrefix, "_").concat(configOptions.api_key, "_json_rte_fields"))]); - case 4: - _yield$Promise$all = _context.sent; - _yield$Promise$all2 = (0, _slicedToArray2["default"])(_yield$Promise$all, 4); - fileFields = _yield$Promise$all2[0]; - references = _yield$Promise$all2[1]; - groups = _yield$Promise$all2[2]; - jsonRteFields = _yield$Promise$all2[3]; - _context.next = 12; - return cache.get(typePrefix); - case 12: - contentTypes = _context.sent; - contentTypeMap = {}; - contentTypes.forEach(function (item) { - contentTypeMap[item.uid] = item; - }); - contentTypes.forEach(function (contentType) { - resolvers["".concat(typePrefix, "_").concat(contentType.uid)] = { - "cslp__meta": { - type: "JSON", - resolve: function resolve(source, args, context, info) { - try { - return resolveCslpMeta({ - source: source, - args: args, - context: context, - info: info, - contentTypeMap: contentTypeMap, - typePrefix: typePrefix - }); - } catch (error) { - var _error$message; - console.error("ContentstackGatsby (Live Preview):", error); - return { - error: { - message: (_error$message = error.message) !== null && _error$message !== void 0 ? _error$message : "failed to resolve cslp__meta" - } - }; - } - } - } - }; - }); - fileFields && fileFields.forEach(function (fileField) { - resolvers[fileField.parent] = _objectSpread(_objectSpread({}, resolvers[fileField.parent]), (0, _defineProperty2["default"])({}, fileField.field.uid, { - resolve: function resolve(source, args, context) { - if (fileField.field.multiple && source["".concat(fileField.field.uid, "___NODE")]) { - var nodesData = []; - source["".concat(fileField.field.uid, "___NODE")].forEach(function (id) { - var existingNode = context.nodeModel.getNodeById({ - id: id - }); - if (existingNode) { - nodesData.push(existingNode); - } - }); - return nodesData; - } else { - var id = source["".concat(fileField.field.uid, "___NODE")]; - return context.nodeModel.getNodeById({ - id: id - }); - } - } - })); - }); - references && references.forEach(function (reference) { - resolvers[reference.parent] = _objectSpread(_objectSpread({}, resolvers[reference.parent]), {}, (0, _defineProperty2["default"])({}, reference.uid, { - resolve: function resolve(source, args, context) { - if (source["".concat(reference.uid, "___NODE")]) { - var nodesData = []; - source["".concat(reference.uid, "___NODE")].forEach(function (id) { - var existingNode = context.nodeModel.getNodeById({ - id: id - }); - if (existingNode) { - nodesData.push(existingNode); - } - }); - return nodesData; - } - return []; - } - })); - }); - groups && groups.forEach(function (group) { - resolvers[group.parent] = _objectSpread(_objectSpread({}, resolvers[group.parent]), (0, _defineProperty2["default"])({}, group.field.uid, { - resolve: function resolve(source) { - if (group.field.multiple && !Array.isArray(source[group.field.uid])) { - return []; - } - return source[group.field.uid] || null; - } - })); - }); - jsonRteFields && jsonRteFields.forEach(function (jsonRteField) { - resolvers[jsonRteField.parent] = _objectSpread(_objectSpread({}, resolvers[jsonRteField.parent]), (0, _defineProperty2["default"])({}, jsonRteField.field.uid, { - resolve: function resolve(source, args, context) { - if (getJSONToHtmlRequired(configOptions.jsonRteToHtml, jsonRteField.field)) { - var keys = Object.keys(source); - var embeddedItems = {}; - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - if (!source[key]) { - continue; - } - if (Array.isArray(source[key])) { - for (var j = 0; j < source[key].length; j++) { - if (source[key][j].type === 'doc') { - source[key] = parseJSONRTEToHtml(source[key][j].children, embeddedItems, key, source, context, createNodeId, typePrefix); - } - } - } else { - if (source[key].type === 'doc') { - source[key] = parseJSONRTEToHtml(source[key].children, embeddedItems, key, source, context, createNodeId, typePrefix); - } - } - } - } - return source[jsonRteField.field.uid] || null; - } - })); - }); - createResolvers(resolvers); - case 21: - case "end": - return _context.stop(); - } - }, _callee); - })(); - }); - return function (_x, _x2) { - return _ref.apply(this, arguments); - }; -}(); -function parseJSONRTEToHtml(children, embeddedItems, key, source, context, createNodeId, prefix) { - embeddedItems[key] = embeddedItems[key] || []; - getChildren(children, embeddedItems, key, source, context, createNodeId, prefix); - source._embedded_items = _objectSpread(_objectSpread({}, source._embedded_items), embeddedItems); - return parseJSONRteToHtmlHelper(source, key); -} -function getChildren(children, embeddedItems, key, source, context, createNodeId, prefix) { - for (var j = 0; j < children.length; j++) { - var child = children[j]; - if (child.type === 'reference') { - var id = void 0; - if (child.attrs && child.attrs.type === 'asset') { - id = makeAssetNodeUid({ - publish_details: { - locale: source.publish_details.locale - }, - uid: child.attrs['asset-uid'] - }, createNodeId, prefix); - } else { - id = makeEntryNodeUid({ - publish_details: { - locale: source.publish_details.locale - }, - uid: child.attrs['entry-uid'] - }, createNodeId, prefix); - } - var node = context.nodeModel.getNodeById({ - id: id - }); - // The following line is required by contentstack utils package to parse value from json to html. - node._content_type_uid = child.attrs['content-type-uid']; - embeddedItems[key].push(node); - } - if (child.children) { - getChildren(child.children, embeddedItems, key, source, context, createNodeId, prefix); - } - } -} -function parseJSONRteToHtmlHelper(value, path) { - var jsonRteToHtml = {}; - if (value) { - Contentstack.jsonToHTML({ - entry: value, - paths: [path] - }); - jsonRteToHtml = value[path]; - } else { - jsonRteToHtml = null; - } - return jsonRteToHtml; -} -; -//# sourceMappingURL=create-resolvers.js.map \ No newline at end of file diff --git a/create-schema-customization.js b/create-schema-customization.js deleted file mode 100644 index fa52fcc..0000000 --- a/create-schema-customization.js +++ /dev/null @@ -1,218 +0,0 @@ -'use strict'; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); -var _typeof = require("@babel/runtime/helpers/typeof"); -var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); -var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); -var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); -function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } -function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -var _require = require('gatsby/graphql'), - GraphQLInt = _require.GraphQLInt, - GraphQLJSON = _require.GraphQLJSON, - GraphQLString = _require.GraphQLString; -var _require2 = require('./normalize'), - buildCustomSchema = _require2.buildCustomSchema, - extendSchemaWithDefaultEntryFields = _require2.extendSchemaWithDefaultEntryFields; -var _require3 = require('./fetch'), - fetchContentTypes = _require3.fetchContentTypes; -var _require4 = require('./utils'), - getContentTypeOption = _require4.getContentTypeOption; -var _require5 = require('./gatsby-plugin-image'), - resolveGatsbyImageData = _require5.resolveGatsbyImageData; -exports.createSchemaCustomization = /*#__PURE__*/function () { - var _ref = (0, _asyncToGenerator2["default"])(function (_ref2, configOptions) { - var cache = _ref2.cache, - actions = _ref2.actions, - schema = _ref2.schema, - reporter = _ref2.reporter, - createNodeId = _ref2.createNodeId; - return /*#__PURE__*/_regenerator["default"].mark(function _callee2() { - var contentTypes, typePrefix, disableMandatoryFields, jsonRteToHtml, contentTypeOption, references, groups, fileFields, jsonRteFields, createTypes, contentTypeSchema, assetTypeSchema, _yield$import, getGatsbyImageFieldConfig, fieldConfig; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - typePrefix = configOptions.type_prefix || 'Contentstack'; - disableMandatoryFields = configOptions.disableMandatoryFields || false; - jsonRteToHtml = configOptions.jsonRteToHtml || false; - _context2.prev = 3; - contentTypeOption = getContentTypeOption(configOptions); - _context2.next = 7; - return fetchContentTypes(configOptions, contentTypeOption); - case 7: - contentTypes = _context2.sent; - _context2.next = 10; - return cache.set(typePrefix, contentTypes); - case 10: - _context2.next = 15; - break; - case 12: - _context2.prev = 12; - _context2.t0 = _context2["catch"](3); - console.error('Contentstack fetch content type failed!'); - case 15: - references = [], groups = [], fileFields = [], jsonRteFields = []; - if (!configOptions.enableSchemaGeneration) { - _context2.next = 52; - break; - } - createTypes = actions.createTypes; - /** Type definition for content-type schema */ - contentTypeSchema = { - name: "".concat(typePrefix, "ContentTypes"), - fields: { - title: 'String!', - uid: 'String!', - created_at: { - type: 'Date', - extensions: { - dateformat: {} - } - }, - updated_at: { - type: 'Date', - extensions: { - dateformat: {} - } - }, - schema: 'JSON!', - description: 'String' - }, - interfaces: ['Node'], - extensions: { - infer: false - } - }; - /** Type definition for asset schema */ - assetTypeSchema = { - name: "".concat(typePrefix, "_assets"), - fields: _objectSpread({ - url: 'String' - }, configOptions.downloadImages ? { - localAsset: { - type: 'File', - extensions: { - link: { - from: "fields.localAsset" - } - } - } - } : {}), - interfaces: ['Node'], - extensions: { - infer: true - } - }; // Checks if gatsby-plugin-image is installed. - _context2.prev = 20; - _context2.next = 23; - return Promise.resolve().then(function () { - return _interopRequireWildcard(require('gatsby-plugin-image/graphql-utils')); - }); - case 23: - _yield$import = _context2.sent; - getGatsbyImageFieldConfig = _yield$import.getGatsbyImageFieldConfig; - fieldConfig = {}; - fieldConfig = getGatsbyImageFieldConfig(/*#__PURE__*/function () { - var _ref3 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(image, options) { - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", resolveGatsbyImageData({ - image: image, - options: options, - cache: cache, - reporter: reporter - })); - case 1: - case "end": - return _context.stop(); - } - }, _callee); - })); - return function (_x3, _x4) { - return _ref3.apply(this, arguments); - }; - }(), { - fit: { - type: GraphQLString - }, - crop: { - type: GraphQLString - }, - trim: { - type: GraphQLString - }, - pad: { - type: GraphQLString - }, - quality: { - type: GraphQLInt, - defaultValue: 50 - } - }); - fieldConfig.type = GraphQLJSON; - assetTypeSchema.fields.gatsbyImageData = fieldConfig; - _context2.next = 34; - break; - case 31: - _context2.prev = 31; - _context2.t1 = _context2["catch"](20); - if (_context2.t1.code === 'MODULE_NOT_FOUND') { - reporter.info("Gatsby plugin image is required to use new gatsby image plugin's feature. Please check https://github.com/contentstack/gatsby-source-contentstack#the-new-gatsby-image-plugin for more help."); - } - case 34: - createTypes([schema.buildObjectType(contentTypeSchema), schema.buildObjectType(assetTypeSchema)]); - contentTypes && contentTypes.forEach(function (contentType) { - var contentTypeUid = contentType.uid.replace(/-/g, '_'); - var name = "".concat(typePrefix, "_").concat(contentTypeUid); - var extendedSchema = extendSchemaWithDefaultEntryFields(contentType.schema); - var result = buildCustomSchema(extendedSchema, [], [], [], [], [], name, typePrefix, disableMandatoryFields, jsonRteToHtml, createNodeId, undefined); - references = references.concat(result.references); - groups = groups.concat(result.groups); - fileFields = fileFields.concat(result.fileFields); - jsonRteFields = jsonRteFields.concat(result.jsonRteFields); - var typeDefs = ["type linktype { title: String href: String }", schema.buildObjectType({ - name: name, - fields: result.fields, - interfaces: ['Node'], - extensions: { - infer: true - } - })]; - result.types = result.types.concat(typeDefs); - createTypes(result.types); - }); - _context2.t2 = Promise; - _context2.next = 39; - return cache.set("".concat(typePrefix, "_").concat(configOptions.api_key, "_references"), references); - case 39: - _context2.t3 = _context2.sent; - _context2.next = 42; - return cache.set("".concat(typePrefix, "_").concat(configOptions.api_key, "_groups"), groups); - case 42: - _context2.t4 = _context2.sent; - _context2.next = 45; - return cache.set("".concat(typePrefix, "_").concat(configOptions.api_key, "_file_fields"), fileFields); - case 45: - _context2.t5 = _context2.sent; - _context2.next = 48; - return cache.set("".concat(typePrefix, "_").concat(configOptions.api_key, "_json_rte_fields"), jsonRteFields); - case 48: - _context2.t6 = _context2.sent; - _context2.t7 = [_context2.t3, _context2.t4, _context2.t5, _context2.t6]; - _context2.next = 52; - return _context2.t2.all.call(_context2.t2, _context2.t7); - case 52: - case "end": - return _context2.stop(); - } - }, _callee2, null, [[3, 12], [20, 31]]); - })(); - }); - return function (_x, _x2) { - return _ref.apply(this, arguments); - }; -}(); -//# sourceMappingURL=create-schema-customization.js.map \ No newline at end of file diff --git a/download-assets.js b/download-assets.js deleted file mode 100644 index 80a52df..0000000 --- a/download-assets.js +++ /dev/null @@ -1,215 +0,0 @@ -'use strict'; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); -var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); -var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); -var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -var _require = require('gatsby-source-filesystem'), - createRemoteFileNode = _require.createRemoteFileNode; -var _require2 = require('./normalize'), - makeAssetNodeUid = _require2.makeAssetNodeUid; -var _require3 = require('./utils'), - createProgress = _require3.createProgress, - checkIfUnsupportedFormat = _require3.checkIfUnsupportedFormat, - SUPPORTED_FILES_COUNT = _require3.SUPPORTED_FILES_COUNT, - IMAGE_REGEXP = _require3.IMAGE_REGEXP, - ASSET_NODE_UIDS = _require3.ASSET_NODE_UIDS; -var bar; // Keep track of the total number of jobs we push in the queue -var sizeBar; -var totalJobs = 0; -var totalSize = 0; -module.exports = /*#__PURE__*/function () { - var _ref = (0, _asyncToGenerator2["default"])(function (_ref2, typePrefix, configOptions) { - var cache = _ref2.cache, - getCache = _ref2.getCache, - createNode = _ref2.createNode, - createNodeId = _ref2.createNodeId, - getNodesByType = _ref2.getNodesByType, - reporter = _ref2.reporter, - createNodeField = _ref2.createNodeField, - getNode = _ref2.getNode; - return /*#__PURE__*/_regenerator["default"].mark(function _callee() { - var assetUids, batches, i, batchPromises, skip, lastCount, shouldBreak, j, asset, regexp, matches, isUnsupportedExt; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - _context.prev = 0; - _context.next = 3; - return cache.get(ASSET_NODE_UIDS); - case 3: - assetUids = _context.sent; - configOptions.MAX_CONCURRENCY_LIMIT = process.env.GATSBY_CONCURRENT_DOWNLOAD || 20; - batches = getBatches(assetUids.length, configOptions.MAX_CONCURRENCY_LIMIT); // Get total count of files that will be downloaded, excluding unsupported formats - _context.next = 8; - return cache.get(SUPPORTED_FILES_COUNT); - case 8: - totalJobs = _context.sent; - // Create progress bar - bar = createProgress("Downloading remote files", reporter); - bar.start(); - bar.total = totalJobs; - i = 0; - case 13: - if (!(i < batches.length)) { - _context.next = 45; - break; - } - batchPromises = []; - skip = i * configOptions.MAX_CONCURRENCY_LIMIT; - lastCount = (i + 1) * configOptions.MAX_CONCURRENCY_LIMIT; - reporter.verbose("Skip: ".concat(skip, ", limit: ").concat(lastCount)); - shouldBreak = false; - j = skip; - case 20: - if (!(j < lastCount)) { - _context.next = 38; - break; - } - asset = assetUids[j] ? getNode(assetUids[j]) : null; // Last batch will contain null references when accessed, can be handled in a better way - if (!(!asset && i + 1 === batches.length)) { - _context.next = 25; - break; - } - shouldBreak = true; - return _context.abrupt("break", 38); - case 25: - // filter the images from all the assets - regexp = IMAGE_REGEXP; - matches = void 0; // SVG is not supported by gatsby-source-filesystem. Reference: https://github.com/gatsbyjs/gatsby/issues/10297 - isUnsupportedExt = false; - try { - matches = regexp.exec(asset.url); - isUnsupportedExt = checkIfUnsupportedFormat(asset.url); - } catch (error) { - reporter.panic('Something went wrong. Details: ' + JSON.stringify(error)); - } - if (!(matches && !isUnsupportedExt)) { - _context.next = 35; - break; - } - _context.t0 = batchPromises; - _context.next = 33; - return createRemoteFileNodePromise({ - cache: cache, - getCache: getCache, - createNode: createNode, - createNodeId: createNodeId, - createNodeField: createNodeField - }, asset, typePrefix, reporter); - case 33: - _context.t1 = _context.sent; - _context.t0.push.call(_context.t0, _context.t1); - case 35: - j++; - _context.next = 20; - break; - case 38: - if (!shouldBreak) { - _context.next = 40; - break; - } - return _context.abrupt("break", 45); - case 40: - _context.next = 42; - return Promise.all(batchPromises); - case 42: - i++; - _context.next = 13; - break; - case 45: - bar && bar.done(); - sizeBar && sizeBar.done(); - reporter.verbose("Total size of downloaded files ".concat(totalSize)); - _context.next = 53; - break; - case 50: - _context.prev = 50; - _context.t2 = _context["catch"](0); - reporter.info('Something went wrong while downloading assets. Details: ' + _context.t2); - case 53: - case "end": - return _context.stop(); - } - }, _callee, null, [[0, 50]]); - })(); - }); - return function (_x, _x2, _x3) { - return _ref.apply(this, arguments); - }; -}(); -var createRemoteFileNodePromise = /*#__PURE__*/function () { - var _ref3 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(params, node, typePrefix, reporter) { - var fileNode, assetUid, fileSize; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - _context2.prev = 0; - if (!sizeBar) { - sizeBar = createProgress("Total KBs downloaded", reporter); - sizeBar.start(); - } - assetUid = makeAssetNodeUid(node, params.createNodeId, typePrefix); // Get asset from cache - _context2.next = 5; - return params.cache.get(assetUid); - case 5: - fileNode = _context2.sent; - // Handles condition if the asset has been updated, then it will be downloaded again - if (fileNode && fileNode.updated_at !== node.updated_at) fileNode = null; - if (fileNode) { - _context2.next = 19; - break; - } - _context2.next = 10; - return createRemoteFileNode(_objectSpread(_objectSpread({}, params), {}, { - url: encodeURI(node.url), - parentNodeId: node.id - })); - case 10: - fileNode = _context2.sent; - if (!fileNode) { - _context2.next = 19; - break; - } - // Save updated_at value in the cached fileNode - fileNode.updated_at = node.updated_at; - fileSize = parseInt(fileNode.size / 1000); // Get size in megabytes - totalSize = totalSize + fileSize; - sizeBar.total = totalSize; - sizeBar.tick(fileSize); - // Cache fileNode to prevent re-downloading asset - _context2.next = 19; - return params.cache.set(assetUid, fileNode); - case 19: - bar.tick(); - if (fileNode) { - params.createNodeField({ - node: node, - name: 'localAsset', - value: fileNode.id - }); - } - return _context2.abrupt("return", fileNode); - case 24: - _context2.prev = 24; - _context2.t0 = _context2["catch"](0); - reporter.info('Something went wrong while creating file nodes. Details: ' + _context2.t0); - case 27: - case "end": - return _context2.stop(); - } - }, _callee2, null, [[0, 24]]); - })); - return function createRemoteFileNodePromise(_x4, _x5, _x6, _x7) { - return _ref3.apply(this, arguments); - }; -}(); -var getBatches = function getBatches(count, batchLimit) { - var partitions = Math.ceil(count / batchLimit); - // Returns array filled with indexes - return Array(partitions).fill(null).map(function (_, i) { - return i; - }); -}; -//# sourceMappingURL=download-assets.js.map \ No newline at end of file diff --git a/entry-data.js b/entry-data.js deleted file mode 100644 index 4f04fd0..0000000 --- a/entry-data.js +++ /dev/null @@ -1,597 +0,0 @@ -'use strict'; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); -var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); -var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); -var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); -var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); -var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); -var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); -var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); -var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); -function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -var FetchEntries = /*#__PURE__*/function () { - function FetchEntries() { - (0, _classCallCheck2["default"])(this, FetchEntries); - } - return (0, _createClass2["default"])(FetchEntries, [{ - key: "fetchSyncData", - value: function () { - var _fetchSyncData = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() { - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - case "end": - return _context.stop(); - } - }, _callee); - })); - function fetchSyncData() { - return _fetchSyncData.apply(this, arguments); - } - return fetchSyncData; - }() - }]); -}(); -var FetchDefaultEntries = /*#__PURE__*/function (_FetchEntries) { - function FetchDefaultEntries() { - (0, _classCallCheck2["default"])(this, FetchDefaultEntries); - return _callSuper(this, FetchDefaultEntries, arguments); - } - (0, _inherits2["default"])(FetchDefaultEntries, _FetchEntries); - return (0, _createClass2["default"])(FetchDefaultEntries, [{ - key: "fetchSyncData", - value: function () { - var _fetchSyncData2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(configOptions, cache, fn) { - var typePrefix, syncData, entryTokenKey, assetTokenKey, _yield$Promise$all, _yield$Promise$all2, syncEntryToken, syncAssetToken, syncEntryParams, syncAssetParams, _yield$Promise$all3, _yield$Promise$all4, syncEntryData, syncAssetData, data, tokenKey, syncToken, syncParams; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - typePrefix = configOptions.type_prefix || 'Contentstack'; - syncData = {}; - _context2.prev = 2; - if (!configOptions.expediteBuild) { - _context2.next = 28; - break; - } - entryTokenKey = "".concat(typePrefix.toLowerCase(), "-sync-token-entry-").concat(configOptions.api_key); - assetTokenKey = "".concat(typePrefix.toLowerCase(), "-sync-token-asset-").concat(configOptions.api_key); - _context2.next = 8; - return Promise.all([cache.get(entryTokenKey), cache.get(assetTokenKey)]); - case 8: - _yield$Promise$all = _context2.sent; - _yield$Promise$all2 = (0, _slicedToArray2["default"])(_yield$Promise$all, 2); - syncEntryToken = _yield$Promise$all2[0]; - syncAssetToken = _yield$Promise$all2[1]; - syncEntryParams = syncEntryToken ? { - sync_token: syncEntryToken - } : { - init: true, - limit: configOptions.limit > 100 ? 50 : configOptions.limit - }; - syncAssetParams = syncAssetToken ? { - sync_token: syncAssetToken - } : { - init: true, - limit: configOptions.limit > 100 ? 50 : configOptions.limit - }; - syncEntryParams.type = 'entry_published,entry_unpublished,entry_deleted'; - syncAssetParams.type = 'asset_published,asset_unpublished,asset_deleted'; - _context2.next = 18; - return Promise.all([fn.apply(null, [syncEntryParams, configOptions]), fn.apply(null, [syncAssetParams, configOptions])]); - case 18: - _yield$Promise$all3 = _context2.sent; - _yield$Promise$all4 = (0, _slicedToArray2["default"])(_yield$Promise$all3, 2); - syncEntryData = _yield$Promise$all4[0]; - syncAssetData = _yield$Promise$all4[1]; - data = syncEntryData.data.concat(syncAssetData.data); - syncData.data = data; - _context2.next = 26; - return Promise.all([cache.set(entryTokenKey, syncEntryData.sync_token), cache.set(assetTokenKey, syncAssetData.sync_token)]); - case 26: - _context2.next = 38; - break; - case 28: - tokenKey = "".concat(typePrefix.toLowerCase(), "-sync-token-").concat(configOptions.api_key); - _context2.next = 31; - return cache.get(tokenKey); - case 31: - syncToken = _context2.sent; - syncParams = syncToken ? { - sync_token: syncToken - } : { - init: true, - limit: configOptions.limit > 100 ? 50 : configOptions.limit - }; - _context2.next = 35; - return fn.apply(null, [syncParams, configOptions]); - case 35: - syncData = _context2.sent; - _context2.next = 38; - return cache.set(tokenKey, syncData.sync_token); - case 38: - _context2.next = 43; - break; - case 40: - _context2.prev = 40; - _context2.t0 = _context2["catch"](2); - throw _context2.t0; - case 43: - return _context2.abrupt("return", syncData); - case 44: - case "end": - return _context2.stop(); - } - }, _callee2, null, [[2, 40]]); - })); - function fetchSyncData(_x, _x2, _x3) { - return _fetchSyncData2.apply(this, arguments); - } - return fetchSyncData; - }() - }]); -}(FetchEntries); -var FetchSpecifiedContentTypesEntries = /*#__PURE__*/function (_FetchEntries2) { - function FetchSpecifiedContentTypesEntries() { - (0, _classCallCheck2["default"])(this, FetchSpecifiedContentTypesEntries); - return _callSuper(this, FetchSpecifiedContentTypesEntries, arguments); - } - (0, _inherits2["default"])(FetchSpecifiedContentTypesEntries, _FetchEntries2); - return (0, _createClass2["default"])(FetchSpecifiedContentTypesEntries, [{ - key: "fetchSyncData", - value: function () { - var _fetchSyncData3 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(configOptions, cache, fn) { - var _yield$Promise$all5, _yield$Promise$all6, syncEntryData, syncAssetData, syncData; - return _regenerator["default"].wrap(function _callee3$(_context3) { - while (1) switch (_context3.prev = _context3.next) { - case 0: - _context3.prev = 0; - _context3.next = 3; - return Promise.all([this.fetchEntries(configOptions, cache, fn), this.fetchAssets(configOptions, cache, fn)]); - case 3: - _yield$Promise$all5 = _context3.sent; - _yield$Promise$all6 = (0, _slicedToArray2["default"])(_yield$Promise$all5, 2); - syncEntryData = _yield$Promise$all6[0]; - syncAssetData = _yield$Promise$all6[1]; - syncData = {}; - syncData.data = syncEntryData.data.concat(syncAssetData.data); - return _context3.abrupt("return", syncData); - case 12: - _context3.prev = 12; - _context3.t0 = _context3["catch"](0); - throw _context3.t0; - case 15: - case "end": - return _context3.stop(); - } - }, _callee3, this, [[0, 12]]); - })); - function fetchSyncData(_x4, _x5, _x6) { - return _fetchSyncData3.apply(this, arguments); - } - return fetchSyncData; - }() - }, { - key: "fetchEntries", - value: function () { - var _fetchEntries = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4(configOptions, cache, fn) { - var syncData, typePrefix, contentTypes, i, contentType, tokenKey, syncToken, syncParams, _syncData; - return _regenerator["default"].wrap(function _callee4$(_context4) { - while (1) switch (_context4.prev = _context4.next) { - case 0: - _context4.prev = 0; - syncData = {}; - typePrefix = configOptions.type_prefix || 'Contentstack'; - _context4.next = 5; - return cache.get(typePrefix); - case 5: - contentTypes = _context4.sent; - i = 0; - case 7: - if (!(i < contentTypes.length)) { - _context4.next = 25; - break; - } - contentType = contentTypes[i].uid; - tokenKey = "".concat(typePrefix.toLowerCase(), "-sync-token-").concat(contentType, "-").concat(configOptions.api_key); - _context4.next = 12; - return cache.get(tokenKey); - case 12: - syncToken = _context4.sent; - syncParams = syncToken ? { - sync_token: syncToken - } : { - init: true - }; - syncParams.content_type_uid = contentType; - _context4.next = 17; - return fn.apply(null, [syncParams, configOptions]); - case 17: - _syncData = _context4.sent; - syncData.data = syncData.data || []; - syncData.data = syncData.data.concat(_syncData.data); - // Caching token for the next sync. - _context4.next = 22; - return cache.set(tokenKey, _syncData.sync_token); - case 22: - i++; - _context4.next = 7; - break; - case 25: - return _context4.abrupt("return", syncData); - case 28: - _context4.prev = 28; - _context4.t0 = _context4["catch"](0); - throw _context4.t0; - case 31: - case "end": - return _context4.stop(); - } - }, _callee4, null, [[0, 28]]); - })); - function fetchEntries(_x7, _x8, _x9) { - return _fetchEntries.apply(this, arguments); - } - return fetchEntries; - }() - }, { - key: "fetchAssets", - value: function () { - var _fetchAssets = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5(configOptions, cache, fn) { - var fetchAssetService, syncData; - return _regenerator["default"].wrap(function _callee5$(_context5) { - while (1) switch (_context5.prev = _context5.next) { - case 0: - _context5.prev = 0; - fetchAssetService = new FetchAssets(); - _context5.next = 4; - return fetchAssetService.fetchAssets(configOptions, cache, fn); - case 4: - syncData = _context5.sent; - return _context5.abrupt("return", syncData); - case 8: - _context5.prev = 8; - _context5.t0 = _context5["catch"](0); - throw _context5.t0; - case 11: - case "end": - return _context5.stop(); - } - }, _callee5, null, [[0, 8]]); - })); - function fetchAssets(_x10, _x11, _x12) { - return _fetchAssets.apply(this, arguments); - } - return fetchAssets; - }() - }]); -}(FetchEntries); -var FetchSpecifiedLocalesEntries = /*#__PURE__*/function (_FetchEntries3) { - function FetchSpecifiedLocalesEntries() { - (0, _classCallCheck2["default"])(this, FetchSpecifiedLocalesEntries); - return _callSuper(this, FetchSpecifiedLocalesEntries, arguments); - } - (0, _inherits2["default"])(FetchSpecifiedLocalesEntries, _FetchEntries3); - return (0, _createClass2["default"])(FetchSpecifiedLocalesEntries, [{ - key: "fetchSyncData", - value: function () { - var _fetchSyncData4 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee6(configOptions, cache, fn) { - var _yield$Promise$all7, _yield$Promise$all8, syncEntryData, syncAssetData, syncData; - return _regenerator["default"].wrap(function _callee6$(_context6) { - while (1) switch (_context6.prev = _context6.next) { - case 0: - _context6.next = 2; - return Promise.all([this.fetchEntries(configOptions, cache, fn), this.fetchAssets(configOptions, cache, fn)]); - case 2: - _yield$Promise$all7 = _context6.sent; - _yield$Promise$all8 = (0, _slicedToArray2["default"])(_yield$Promise$all7, 2); - syncEntryData = _yield$Promise$all8[0]; - syncAssetData = _yield$Promise$all8[1]; - syncData = {}; - syncData.data = syncEntryData.data.concat(syncAssetData.data); - return _context6.abrupt("return", syncData); - case 9: - case "end": - return _context6.stop(); - } - }, _callee6, this); - })); - function fetchSyncData(_x13, _x14, _x15) { - return _fetchSyncData4.apply(this, arguments); - } - return fetchSyncData; - }() - }, { - key: "fetchEntries", - value: function () { - var _fetchEntries2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee7(configOptions, cache, fn) { - var syncData, typePrefix, locales, i, locale, tokenKey, syncToken, syncParams, _syncData; - return _regenerator["default"].wrap(function _callee7$(_context7) { - while (1) switch (_context7.prev = _context7.next) { - case 0: - _context7.prev = 0; - syncData = {}; - typePrefix = configOptions.type_prefix || 'Contentstack'; - locales = configOptions.locales; - i = 0; - case 5: - if (!(i < locales.length)) { - _context7.next = 23; - break; - } - locale = locales[i]; - tokenKey = "".concat(typePrefix.toLowerCase(), "-sync-token-").concat(locale, "-").concat(configOptions.api_key); - _context7.next = 10; - return cache.get(tokenKey); - case 10: - syncToken = _context7.sent; - syncParams = syncToken ? { - sync_token: syncToken - } : { - init: true - }; - syncParams.locale = locale; - _context7.next = 15; - return fn.apply(null, [syncParams, configOptions]); - case 15: - _syncData = _context7.sent; - syncData.data = syncData.data || []; - syncData.data = syncData.data.concat(_syncData.data); - // Caching token for next sync - _context7.next = 20; - return cache.set(tokenKey, _syncData.sync_token); - case 20: - i++; - _context7.next = 5; - break; - case 23: - return _context7.abrupt("return", syncData); - case 26: - _context7.prev = 26; - _context7.t0 = _context7["catch"](0); - throw _context7.t0; - case 29: - case "end": - return _context7.stop(); - } - }, _callee7, null, [[0, 26]]); - })); - function fetchEntries(_x16, _x17, _x18) { - return _fetchEntries2.apply(this, arguments); - } - return fetchEntries; - }() - }, { - key: "fetchAssets", - value: function () { - var _fetchAssets2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee8(configOptions, cache, fn) { - var fetchAssetService, syncData; - return _regenerator["default"].wrap(function _callee8$(_context8) { - while (1) switch (_context8.prev = _context8.next) { - case 0: - _context8.prev = 0; - fetchAssetService = new FetchAssets(); - _context8.next = 4; - return fetchAssetService.fetchAssets(configOptions, cache, fn); - case 4: - syncData = _context8.sent; - return _context8.abrupt("return", syncData); - case 8: - _context8.prev = 8; - _context8.t0 = _context8["catch"](0); - throw _context8.t0; - case 11: - case "end": - return _context8.stop(); - } - }, _callee8, null, [[0, 8]]); - })); - function fetchAssets(_x19, _x20, _x21) { - return _fetchAssets2.apply(this, arguments); - } - return fetchAssets; - }() - }]); -}(FetchEntries); -var FetchSpecifiedLocalesAndContentTypesEntries = /*#__PURE__*/function (_FetchEntries4) { - function FetchSpecifiedLocalesAndContentTypesEntries() { - (0, _classCallCheck2["default"])(this, FetchSpecifiedLocalesAndContentTypesEntries); - return _callSuper(this, FetchSpecifiedLocalesAndContentTypesEntries, arguments); - } - (0, _inherits2["default"])(FetchSpecifiedLocalesAndContentTypesEntries, _FetchEntries4); - return (0, _createClass2["default"])(FetchSpecifiedLocalesAndContentTypesEntries, [{ - key: "fetchSyncData", - value: function () { - var _fetchSyncData5 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee9(configOptions, cache, fn) { - var _yield$Promise$all9, _yield$Promise$all10, syncEntryData, syncAssetData, syncData; - return _regenerator["default"].wrap(function _callee9$(_context9) { - while (1) switch (_context9.prev = _context9.next) { - case 0: - _context9.next = 2; - return Promise.all([this.fetchEntries(configOptions, cache, fn), this.fetchAssets(configOptions, cache, fn)]); - case 2: - _yield$Promise$all9 = _context9.sent; - _yield$Promise$all10 = (0, _slicedToArray2["default"])(_yield$Promise$all9, 2); - syncEntryData = _yield$Promise$all10[0]; - syncAssetData = _yield$Promise$all10[1]; - syncData = {}; - syncData.data = syncEntryData.data.concat(syncAssetData.data); - return _context9.abrupt("return", syncData); - case 9: - case "end": - return _context9.stop(); - } - }, _callee9, this); - })); - function fetchSyncData(_x22, _x23, _x24) { - return _fetchSyncData5.apply(this, arguments); - } - return fetchSyncData; - }() - }, { - key: "fetchEntries", - value: function () { - var _fetchEntries3 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee10(configOptions, cache, fn) { - var syncData, typePrefix, contentTypes, locales, i, contentType, j, locale, tokenKey, syncToken, syncParams, _syncData; - return _regenerator["default"].wrap(function _callee10$(_context10) { - while (1) switch (_context10.prev = _context10.next) { - case 0: - _context10.prev = 0; - syncData = {}; - typePrefix = configOptions.type_prefix || 'Contentstack'; - _context10.next = 5; - return cache.get(typePrefix); - case 5: - contentTypes = _context10.sent; - locales = configOptions.locales; - i = 0; - case 8: - if (!(i < contentTypes.length)) { - _context10.next = 33; - break; - } - contentType = contentTypes[i].uid; - j = 0; - case 11: - if (!(j < locales.length)) { - _context10.next = 30; - break; - } - locale = locales[j]; - tokenKey = "".concat(typePrefix.toLowerCase(), "-sync-token-").concat(contentType, "-").concat(locale, "-").concat(configOptions.api_key); - _context10.next = 16; - return cache.get(tokenKey); - case 16: - syncToken = _context10.sent; - syncParams = syncToken ? { - sync_token: syncToken - } : { - init: true - }; - syncParams.content_type_uid = contentType; - syncParams.locale = locale; - _context10.next = 22; - return fn.apply(null, [syncParams, configOptions]); - case 22: - _syncData = _context10.sent; - syncData.data = syncData.data || []; - syncData.data = syncData.data.concat(_syncData.data); - // Caching token for next sync - _context10.next = 27; - return cache.set(tokenKey, _syncData.sync_token); - case 27: - j++; - _context10.next = 11; - break; - case 30: - i++; - _context10.next = 8; - break; - case 33: - return _context10.abrupt("return", syncData); - case 36: - _context10.prev = 36; - _context10.t0 = _context10["catch"](0); - throw _context10.t0; - case 39: - case "end": - return _context10.stop(); - } - }, _callee10, null, [[0, 36]]); - })); - function fetchEntries(_x25, _x26, _x27) { - return _fetchEntries3.apply(this, arguments); - } - return fetchEntries; - }() - }, { - key: "fetchAssets", - value: function () { - var _fetchAssets3 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee11(configOptions, cache, fn) { - var fetchAssetService, syncData; - return _regenerator["default"].wrap(function _callee11$(_context11) { - while (1) switch (_context11.prev = _context11.next) { - case 0: - _context11.prev = 0; - fetchAssetService = new FetchAssets(); - _context11.next = 4; - return fetchAssetService.fetchAssets(configOptions, cache, fn); - case 4: - syncData = _context11.sent; - return _context11.abrupt("return", syncData); - case 8: - _context11.prev = 8; - _context11.t0 = _context11["catch"](0); - throw _context11.t0; - case 11: - case "end": - return _context11.stop(); - } - }, _callee11, null, [[0, 8]]); - })); - function fetchAssets(_x28, _x29, _x30) { - return _fetchAssets3.apply(this, arguments); - } - return fetchAssets; - }() - }]); -}(FetchEntries); -var FetchAssets = /*#__PURE__*/function () { - function FetchAssets() { - (0, _classCallCheck2["default"])(this, FetchAssets); - } - return (0, _createClass2["default"])(FetchAssets, [{ - key: "fetchAssets", - value: function () { - var _fetchAssets4 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee12(configOptions, cache, fn) { - var typePrefix, syncData, assetTokenKey, syncAssetToken, syncAssetParams, syncAssetData; - return _regenerator["default"].wrap(function _callee12$(_context12) { - while (1) switch (_context12.prev = _context12.next) { - case 0: - typePrefix = configOptions.type_prefix || 'Contentstack'; - _context12.prev = 1; - syncData = {}; - assetTokenKey = "".concat(typePrefix.toLowerCase(), "-sync-token-asset-").concat(configOptions.api_key); - _context12.next = 6; - return cache.get(assetTokenKey); - case 6: - syncAssetToken = _context12.sent; - syncAssetParams = syncAssetToken ? { - sync_token: syncAssetToken - } : { - init: true - }; - syncAssetParams.type = 'asset_published,asset_unpublished,asset_deleted'; - _context12.next = 11; - return fn.apply(null, [syncAssetParams, configOptions]); - case 11: - syncAssetData = _context12.sent; - syncData.data = syncAssetData.data; - _context12.next = 15; - return cache.set(assetTokenKey, syncAssetData.sync_token); - case 15: - return _context12.abrupt("return", syncData); - case 18: - _context12.prev = 18; - _context12.t0 = _context12["catch"](1); - throw _context12.t0; - case 21: - case "end": - return _context12.stop(); - } - }, _callee12, null, [[1, 18]]); - })); - function fetchAssets(_x31, _x32, _x33) { - return _fetchAssets4.apply(this, arguments); - } - return fetchAssets; - }() - }]); -}(); -exports.FetchEntries = FetchEntries; -exports.FetchDefaultEntries = FetchDefaultEntries; -exports.FetchSpecifiedContentTypesEntries = FetchSpecifiedContentTypesEntries; -exports.FetchSpecifiedLocalesEntries = FetchSpecifiedLocalesEntries; -exports.FetchSpecifiedLocalesAndContentTypesEntries = FetchSpecifiedLocalesAndContentTypesEntries; -//# sourceMappingURL=entry-data.js.map \ No newline at end of file diff --git a/fetch.js b/fetch.js deleted file mode 100644 index aac6361..0000000 --- a/fetch.js +++ /dev/null @@ -1,474 +0,0 @@ -'use strict'; - -/* - `node-fetch` have different export depending on CJS or ESM - context - requiring CJS (regular build) will return a function directly, - requiring ESM (what is currently being bundled for rendering engines - which are used by DSG) will return object with `default` field which is - a function. `preferDefault` helper will just use `.default` if available, - but will fallback to entire export if not available -*/ -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); -var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); -var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); -var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); -var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); -function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } -function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } -function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -var preferDefault = function preferDefault(m) { - return m && m["default"] || m; -}; - -/**NPM dependencies */ -var queryString = require('query-string'); -var fetch = preferDefault(require('node-fetch')); - -// eslint-disable-next-line import/no-unresolved -var _require = require('./package.json'), - version = _require.version; -var _require2 = require('./contenttype-data'), - FetchDefaultContentTypes = _require2.FetchDefaultContentTypes, - FetchSpecifiedContentTypes = _require2.FetchSpecifiedContentTypes, - FetchUnspecifiedContentTypes = _require2.FetchUnspecifiedContentTypes; -var _require3 = require('./entry-data'), - FetchDefaultEntries = _require3.FetchDefaultEntries, - FetchSpecifiedContentTypesEntries = _require3.FetchSpecifiedContentTypesEntries, - FetchSpecifiedLocalesEntries = _require3.FetchSpecifiedLocalesEntries, - FetchSpecifiedLocalesAndContentTypesEntries = _require3.FetchSpecifiedLocalesAndContentTypesEntries; -var _require4 = require('./utils'), - CODES = _require4.CODES, - getCustomHeaders = _require4.getCustomHeaders; -var OPTION_CLASS_MAPPING = { - '': FetchDefaultContentTypes, - contentTypes: FetchSpecifiedContentTypes, - excludeContentTypes: FetchUnspecifiedContentTypes, - locales: FetchDefaultContentTypes, - contentTypeslocales: FetchSpecifiedContentTypes, - excludeContentTypeslocales: FetchUnspecifiedContentTypes -}; -var OPTIONS_ENTRIES_CLASS_MAPPING = { - '': FetchDefaultEntries, - contentTypes: FetchSpecifiedContentTypesEntries, - excludeContentTypes: FetchSpecifiedContentTypesEntries, - locales: FetchSpecifiedLocalesEntries, - contentTypeslocales: FetchSpecifiedLocalesAndContentTypesEntries, - excludeContentTypeslocales: FetchSpecifiedLocalesAndContentTypesEntries -}; -var activity; -var globalConfig; -var syncToken = []; -exports.fetchData = /*#__PURE__*/function () { - var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(configOptions, reporter, cache, contentTypeOption) { - var syncData, entryService, _syncData, contentstackData; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - activity = reporter.activityTimer("Fetching Contentstack data"); - activity.start(); - activity.setStatus('Starting to fetch data from Contentstack'); - _context.prev = 3; - syncData = {}; - entryService = new OPTIONS_ENTRIES_CLASS_MAPPING[contentTypeOption](); - _context.next = 8; - return entryService.fetchSyncData(configOptions, cache, fetchSyncData); - case 8: - _syncData = _context.sent; - syncData.data = _syncData.data; - contentstackData = { - syncData: syncData.data - }; - activity.end(); - return _context.abrupt("return", { - contentstackData: contentstackData - }); - case 15: - _context.prev = 15; - _context.t0 = _context["catch"](3); - reporter.panic({ - id: CODES.SyncError, - context: { - sourceMessage: "Fetching contentstack data failed. Please check https://www.contentstack.com/docs/developers/apis/content-delivery-api/ for more help." - }, - error: _context.t0 - }); - case 18: - case "end": - return _context.stop(); - } - }, _callee, null, [[3, 15]]); - })); - return function (_x, _x2, _x3, _x4) { - return _ref.apply(this, arguments); - }; -}(); -exports.fetchContentTypes = /*#__PURE__*/function () { - var _ref2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(config, contentTypeOption) { - var url, responseKey, contentType, allContentTypes; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - globalConfig = config; - _context2.prev = 1; - config.cdn = config.cdn ? config.cdn : 'https://cdn.contentstack.io/v3'; - url = 'content_types'; - responseKey = 'content_types'; - contentType = new OPTION_CLASS_MAPPING[contentTypeOption](); - _context2.next = 8; - return contentType.getPagedData(url, config, responseKey, _getPagedData); - case 8: - allContentTypes = _context2.sent; - return _context2.abrupt("return", allContentTypes); - case 12: - _context2.prev = 12; - _context2.t0 = _context2["catch"](1); - reporter.panic({ - id: CODES.SyncError, - context: { - sourceMessage: "Fetching contentstack data failed. Please check https://www.contentstack.com/docs/developers/apis/content-delivery-api/ for more help." - }, - error: _context2.t0 - }); - case 15: - case "end": - return _context2.stop(); - } - }, _callee2, null, [[1, 12]]); - })); - return function (_x5, _x6) { - return _ref2.apply(this, arguments); - }; -}(); -var fetchSyncData = /*#__PURE__*/function () { - var _ref3 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(query, config) { - var url, response; - return _regenerator["default"].wrap(function _callee3$(_context3) { - while (1) switch (_context3.prev = _context3.next) { - case 0: - url = 'stacks/sync'; - _context3.next = 3; - return _getSyncData(url, config, query, 'items'); - case 3: - response = _context3.sent; - return _context3.abrupt("return", response); - case 5: - case "end": - return _context3.stop(); - } - }, _callee3); - })); - return function fetchSyncData(_x7, _x8) { - return _ref3.apply(this, arguments); - }; -}(); -function waitFor(milliseconds) { - return new Promise(function (resolve) { - return setTimeout(resolve, milliseconds); - }); -} -var getData = /*#__PURE__*/function () { - var _ref4 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5(url, options) { - var retries; - return _regenerator["default"].wrap(function _callee5$(_context5) { - while (1) switch (_context5.prev = _context5.next) { - case 0: - retries = 0; - return _context5.abrupt("return", new Promise(function (resolve, reject) { - var _handleResponse = function handleResponse() { - fetch(url, options).then(function (response) { - return response.json(); - }).then(function (data) { - if (data.error_code) { - console.error(data); - if (data.error_code >= 500) { - throw new Error("Server error: ".concat(data.error_code)); - } - reject(data); - } else { - if (data.items) { - var filteredData = data === null || data === void 0 ? void 0 : data.items.filter(function (item) { - return item.data.hasOwnProperty('publish_details'); - }); - data.items = filteredData; - } - resolve(data); - } - })["catch"](/*#__PURE__*/function () { - var _ref5 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4(err) { - var retryAttempt, timeToWait; - return _regenerator["default"].wrap(function _callee4$(_context4) { - while (1) switch (_context4.prev = _context4.next) { - case 0: - retryAttempt = globalConfig.httpRetries ? globalConfig.httpRetries : 3; - if (!(retries < retryAttempt)) { - _context4.next = 9; - break; - } - retries++; - timeToWait = Math.pow(2, retries) * 100; - _context4.next = 6; - return waitFor(timeToWait); - case 6: - _handleResponse(); - _context4.next = 11; - break; - case 9: - console.error(err); - reject(new Error("Fetch failed after ".concat(retryAttempt, " retry attempts."))); - case 11: - case "end": - return _context4.stop(); - } - }, _callee4); - })); - return function (_x11) { - return _ref5.apply(this, arguments); - }; - }()); - }; - retries = 1; - _handleResponse(); - })); - case 2: - case "end": - return _context5.stop(); - } - }, _callee5); - })); - return function getData(_x9, _x10) { - return _ref4.apply(this, arguments); - }; -}(); -var fetchCsData = /*#__PURE__*/function () { - var _ref6 = (0, _asyncToGenerator2["default"])(function (url, config, query) { - var SyncRetryCount = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0; - return /*#__PURE__*/_regenerator["default"].mark(function _callee6() { - var queryParams, apiUrl, option, data; - return _regenerator["default"].wrap(function _callee6$(_context6) { - while (1) switch (_context6.prev = _context6.next) { - case 0: - query = query || {}; - query.include_count = true; - query.environment = config.environment; - queryParams = queryString.stringify(query); - apiUrl = "".concat(config.cdn, "/").concat(url, "?").concat(queryParams); - option = { - headers: _objectSpread({ - 'X-User-Agent': "contentstack-gatsby-source-plugin-".concat(version), - api_key: config === null || config === void 0 ? void 0 : config.api_key, - access_token: config === null || config === void 0 ? void 0 : config.delivery_token, - branch: config !== null && config !== void 0 && config.branch ? config.branch : 'main' - }, getCustomHeaders(config === null || config === void 0 ? void 0 : config.enableEarlyAccessKey, config === null || config === void 0 ? void 0 : config.enableEarlyAccessValue)) - }; - _context6.next = 8; - return getData(apiUrl, option); - case 8: - data = _context6.sent; - return _context6.abrupt("return", data); - case 10: - case "end": - return _context6.stop(); - } - }, _callee6); - })(); - }); - return function fetchCsData(_x12, _x13, _x14) { - return _ref6.apply(this, arguments); - }; -}(); -var _getPagedData = /*#__PURE__*/function () { - var _ref7 = (0, _asyncToGenerator2["default"])(function (url, config, responseKey) { - var query = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; - var skip = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0; - var limit = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : config === null || config === void 0 ? void 0 : config.limit; - var aggregatedResponse = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null; - return /*#__PURE__*/_regenerator["default"].mark(function _callee7() { - var response; - return _regenerator["default"].wrap(function _callee7$(_context7) { - while (1) switch (_context7.prev = _context7.next) { - case 0: - query.skip = skip; - //if limit is greater than 100, it will throw ann error that limit cannot exceed 100. - if (limit > 100) { - console.error('Limit cannot exceed 100. Setting limit to 50.'); - } - query.limit = limit > 100 ? 50 : limit; - query.include_global_field_schema = true; - _context7.next = 6; - return fetchCsData(url, config, query); - case 6: - response = _context7.sent; - if (!aggregatedResponse) { - aggregatedResponse = response[responseKey]; - } else { - aggregatedResponse = aggregatedResponse.concat(response[responseKey]); - } - if (!(skip + limit <= response.count)) { - _context7.next = 10; - break; - } - return _context7.abrupt("return", _getPagedData(url, config, responseKey, query = {}, skip + limit, limit, aggregatedResponse)); - case 10: - return _context7.abrupt("return", aggregatedResponse); - case 11: - case "end": - return _context7.stop(); - } - }, _callee7); - })(); - }); - return function getPagedData(_x15, _x16, _x17) { - return _ref7.apply(this, arguments); - }; -}(); -var _getSyncData = /*#__PURE__*/function () { - var _ref8 = (0, _asyncToGenerator2["default"])(function (url, config, query, responseKey) { - var aggregatedResponse = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null; - var retries = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0; - return /*#__PURE__*/_regenerator["default"].mark(function _callee8() { - var response, timeToWait, aggregatedSyncToken, _iterator, _step, _aggregatedResponse$d, _aggregatedResponse$d2, token, syncResponse, _timeToWait; - return _regenerator["default"].wrap(function _callee8$(_context8) { - while (1) switch (_context8.prev = _context8.next) { - case 0: - _context8.prev = 0; - _context8.next = 3; - return fetchCsData(url, config, query); - case 3: - response = _context8.sent; - /* - Below syncToken array would contain type --> 'asset_published', 'entry_published' sync tokens - */ - if (response.items.some(function (item) { - return ['entry_published', 'asset_published'].includes(item.type); - })) { - syncToken.push(response.sync_token); - } - if (!aggregatedResponse) { - aggregatedResponse = {}; - aggregatedResponse.data = []; - aggregatedResponse.data = response[responseKey]; - aggregatedResponse.sync_token = response.sync_token; - } else { - aggregatedResponse.data = aggregatedResponse.data || []; - aggregatedResponse.data = aggregatedResponse.data.concat(response[responseKey]); - aggregatedResponse.sync_token = response.sync_token ? response.sync_token : aggregatedResponse.sync_token; - } - if (!response.pagination_token) { - _context8.next = 25; - break; - } - _context8.prev = 7; - _context8.next = 10; - return _getSyncData(url, config, { - pagination_token: response.pagination_token - }, responseKey, aggregatedResponse, 0 // Reset retries for each call - ); - case 10: - return _context8.abrupt("return", _context8.sent); - case 13: - _context8.prev = 13; - _context8.t0 = _context8["catch"](7); - if (!(retries < config.httpRetries)) { - _context8.next = 24; - break; - } - timeToWait = Math.pow(2, retries) * 100; //Retry attempt ${retries + 1} after pagination token error. Waiting for ${timeToWait} ms... - _context8.next = 19; - return waitFor(timeToWait); - case 19: - _context8.next = 21; - return _getSyncData(url, config, { - pagination_token: response.pagination_token - }, responseKey, aggregatedResponse, retries + 1); - case 21: - return _context8.abrupt("return", _context8.sent); - case 24: - throw new Error("Failed to fetch sync data after ".concat(config.httpRetries, " retry attempts due to invalid pagination token.")); - case 25: - if (!response.sync_token) { - _context8.next = 63; - break; - } - /** - * To make final sync call and concatenate the result if found any during on fetch request. - */ - aggregatedSyncToken = syncToken.filter(function (item) { - return item !== undefined; - }); - _iterator = _createForOfIteratorHelper(aggregatedSyncToken); - _context8.prev = 28; - _iterator.s(); - case 30: - if ((_step = _iterator.n()).done) { - _context8.next = 55; - break; - } - token = _step.value; - syncResponse = void 0; - _context8.prev = 33; - _context8.next = 36; - return fetchCsData(url, config, query = { - sync_token: token - }, 0 // Reset SyncRetryCount for each call - ); - case 36: - syncResponse = _context8.sent; - _context8.next = 51; - break; - case 39: - _context8.prev = 39; - _context8.t1 = _context8["catch"](33); - if (!(SyncRetryCount < config.httpRetries)) { - _context8.next = 50; - break; - } - _timeToWait = Math.pow(2, SyncRetryCount) * 100; //Retry attempt ${retries + 1} after sync token error. Waiting for ${timeToWait} ms... - _context8.next = 45; - return waitFor(_timeToWait); - case 45: - _context8.next = 47; - return fetchCsData(url, config, query = { - sync_token: token - }, SyncRetryCount + 1); - case 47: - return _context8.abrupt("return", syncResponse = _context8.sent); - case 50: - throw new Error("Failed to fetch sync data after ".concat(config.httpRetries, " retry attempts due to invalid sync token.")); - case 51: - aggregatedResponse.data = (_aggregatedResponse$d = aggregatedResponse.data) === null || _aggregatedResponse$d === void 0 ? void 0 : (_aggregatedResponse$d2 = _aggregatedResponse$d).concat.apply(_aggregatedResponse$d2, (0, _toConsumableArray2["default"])(syncResponse.items)); - aggregatedResponse.sync_token = syncResponse.sync_token; - case 53: - _context8.next = 30; - break; - case 55: - _context8.next = 60; - break; - case 57: - _context8.prev = 57; - _context8.t2 = _context8["catch"](28); - _iterator.e(_context8.t2); - case 60: - _context8.prev = 60; - _iterator.f(); - return _context8.finish(60); - case 63: - syncToken = []; - return _context8.abrupt("return", aggregatedResponse); - case 67: - _context8.prev = 67; - _context8.t3 = _context8["catch"](0); - throw new Error("Failed to fetch sync data: ".concat(_context8.t3.message)); - case 70: - case "end": - return _context8.stop(); - } - }, _callee8, null, [[0, 67], [7, 13], [28, 57, 60, 63], [33, 39]]); - })(); - }); - return function getSyncData(_x18, _x19, _x20, _x21) { - return _ref8.apply(this, arguments); - }; -}(); -//# sourceMappingURL=fetch.js.map \ No newline at end of file diff --git a/gatsby-node.js b/gatsby-node.js deleted file mode 100644 index e9a9bf4..0000000 --- a/gatsby-node.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var _require = require('./source-node'), - sourceNodes = _require.sourceNodes; -var _require2 = require('./pre-bootstrap'), - onPreBootstrap = _require2.onPreBootstrap; -var _require3 = require('./plugin-options-schema'), - pluginOptionsSchema = _require3.pluginOptionsSchema; -var _require4 = require('./plugin-init'), - onPluginInit = _require4.onPluginInit; -var _require5 = require('./create-schema-customization'), - createSchemaCustomization = _require5.createSchemaCustomization; -var _require6 = require('./create-resolvers'), - createResolvers = _require6.createResolvers; -exports.onPreBootstrap = onPreBootstrap; -exports.createSchemaCustomization = createSchemaCustomization; -exports.sourceNodes = sourceNodes; -exports.createResolvers = createResolvers; -exports.pluginOptionsSchema = pluginOptionsSchema; -exports.onPluginInit = onPluginInit; -//# sourceMappingURL=gatsby-node.js.map \ No newline at end of file diff --git a/gatsby-plugin-image.js b/gatsby-plugin-image.js deleted file mode 100644 index 03f0289..0000000 --- a/gatsby-plugin-image.js +++ /dev/null @@ -1,206 +0,0 @@ -'use strict'; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); -var _typeof = require("@babel/runtime/helpers/typeof"); -var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); -var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); -var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); -var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); -function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } -function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -var _require = require('gatsby-core-utils'), - fetchRemoteFile = _require.fetchRemoteFile; -var readFile = require('fs').promises.readFile; -var _require2 = require('./image-helper'), - createUrl = _require2.createUrl, - mimeTypeExtensions = _require2.mimeTypeExtensions, - validImageFormats = _require2.validImageFormats, - isImage = _require2.isImage; -var _require3 = require('./utils'), - CODES = _require3.CODES; -var unresolvedBase64Cache = {}; -var resolvedBase64Cache = {}; -var getBase64Image = exports.getBase64Image = function (props, cache, reporter) { - var aspectRatio = props.aspectRatio; - var originalFormat = props.image.content_type.split('/')[1]; - var toFormat = props.options.toFormat; - var imageOptions = _objectSpread(_objectSpread({}, props.options), {}, { - toFormat: toFormat, - width: 20, - height: Math.floor(20 * aspectRatio) - }); - var csImageUrl = createUrl(props.baseUrl, imageOptions); - var resolvedUrl = resolvedBase64Cache[csImageUrl]; - if (resolvedUrl) { - return resolvedUrl; - } - var inflightUrl = unresolvedBase64Cache[csImageUrl]; - if (inflightUrl) { - return inflightUrl; - } - var loadImage = /*#__PURE__*/function () { - var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() { - var content_type, extension, absolutePath, base64; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - content_type = props.image.content_type; - extension = mimeTypeExtensions[content_type]; - _context.next = 4; - return fetchRemoteFile({ - url: csImageUrl, - cache: cache, - ext: extension - }); - case 4: - absolutePath = _context.sent; - _context.next = 7; - return readFile(absolutePath); - case 7: - base64 = _context.sent.toString('base64'); - return _context.abrupt("return", "data:image/".concat(toFormat || originalFormat, ";base64,").concat(base64)); - case 9: - case "end": - return _context.stop(); - } - }, _callee); - })); - return function loadImage() { - return _ref.apply(this, arguments); - }; - }(); - var promise = loadImage(); - unresolvedBase64Cache[csImageUrl] = promise; - return promise.then(function (body) { - delete unresolvedBase64Cache[csImageUrl]; - resolvedBase64Cache[csImageUrl] = body; - })["catch"](function (error) { - reporter.panic({ - id: CODES.ImageAPIError, - context: { - sourceMessage: "Error occurred while fetching image. Please find the image url here: ".concat(props.baseUrl) - }, - error: error - }); - }); -}; -function getBasicImageProps(image, args) { - var aspectRatio; - if (args.width && args.height) { - aspectRatio = args.width / args.height; - } else { - aspectRatio = image.dimension.width / image.dimension.height; - } - return { - baseUrl: image.url, - contentType: image.content_type, - aspectRatio: aspectRatio, - width: image.dimension.width, - height: image.dimension.height - }; -} - -// Generate image source data for gatsby-plugin-image -function generateImageSource(filename, width, height, toFormat, _fit, imageTransformOptions) { - var quality = imageTransformOptions.quality, - crop = imageTransformOptions.crop, - backgroundColor = imageTransformOptions.backgroundColor, - fit = imageTransformOptions.fit, - trim = imageTransformOptions.trim, - pad = imageTransformOptions.pad; - if (!validImageFormats.includes(toFormat)) { - console.warn("[gatsby-source-contentstack] Invalid image format \"".concat(toFormat, "\". Supported types are ").concat(validImageFormats.join(', '))); - return; - } - var src = createUrl(filename, { - width: width, - height: height, - toFormat: toFormat, - fit: fit, - background: backgroundColor === null || backgroundColor === void 0 ? void 0 : backgroundColor.replace('#', 'rgb:'), - quality: quality, - crop: crop, - trim: trim, - pad: pad - }); - return { - width: width, - height: height, - format: toFormat, - src: src - }; -} -exports.resolveGatsbyImageData = /*#__PURE__*/function () { - var _ref2 = (0, _asyncToGenerator2["default"])(function (_ref3) { - var image = _ref3.image, - options = _ref3.options, - cache = _ref3.cache, - reporter = _ref3.reporter; - return /*#__PURE__*/_regenerator["default"].mark(function _callee2() { - var _yield$import, generateImageData, _getBasicImageProps, baseUrl, contentType, width, height, _contentType$split, _contentType$split2, format, imageProps, placeholderDataURI; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - if (isImage(image)) { - _context2.next = 2; - break; - } - return _context2.abrupt("return", null); - case 2: - _context2.next = 4; - return Promise.resolve().then(function () { - return _interopRequireWildcard(require('gatsby-plugin-image')); - }); - case 4: - _yield$import = _context2.sent; - generateImageData = _yield$import.generateImageData; - _getBasicImageProps = getBasicImageProps(image, options), baseUrl = _getBasicImageProps.baseUrl, contentType = _getBasicImageProps.contentType, width = _getBasicImageProps.width, height = _getBasicImageProps.height; - _contentType$split = contentType.split('/'), _contentType$split2 = (0, _slicedToArray2["default"])(_contentType$split, 2), format = _contentType$split2[1]; - if (format === 'jpeg') { - format = 'jpg'; - } - imageProps = generateImageData(_objectSpread(_objectSpread({}, options), {}, { - pluginName: 'gatsby-source-contentstack', - sourceMetadata: { - width: width, - height: height, - format: format - }, - filename: baseUrl, - generateImageSource: generateImageSource, - options: options - })); - placeholderDataURI = null; - if (!(options.placeholder === 'blurred')) { - _context2.next = 15; - break; - } - _context2.next = 14; - return getBase64Image({ - baseUrl: baseUrl, - image: image, - options: options - }, cache, reporter); - case 14: - placeholderDataURI = _context2.sent; - case 15: - if (placeholderDataURI) { - imageProps.placeholder = { - fallback: placeholderDataURI - }; - } - return _context2.abrupt("return", imageProps); - case 17: - case "end": - return _context2.stop(); - } - }, _callee2); - })(); - }); - return function (_x) { - return _ref2.apply(this, arguments); - }; -}(); -//# sourceMappingURL=gatsby-plugin-image.js.map \ No newline at end of file diff --git a/image-helper.js b/image-helper.js deleted file mode 100644 index 35ad778..0000000 --- a/image-helper.js +++ /dev/null @@ -1,48 +0,0 @@ -'use strict'; - -var _require = require('url'), - URLSearchParams = _require.URLSearchParams; - -// Determine the proper file extension based on mime type -var mimeTypeExtensions = { - 'image/jpeg': '.jpg', - 'image/jpg': '.jpg', - 'image/gif': '.gif', - 'image/png': '.png', - 'image/webp': '.webp' -}; - -// Supported image formats by contentstack image API -var validImageFormats = ['jpg', 'png', 'webp', 'gif']; -var isImage = function isImage(image) { - return !!mimeTypeExtensions[image === null || image === void 0 ? void 0 : image.content_type]; -}; - -// Creates a Contentstack image url -var createUrl = function createUrl(imgUrl) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - var queryParams = { - width: options.width, - height: options.height, - format: options.toFormat, - quality: options.quality, - crop: options.crop, - fit: options.fit, - trim: options.trim, - pad: options.pad, - 'bg-color': options.background - }; - var searchParams = new URLSearchParams(); - for (var key in queryParams) { - if (typeof queryParams[key] !== 'undefined') { - var _queryParams$key; - searchParams.append(key, (_queryParams$key = queryParams[key]) !== null && _queryParams$key !== void 0 ? _queryParams$key : ''); - } - } - return "".concat(imgUrl, "?").concat(searchParams.toString()); -}; -exports.mimeTypeExtensions = mimeTypeExtensions; -exports.validImageFormats = validImageFormats; -exports.isImage = isImage; -exports.createUrl = createUrl; -//# sourceMappingURL=image-helper.js.map \ No newline at end of file diff --git a/node-helper.js b/node-helper.js deleted file mode 100644 index a6f6ab9..0000000 --- a/node-helper.js +++ /dev/null @@ -1,76 +0,0 @@ -'use strict'; - -/* - `node-fetch` have different export depending on CJS or ESM - context - requiring CJS (regular build) will return a function directly, - requiring ESM (what is currently being bundled for rendering engines - which are used by DSG) will return object with `default` field which is - a function. `preferDefault` helper will just use `.default` if available, - but will fallback to entire export if not available -*/ -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); -var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); -var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); -var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -var preferDefault = function preferDefault(m) { - return m && m["default"] || m; -}; -var fetch = preferDefault(require('node-fetch')); -var _require = require('./utils'), - getCustomHeaders = _require.getCustomHeaders; -var deleteContentstackNodes = function deleteContentstackNodes(item, type, createNodeId, getNode, deleteNode, typePrefix) { - var nodeId = ''; - var node = null; - if (type === 'entry') { - nodeId = createNodeId("".concat(typePrefix.toLowerCase(), "-entry-").concat(item.uid, "-").concat(item.locale)); - } - if (type === 'asset') { - nodeId = createNodeId("".concat(typePrefix.toLowerCase(), "-assets-").concat(item.uid, "-").concat(item.locale)); - } - node = getNode(nodeId); - if (node) { - deleteNode(node); - } -}; -var validateContentstackAccess = /*#__PURE__*/function () { - var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(pluginOptions) { - var host; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - if (!(process.env.NODE_ENV === "test")) { - _context.next = 2; - break; - } - return _context.abrupt("return", undefined); - case 2: - host = pluginOptions.cdn ? pluginOptions.cdn : 'https://cdn.contentstack.io/v3'; - _context.next = 5; - return fetch("".concat(host, "/content_types?include_count=false"), { - headers: _objectSpread({ - api_key: "".concat(pluginOptions.api_key), - access_token: "".concat(pluginOptions.delivery_token), - branch: pluginOptions === null || pluginOptions === void 0 ? void 0 : pluginOptions.branch - }, getCustomHeaders(pluginOptions === null || pluginOptions === void 0 ? void 0 : pluginOptions.enableEarlyAccessKey, pluginOptions === null || pluginOptions === void 0 ? void 0 : pluginOptions.enableEarlyAccessValue)) - }).then(function (res) { - return res.ok; - }).then(function (ok) { - if (!ok) throw new Error("Cannot access Contentstack with api_key=".concat(pluginOptions.api_key, " & delivery_token=").concat(pluginOptions.delivery_token, ".")); - }); - case 5: - return _context.abrupt("return", undefined); - case 6: - case "end": - return _context.stop(); - } - }, _callee); - })); - return function validateContentstackAccess(_x) { - return _ref.apply(this, arguments); - }; -}(); -exports.deleteContentstackNodes = deleteContentstackNodes; -exports.validateContentstackAccess = validateContentstackAccess; -//# sourceMappingURL=node-helper.js.map \ No newline at end of file diff --git a/normalize.js b/normalize.js deleted file mode 100644 index c04e4e9..0000000 --- a/normalize.js +++ /dev/null @@ -1,520 +0,0 @@ -'use strict'; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); -var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); -var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); -var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -var _require = require('./utils'), - getJSONToHtmlRequired = _require.getJSONToHtmlRequired; -exports.processContentType = function (contentType, createNodeId, createContentDigest, typePrefix) { - var nodeId = createNodeId("".concat(typePrefix.toLowerCase(), "-contentType-").concat(contentType.uid)); - var type = "".concat(typePrefix, "ContentTypes"); - var nodeContent = JSON.stringify(contentType); - var nodeData = _objectSpread(_objectSpread({}, contentType), {}, { - id: nodeId, - parent: null, - children: [], - internal: { - type: type, - content: nodeContent, - contentDigest: createContentDigest(nodeContent) - } - }); - return nodeData; -}; -exports.processAsset = function (asset, createNodeId, createContentDigest, typePrefix) { - var nodeId = makeAssetNodeUid(asset, createNodeId, typePrefix); - var nodeContent = JSON.stringify(asset); - var nodeData = _objectSpread(_objectSpread({}, asset), {}, { - id: nodeId, - parent: null, - children: [], - internal: { - type: "".concat(typePrefix, "_assets"), - content: nodeContent, - contentDigest: createContentDigest(nodeContent) - } - }); - return nodeData; -}; -exports.processEntry = function (contentType, entry, createNodeId, createContentDigest, typePrefix) { - var nodeId = makeEntryNodeUid(entry, createNodeId, typePrefix); - var nodeContent = JSON.stringify(entry); - var nodeData = _objectSpread(_objectSpread({}, entry), {}, { - id: nodeId, - parent: null, - children: [], - internal: { - type: "".concat(typePrefix, "_").concat(contentType.uid), - content: nodeContent, - contentDigest: createContentDigest(nodeContent) - } - }); - return nodeData; -}; -exports.normalizeEntry = function (contentType, entry, entriesNodeIds, assetsNodeIds, createNodeId, typePrefix, configOptions) { - var _entry$publish_detail; - var resolveEntry = _objectSpread(_objectSpread({}, entry), builtEntry(contentType.schema, entry, entry === null || entry === void 0 || (_entry$publish_detail = entry.publish_details) === null || _entry$publish_detail === void 0 ? void 0 : _entry$publish_detail.locale, entriesNodeIds, assetsNodeIds, createNodeId, typePrefix, configOptions)); - return resolveEntry; -}; -var makeAssetNodeUid = exports.makeAssetNodeUid = function (asset, createNodeId, typePrefix) { - var _asset$publish_detail; - var publishedLocale = asset === null || asset === void 0 || (_asset$publish_detail = asset.publish_details) === null || _asset$publish_detail === void 0 ? void 0 : _asset$publish_detail.locale; - return createNodeId("".concat(typePrefix.toLowerCase(), "-assets-").concat(asset.uid, "-").concat(publishedLocale)); -}; -var makeEntryNodeUid = exports.makeEntryNodeUid = function (entry, createNodeId, typePrefix) { - var _entry$publish_detail2; - var publishedLocale = entry === null || entry === void 0 || (_entry$publish_detail2 = entry.publish_details) === null || _entry$publish_detail2 === void 0 ? void 0 : _entry$publish_detail2.locale; - return createNodeId("".concat(typePrefix.toLowerCase(), "-entry-").concat(entry.uid, "-").concat(publishedLocale)); -}; -var normalizeGroup = function normalizeGroup(field, value, locale, entriesNodeIds, assetsNodeIds, createNodeId, typePrefix, configOptions) { - var groupObj = null; - if (field.multiple) { - groupObj = []; - if (value instanceof Array) { - value.forEach(function (groupValue) { - groupObj.push(builtEntry(field.schema, groupValue, locale, entriesNodeIds, assetsNodeIds, createNodeId, typePrefix, configOptions)); - }); - } else { - // In some cases value is null, this makes graphql treat all the objects as null - // So need to pass a valid array instance. - // This also helps to handle when a user changes a group to multiple after initially - // setting a group to single.. the server passes an object and the previous condition - // again makes groupObj null - groupObj.push(builtEntry(field.schema, value, locale, entriesNodeIds, assetsNodeIds, createNodeId, typePrefix, configOptions)); - } - } else { - groupObj = {}; - groupObj = builtEntry(field.schema, value, locale, entriesNodeIds, assetsNodeIds, createNodeId, typePrefix, configOptions); - } - return groupObj; -}; -var normalizeModularBlock = function normalizeModularBlock(blocks, value, locale, entriesNodeIds, assetsNodeIds, createNodeId, typePrefix, configOptions) { - var modularBlocksObj = []; - if (value) { - value.map(function (block) { - Object.keys(block).forEach(function (key) { - var blockSchema = blocks.filter(function (block) { - return block.uid === key; - }); - if (!blockSchema.length) { - // block value no longer exists block schema so ignore it - return; - } - var blockObj = {}; - blockObj[key] = builtEntry(blockSchema[0].schema, block[key], locale, entriesNodeIds, assetsNodeIds, createNodeId, typePrefix, configOptions); - modularBlocksObj.push(blockObj); - }); - }); - } - return modularBlocksObj; -}; -var normalizeReferenceField = function normalizeReferenceField(value, locale, entriesNodeIds, createNodeId, typePrefix) { - var reference = []; - if (value && !Array.isArray(value)) return; - value.forEach(function (entry) { - if ((0, _typeof2["default"])(entry) === 'object' && entry.uid) { - if (entriesNodeIds.has(createNodeId("".concat(typePrefix.toLowerCase(), "-entry-").concat(entry.uid, "-").concat(locale)))) { - reference.push(createNodeId("".concat(typePrefix.toLowerCase(), "-entry-").concat(entry.uid, "-").concat(locale))); - } - } else if (entriesNodeIds.has(createNodeId("".concat(typePrefix.toLowerCase(), "-entry-").concat(entry, "-").concat(locale)))) { - reference.push(createNodeId("".concat(typePrefix.toLowerCase(), "-entry-").concat(entry, "-").concat(locale))); - } - }); - return reference; -}; -var normalizeFileField = function normalizeFileField(value, locale, assetsNodeIds, createNodeId, typePrefix) { - var reference = {}; - if (Array.isArray(value)) { - reference = []; - value.forEach(function (assetUid) { - var nodeId = createNodeId("".concat(typePrefix.toLowerCase(), "-assets-").concat(assetUid, "-").concat(locale)); - if (assetsNodeIds.has(nodeId)) { - reference.push(nodeId); - } - }); - } else if (assetsNodeIds.has(createNodeId("".concat(typePrefix.toLowerCase(), "-assets-").concat(value, "-").concat(locale)))) { - reference = createNodeId("".concat(typePrefix.toLowerCase(), "-assets-").concat(value, "-").concat(locale)); - } else { - // when the asset is not published - reference = null; - } - return reference; -}; -var getSchemaValue = function getSchemaValue(obj, key) { - if (obj === null) return null; - if ((0, _typeof2["default"])(obj) !== 'object') return null; - return Object.prototype.hasOwnProperty.call(obj, key.uid) ? obj[key.uid] : null; -}; -var builtEntry = function builtEntry(schema, entry, locale, entriesNodeIds, assetsNodeIds, createNodeId, typePrefix, configOptions) { - var entryObj = {}; - schema.forEach(function (field) { - var value = getSchemaValue(entry, field); - switch (field.data_type) { - case 'reference': - entryObj["".concat(field.uid, "___NODE")] = value && normalizeReferenceField(value, locale, entriesNodeIds, createNodeId, typePrefix); - break; - case 'file': - if (!value) value = null; - entryObj["".concat(field.uid, "___NODE")] = value && normalizeFileField(value, locale, assetsNodeIds, createNodeId, typePrefix); - break; - case 'group': - case 'global_field': - entryObj[field.uid] = normalizeGroup(field, value, locale, entriesNodeIds, assetsNodeIds, createNodeId, typePrefix, configOptions); - break; - case 'blocks': - entryObj[field.uid] = normalizeModularBlock(field.blocks, value, locale, entriesNodeIds, assetsNodeIds, createNodeId, typePrefix, configOptions); - break; - case 'json': - entryObj[field.uid] = value; - break; - default: - entryObj[field.uid] = value; - } - }); - return entryObj; -}; -var buildBlockCustomSchema = function buildBlockCustomSchema(blocks, types, references, groups, fileFields, jsonRteFields, parent, prefix, disableMandatoryFields, jsonRteToHtml, createNodeId, interfaceParent) { - if (interfaceParent) interfaceParent = interfaceParent.replace(/-/g, "_"); - var blockType = interfaceParent ? "type ".concat(parent, " implements ").concat(interfaceParent, " @infer {") : "type ".concat(parent, " @infer {"); - var blockInterface = interfaceParent && "interface ".concat(interfaceParent, " {"); - var blockFields = {}; // Initialize blockFields here - blocks.forEach(function (block) { - var newparent = parent.concat(block.uid); - // If this block has a reference_to, it is a global field and should have a new interface - var newInterfaceParent = block.reference_to ? "".concat(prefix, "_").concat(block.reference_to.replace(/-/g, "_")) : interfaceParent && interfaceParent.concat(block.uid); - blockType = blockType.concat("".concat(block.uid, " : ").concat(newparent, " ")); - blockInterface = blockInterface && blockInterface.concat("".concat(block.uid, " : ").concat(newInterfaceParent, " ")); - var _buildCustomSchema = buildCustomSchema(block.schema, types, references, groups, fileFields, jsonRteFields, newparent, prefix, disableMandatoryFields, jsonRteToHtml, createNodeId, newInterfaceParent), - fields = _buildCustomSchema.fields; - var typeFields = {}; - var interfaceFields = {}; - for (var key in fields) { - typeFields[key] = fields[key].type || fields[key]; - interfaceFields[key] = typeFields[key].replace(newparent, newInterfaceParent); - } - if (Object.keys(fields).length > 0) { - if (newInterfaceParent) { - var interfaceType = "interface ".concat(newInterfaceParent, " ").concat(JSON.stringify(interfaceFields).replace(/"/g, '')); - var type = "type ".concat(newparent, " implements ").concat(newInterfaceParent, " @infer ").concat(JSON.stringify(typeFields).replace(/"/g, '')); - types.push(interfaceType, type); - } else { - var _type = "type ".concat(newparent, " @infer ").concat(JSON.stringify(typeFields).replace(/"/g, '')); - types.push(_type); - } - blockFields[block.uid] = "".concat(newparent); - } - }); - blockType = blockType.concat('}'); - blockInterface = blockInterface && blockInterface.concat('}'); - return blockInterface ? [blockInterface, blockType] : [blockType]; -}; -exports.extendSchemaWithDefaultEntryFields = function (schema) { - schema.push({ - data_type: 'text', - uid: 'uid', - multiple: false, - mandatory: false - }); - schema.push({ - data_type: 'text', - uid: 'locale', - multiple: false, - mandatory: false - }); - schema.push({ - data_type: 'group', - uid: 'publish_details', - schema: [{ - data_type: 'text', - uid: 'locale', - multiple: false, - mandatory: false - }], - multiple: false, - mandatory: false - }); - schema.push({ - data_type: 'isodate', - uid: 'updated_at', - multiple: false, - mandatory: false - }); - schema.push({ - data_type: 'string', - uid: 'updated_by', - multiple: false, - mandatory: false - }); - schema.push({ - data_type: 'isodate', - uid: 'created_at', - multiple: false, - mandatory: false - }); - schema.push({ - data_type: 'string', - uid: 'created_by', - multiple: false, - mandatory: false - }); - return schema; -}; -var buildCustomSchema = exports.buildCustomSchema = function (schema, types, references, groups, fileFields, jsonRteFields, parent, prefix, disableMandatoryFields, jsonRteToHtml, createNodeId, interfaceParent) { - var fields = {}; - groups = groups || []; - references = references || []; - fileFields = fileFields || []; - types = types || []; - jsonRteFields = jsonRteFields || []; - schema.forEach(function (field) { - var _types; - switch (field.data_type) { - case 'text': - fields[field.uid] = { - resolve: function resolve(source) { - return source[field.uid] || null; - } - }; - if (field.mandatory && !disableMandatoryFields) { - if (field.multiple) { - fields[field.uid].type = '[String]!'; - } else { - fields[field.uid].type = 'String!'; - } - } else if (field.multiple) { - fields[field.uid].type = '[String]'; - } else { - fields[field.uid].type = 'String'; - } - break; - case 'isodate': - if (field.mandatory && !disableMandatoryFields) { - if (field.multiple) { - fields[field.uid] = { - type: '[Date]!' - }; - } else { - fields[field.uid] = { - type: 'Date!' - }; - } - } else if (field.multiple) { - fields[field.uid] = { - type: '[Date]' - }; - } else { - fields[field.uid] = { - type: 'Date' - }; - } - fields[field.uid].extensions = { - dateformat: {} - }; - break; - case 'boolean': - if (field.mandatory && !disableMandatoryFields) { - if (field.multiple) { - fields[field.uid] = '[Boolean]!'; - } else { - fields[field.uid] = 'Boolean!'; - } - } else if (field.multiple) { - fields[field.uid] = '[Boolean]'; - } else { - fields[field.uid] = 'Boolean'; - } - break; - case 'number': - fields[field.uid] = { - resolve: function resolve(source) { - return source[field.uid] || null; - } - }; - if (field.mandatory && !disableMandatoryFields) { - if (field.multiple) { - fields[field.uid].type = '[Float]!'; - } else { - fields[field.uid].type = 'Float!'; - } - } else if (field.multiple) { - fields[field.uid].type = '[Float]'; - } else { - fields[field.uid].type = 'Float'; - } - break; - // This is to support custom field types nested inside groups, global_fields & modular_blocks - case 'json': - if (getJSONToHtmlRequired(jsonRteToHtml, field)) { - jsonRteFields.push({ - parent: parent, - field: field - }); - if (field.mandatory && !disableMandatoryFields) { - if (field.multiple) { - fields[field.uid] = '[String]!'; - } else { - fields[field.uid] = 'String!'; - } - } else if (field.multiple) { - fields[field.uid] = '[String]'; - } else { - fields[field.uid] = 'String'; - } - } else { - fields[field.uid] = { - resolve: function resolve(source) { - return source[field.uid] || null; - } - }; - if (field.mandatory && !disableMandatoryFields) { - if (field.multiple) { - fields[field.uid].type = '[JSON]!'; - } else { - fields[field.uid].type = 'JSON!'; - } - } else if (field.multiple) { - fields[field.uid].type = '[JSON]'; - } else { - fields[field.uid].type = 'JSON'; - } - } - break; - case 'link': - if (field.mandatory && !disableMandatoryFields) { - if (field.multiple) { - fields[field.uid] = '[linktype]!'; - } else { - fields[field.uid] = 'linktype!'; - } - } else if (field.multiple) { - fields[field.uid] = '[linktype]'; - } else { - fields[field.uid] = 'linktype'; - } - break; - case 'file': - fileFields.push({ - parent: parent, - field: field - }); - if (field.mandatory && !disableMandatoryFields) { - if (field.multiple) { - fields[field.uid] = "[".concat(prefix, "_assets]!"); - } else { - fields[field.uid] = "".concat(prefix, "_assets!"); - } - } else if (field.multiple) { - fields[field.uid] = "[".concat(prefix, "_assets]"); - } else { - fields[field.uid] = "".concat(prefix, "_assets"); - } - break; - case 'group': - case 'global_field': - var newParent = parent.concat('_', field.uid); - // If this is a global field, generate a new top-level interface for it - var newInterfaceParent = field.data_type === 'global_field' ? "".concat(prefix, "_").concat(field.reference_to) : interfaceParent && interfaceParent.concat('_', field.uid); - var result = buildCustomSchema(field.schema, types, references, groups, fileFields, jsonRteFields, newParent, prefix, disableMandatoryFields, jsonRteToHtml, createNodeId, newInterfaceParent); - var typeFields = {}; - var interfaceFields = {}; - for (var key in result.fields) { - typeFields[key] = result.fields[key].type || result.fields[key]; - interfaceFields[key] = typeFields[key].replace(newParent, newInterfaceParent); - } - if (Object.keys(typeFields).length > 0) { - if (newInterfaceParent) { - var interfaceType = "interface ".concat(newInterfaceParent, " ").concat(JSON.stringify(interfaceFields).replace(/"/g, '')); - var type = "type ".concat(newParent, " implements ").concat(newInterfaceParent, " @infer ").concat(JSON.stringify(typeFields).replace(/"/g, '')); - types.push(interfaceType, type); - } else { - var _type2 = "type ".concat(newParent, " @infer ").concat(JSON.stringify(typeFields).replace(/"/g, '')); - types.push(_type2); - } - groups.push({ - parent: parent, - field: field - }); - if (field.mandatory && !disableMandatoryFields) { - if (field.multiple) { - fields[field.uid] = "[".concat(newParent, "]!"); - } else { - fields[field.uid] = "".concat(newParent, "!"); - } - } else if (field.multiple) { - fields[field.uid] = "[".concat(newParent, "]"); - } else { - fields[field.uid] = "".concat(newParent); - } - } - break; - case 'blocks': - var blockParent = parent.concat('_', field.uid); - var blockInterfaceParent = interfaceParent && interfaceParent.concat('_', field.uid); - var blockTypes = buildBlockCustomSchema(field.blocks, types, references, groups, fileFields, jsonRteFields, blockParent, prefix, disableMandatoryFields, jsonRteToHtml, createNodeId, blockInterfaceParent); - (_types = types).push.apply(_types, (0, _toConsumableArray2["default"])(blockTypes)); - if (field.mandatory && !disableMandatoryFields) { - if (field.multiple) { - fields[field.uid] = "[".concat(blockParent, "]!"); - } else { - fields[field.uid] = "".concat(blockParent, "!"); - } - } else if (field.multiple) { - fields[field.uid] = "[".concat(blockParent, "]"); - } else { - fields[field.uid] = "".concat(blockParent); - } - break; - case 'reference': - var unionType = 'union '; - if (typeof field.reference_to === 'string' || field.reference_to.length === 1) { - field.reference_to = Array.isArray(field.reference_to) ? field.reference_to[0] : field.reference_to; - var _type3 = "type ".concat(prefix, "_").concat(field.reference_to, " implements Node @infer { title: String").concat(disableMandatoryFields ? '' : '!', " }"); - types.push(_type3); - references.push({ - parent: parent, - uid: field.uid - }); - if (field.mandatory && !disableMandatoryFields) { - fields[field.uid] = "[".concat(prefix, "_").concat(field.reference_to, "]!"); - } else { - fields[field.uid] = "[".concat(prefix, "_").concat(field.reference_to, "]"); - } - } else { - var unions = []; - field.reference_to.forEach(function (reference) { - var referenceType = "".concat(prefix, "_").concat(reference); - unionType = unionType.concat(referenceType); - unions.push(referenceType); - var type = "type ".concat(referenceType, " implements Node @infer { title: String").concat(disableMandatoryFields ? '' : '!', " }"); - types.push(type); - }); - var name = ''; - name = name.concat(unions.join(''), '_Union'); - unionType = unionType.concat('_Union = ', unions.join(' | ')); - types.push(unionType); - references.push({ - parent: parent, - uid: field.uid - }); - if (field.mandatory && !disableMandatoryFields) { - fields[field.uid] = "[".concat(name, "]!"); - } else { - fields[field.uid] = "[".concat(name, "]"); - } - } - break; - } - }); - return { - fields: fields, - types: types, - references: references, - groups: groups, - fileFields: fileFields, - jsonRteFields: jsonRteFields - }; -}; -//# sourceMappingURL=normalize.js.map \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 86460b6..8abbe87 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "gatsby-source-contentstack", - "version": "5.3.3", + "version": "5.3.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "gatsby-source-contentstack", - "version": "5.3.3", + "version": "5.3.4", "license": "MIT", "dependencies": { "@contentstack/utils": "^1.1.3", diff --git a/package.json b/package.json index d1b1422..1da4f11 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gatsby-source-contentstack", - "version": "5.3.3", + "version": "5.3.4", "description": "Gatsby source plugin for building websites using Contentstack as a data source", "scripts": { "prepublish": "npm run build", diff --git a/plugin-init.js b/plugin-init.js deleted file mode 100644 index b59da50..0000000 --- a/plugin-init.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); -var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); -var _require = require('./utils'), - CODES = _require.CODES; -var ERROR_MAP = (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, CODES.SyncError, { - text: function text(context) { - return context.sourceMessage; - }, - level: "ERROR", - type: "PLUGIN" -}), CODES.APIError, { - text: function text(context) { - return context.sourceMessage; - }, - level: "ERROR", - type: "PLUGIN" -}), CODES.ImageAPIError, { - text: function text(context) { - return context.sourceMessage; - }, - level: "ERROR", - type: "PLUGIN" -}), CODES.MissingDependencyError, { - text: function text(context) { - return context.sourceMessage; - }, - level: "ERROR", - type: "PLUGIN" -}); -exports.onPluginInit = function (_ref) { - var reporter = _ref.reporter; - reporter.setErrorMap(ERROR_MAP); -}; -//# sourceMappingURL=plugin-init.js.map \ No newline at end of file diff --git a/plugin-options-schema.js b/plugin-options-schema.js deleted file mode 100644 index 18945ad..0000000 --- a/plugin-options-schema.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; - -var _require = require('./node-helper'), - validateContentstackAccess = _require.validateContentstackAccess; -exports.pluginOptionsSchema = function (_ref) { - var Joi = _ref.Joi; - return Joi.object({ - api_key: Joi.string().required().description("API Key is a unique key assigned to each stack."), - delivery_token: Joi.string().required().description("Delivery Token is a read-only credential."), - environment: Joi.string().required().description("Environment where you published your data."), - branch: Joi.string()["default"]('main').description("Specify a branch from where you'd like to fetch the data. Default it will be fetched from main"), - cdn: Joi.string()["default"]("https://cdn.contentstack.io/v3").description("CDN set this to point to other cdn end point. For eg: https://eu-cdn.contentstack.com/v3 "), - type_prefix: Joi.string()["default"]("Contentstack").description("Specify a different prefix for types. This is useful in cases where you have multiple instances of the plugin to be connected to different stacks."), - expediteBuild: Joi["boolean"]()["default"](false).description("expediteBuild set this to either true or false."), - enableSchemaGeneration: Joi["boolean"]()["default"](false).description("Specify true if you want to generate custom schema."), - disableMandatoryFields: Joi["boolean"]()["default"](false).description("Specify true if you want to generate optional graphql fields for mandatory Contentstack fields"), - downloadImages: Joi["boolean"]()["default"](false).description("Specify true if you want to download all your contentstack images locally"), - contentTypes: Joi.array().items(Joi.string().required()).description("Specify list of content-types to be fetched from contentstack"), - excludeContentTypes: Joi.array().items(Joi.string().required()).description("Specify list of content-types to be excluded while fetching data from contentstack"), - locales: Joi.array().items(Joi.string().required()).description("Specify list of locales to be fetched from contentstack"), - jsonRteToHtml: Joi["boolean"]()["default"](false).description("Specify true if you want to generate html from json RTE field"), - httpRetries: Joi.number().integer()["default"](3).description("Specify the number of times to perform http request on a network failure"), - limit: Joi.number().integer()["default"](50).description("Specify the number of entries/assets to be fetched per page"), - enableEarlyAccessKey: Joi.string()["default"]('').description("Specify the Header key to be passed to Contentstack API"), - enableEarlyAccessValue: Joi.string()["default"]('').description("Specify list of headers to be passed to Contentstack API.") - }).external(validateContentstackAccess); -}; -//# sourceMappingURL=plugin-options-schema.js.map \ No newline at end of file diff --git a/pre-bootstrap.js b/pre-bootstrap.js deleted file mode 100644 index f6a7148..0000000 --- a/pre-bootstrap.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -exports.onPreBootstrap = function (_ref) { - var reporter = _ref.reporter; - var args = process.argv; - if (args.includes('--verbose')) { - reporter.setVerbose(true); - } -}; -//# sourceMappingURL=pre-bootstrap.js.map \ No newline at end of file diff --git a/source-node.js b/source-node.js deleted file mode 100644 index c9a4cc4..0000000 --- a/source-node.js +++ /dev/null @@ -1,192 +0,0 @@ -'use strict'; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); -var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); -var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); -var _require = require('./utils'), - checkIfUnsupportedFormat = _require.checkIfUnsupportedFormat, - SUPPORTED_FILES_COUNT = _require.SUPPORTED_FILES_COUNT, - IMAGE_REGEXP = _require.IMAGE_REGEXP, - CODES = _require.CODES, - getContentTypeOption = _require.getContentTypeOption, - ASSET_NODE_UIDS = _require.ASSET_NODE_UIDS; -var downloadAssets = require('./download-assets'); -var _require2 = require('./node-helper'), - deleteContentstackNodes = _require2.deleteContentstackNodes; -var _require3 = require('./fetch'), - fetchData = _require3.fetchData; -var _require4 = require('./normalize'), - normalizeEntry = _require4.normalizeEntry, - processContentType = _require4.processContentType, - processEntry = _require4.processEntry, - processAsset = _require4.processAsset, - makeEntryNodeUid = _require4.makeEntryNodeUid, - makeAssetNodeUid = _require4.makeAssetNodeUid; -exports.sourceNodes = /*#__PURE__*/function () { - var _ref = (0, _asyncToGenerator2["default"])(function (_ref2, configOptions) { - var cache = _ref2.cache, - actions = _ref2.actions, - getNode = _ref2.getNode, - getNodes = _ref2.getNodes, - createNodeId = _ref2.createNodeId, - reporter = _ref2.reporter, - createContentDigest = _ref2.createContentDigest, - getNodesByType = _ref2.getNodesByType, - getCache = _ref2.getCache; - return /*#__PURE__*/_regenerator["default"].mark(function _callee() { - var createNode, deleteNode, touchNode, createNodeField, typePrefix, contentstackData, contentTypeOption, _yield$fetchData, _contentstackData, syncData, entriesNodeIds, assetsNodeIds, existingNodes, countOfSupportedFormatFiles, assetUids, contentTypesMap; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - createNode = actions.createNode, deleteNode = actions.deleteNode, touchNode = actions.touchNode, createNodeField = actions.createNodeField; // use a custom type prefix if specified - typePrefix = configOptions.type_prefix || 'Contentstack'; - _context.prev = 2; - contentTypeOption = getContentTypeOption(configOptions); - _context.next = 6; - return fetchData(configOptions, reporter, cache, contentTypeOption); - case 6: - _yield$fetchData = _context.sent; - _contentstackData = _yield$fetchData.contentstackData; - contentstackData = _contentstackData; - _context.next = 11; - return cache.get(typePrefix); - case 11: - contentstackData.contentTypes = _context.sent; - _context.next = 18; - break; - case 14: - _context.prev = 14; - _context.t0 = _context["catch"](2); - reporter.panic({ - id: CODES.SyncError, - context: { - sourceMessage: "Error occurred while fetching contentstack in [sourceNodes]. Please check https://www.contentstack.com/docs/developers/apis/content-delivery-api/ for more help." - }, - error: _context.t0 - }); - throw _context.t0; - case 18: - syncData = contentstackData.syncData.reduce(function (merged, item) { - if (!merged[item.type]) { - merged[item.type] = []; - } - merged[item.type].push(item); - return merged; - }, {}); // for checking if the reference node is present or not - entriesNodeIds = new Set(); - assetsNodeIds = new Set(); - existingNodes = getNodes().filter(function (n) { - return n.internal.owner === 'gatsby-source-contentstack'; - }); - existingNodes.forEach(function (n) { - if (n.internal.type !== "".concat(typePrefix, "ContentTypes") && n.internal.type !== "".concat(typePrefix, "_assets")) { - entriesNodeIds.add(n.id); - } - if (n.internal.type === "".concat(typePrefix, "_assets")) { - assetsNodeIds.add(n.id); - } - touchNode(n); - }); - syncData.entry_published && syncData.entry_published.forEach(function (item) { - var entryNodeId = makeEntryNodeUid(item.data, createNodeId, typePrefix); - entriesNodeIds.add(entryNodeId); - }); - countOfSupportedFormatFiles = 0, assetUids = []; - syncData.asset_published && syncData.asset_published.forEach(function (item) { - /** - * Get the count of assets (images), filtering out svg and gif format, as these formats are not supported by gatsby-image. - * We need the right count to render in progress bar, which will show progress for downloading remote files. - */ - if (configOptions.downloadImages) { - var matches, isUnsupportedExt; - try { - matches = IMAGE_REGEXP.exec(item.data.url); - isUnsupportedExt = checkIfUnsupportedFormat(item.data.url); - if (matches && !isUnsupportedExt) countOfSupportedFormatFiles++; - } catch (error) { - reporter.panic('Something went wrong. Details: ', error); - } - } - var assetNodeId = makeAssetNodeUid(item.data, createNodeId, typePrefix); - assetsNodeIds.add(assetNodeId); - assetUids.push(assetNodeId); - }); - _context.next = 28; - return cache.set(ASSET_NODE_UIDS, assetUids); - case 28: - _context.t1 = configOptions.downloadImages; - if (!_context.t1) { - _context.next = 32; - break; - } - _context.next = 32; - return cache.set(SUPPORTED_FILES_COUNT, countOfSupportedFormatFiles); - case 32: - contentTypesMap = {}; - contentstackData.contentTypes.forEach(function (contentType) { - contentType.uid = contentType.uid.replace(/-/g, '_'); - var contentTypeNode = processContentType(contentType, createNodeId, createContentDigest, typePrefix); - contentTypesMap[contentType.uid] = contentType; - createNode(contentTypeNode); - }); - syncData.entry_published && syncData.entry_published.forEach(function (item) { - item.content_type_uid = item.content_type_uid.replace(/-/g, '_'); - var contentType = contentTypesMap[item.content_type_uid]; - var normalizedEntry = normalizeEntry(contentType, item.data, entriesNodeIds, assetsNodeIds, createNodeId, typePrefix, configOptions); - var entryNode = processEntry(contentType, normalizedEntry, createNodeId, createContentDigest, typePrefix); - createNode(entryNode); - }); - syncData.asset_published && syncData.asset_published.forEach(function (item) { - var assetNode = processAsset(item.data, createNodeId, createContentDigest, typePrefix); - createNode(assetNode); - }); - if (!configOptions.downloadImages) { - _context.next = 39; - break; - } - _context.next = 39; - return downloadAssets({ - cache: cache, - getCache: getCache, - createNode: createNode, - createNodeId: createNodeId, - getNodesByType: getNodesByType, - reporter: reporter, - createNodeField: createNodeField, - getNode: getNode - }, typePrefix, configOptions); - case 39: - // deleting nodes - syncData.entry_unpublished && syncData.entry_unpublished.forEach(function (item) { - return deleteContentstackNodes(item.data, 'entry', createNodeId, getNode, deleteNode, typePrefix); - }); - syncData.asset_unpublished && syncData.asset_unpublished.forEach(function (item) { - return deleteContentstackNodes(item.data, 'asset', createNodeId, getNode, deleteNode, typePrefix); - }); - syncData.entry_deleted && syncData.entry_deleted.forEach(function (item) { - return deleteContentstackNodes(item.data, 'entry', createNodeId, getNode, deleteNode, typePrefix); - }); - syncData.asset_deleted && syncData.asset_deleted.forEach(function (item) { - return deleteContentstackNodes(item.data, 'asset', createNodeId, getNode, deleteNode, typePrefix); - }); - syncData.content_type_deleted && syncData.content_type_deleted.forEach(function (item) { - item.content_type_uid = item.content_type_uid.replace(/-/g, '_'); - var sameContentTypeNodes = getNodes().filter(function (n) { - return n.internal.type === "".concat(typePrefix, "_").concat(item.content_type_uid); - }); - sameContentTypeNodes.forEach(function (node) { - return deleteNode(node); - }); - }); - case 44: - case "end": - return _context.stop(); - } - }, _callee, null, [[2, 14]]); - })(); - }); - return function (_x, _x2) { - return _ref.apply(this, arguments); - }; -}(); -//# sourceMappingURL=source-node.js.map \ No newline at end of file diff --git a/src/fetch.js b/src/fetch.js index 9525db9..8e724e5 100644 --- a/src/fetch.js +++ b/src/fetch.js @@ -168,7 +168,7 @@ const getData = async (url, options) => { }); }; -const fetchCsData = async (url, config, query, SyncRetryCount = 0) => { +const fetchCsData = async (url, config, query) => { query = query || {}; query.include_count = true; query.environment = config.environment; @@ -235,33 +235,33 @@ const getSyncData = async ( retries = 0 ) => { try { - const response = await fetchCsData(url, config, query); + const response = await fetchCsData(url, config, query); - /* + /* Below syncToken array would contain type --> 'asset_published', 'entry_published' sync tokens */ - if ( - response.items.some(item => - ['entry_published', 'asset_published'].includes(item.type) - ) - ) { - syncToken.push(response.sync_token); - } + if ( + response.items.some(item => + ['entry_published', 'asset_published'].includes(item.type) + ) + ) { + syncToken.push(response.sync_token); + } - if (!aggregatedResponse) { - aggregatedResponse = {}; - aggregatedResponse.data = []; - aggregatedResponse.data = response[responseKey]; - aggregatedResponse.sync_token = response.sync_token; - } else { - aggregatedResponse.data = aggregatedResponse.data || []; - aggregatedResponse.data = aggregatedResponse.data.concat( - response[responseKey] - ); - aggregatedResponse.sync_token = response.sync_token - ? response.sync_token - : aggregatedResponse.sync_token; - } + if (!aggregatedResponse) { + aggregatedResponse = {}; + aggregatedResponse.data = []; + aggregatedResponse.data = response[responseKey]; + aggregatedResponse.sync_token = response.sync_token; + } else { + aggregatedResponse.data = aggregatedResponse.data || []; + aggregatedResponse.data = aggregatedResponse.data.concat( + response[responseKey] + ); + aggregatedResponse.sync_token = response.sync_token + ? response.sync_token + : aggregatedResponse.sync_token; + } if (response.pagination_token) { try { return await getSyncData( @@ -292,47 +292,45 @@ const getSyncData = async ( } if (response.sync_token) { - /** - * To make final sync call and concatenate the result if found any during on fetch request. - */ - const aggregatedSyncToken = syncToken.filter(item => item !== undefined); + /** + * To make final sync call and concatenate the result if found any during on fetch request. + */ + const aggregatedSyncToken = syncToken.filter(item => item !== undefined); + let SyncRetryCount = 0; for (const token of aggregatedSyncToken) { - let syncResponse; try { - syncResponse = await fetchCsData( - url, - config, - (query = { sync_token: token }), - 0 // Reset SyncRetryCount for each call - ); + url, + config, + (query = { sync_token: token }) + ); } catch (error) { - if (SyncRetryCount < config.httpRetries) { + if (SyncRetryCount < config.httpRetries) { const timeToWait = 2 ** SyncRetryCount * 100; + SyncRetryCount++; //Retry attempt ${retries + 1} after sync token error. Waiting for ${timeToWait} ms... await waitFor(timeToWait); - return syncResponse = await fetchCsData( + return (syncResponse = await fetchCsData( url, config, - (query = { sync_token: token }), - SyncRetryCount + 1 - ); + (query = { sync_token: token }) + )); } else { throw new Error(`Failed to fetch sync data after ${config.httpRetries} retry attempts due to invalid sync token.`); } } - aggregatedResponse.data = aggregatedResponse.data?.concat( - ...syncResponse.items - ); - aggregatedResponse.sync_token = syncResponse.sync_token; + aggregatedResponse.data = aggregatedResponse.data?.concat( + ...syncResponse.items + ); + aggregatedResponse.sync_token = syncResponse.sync_token; + } } - } - syncToken = []; - return aggregatedResponse; -} catch (error) { - throw new Error(`Failed to fetch sync data: ${error.message}`); -} + syncToken = []; + return aggregatedResponse; + } catch (error) { + throw new Error(`Failed to fetch sync data: ${error.message}`); + } }; diff --git a/utils.js b/utils.js deleted file mode 100644 index 21a20af..0000000 --- a/utils.js +++ /dev/null @@ -1,76 +0,0 @@ -'use strict'; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); -var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); -var ProgressBar = require('progress'); -exports.createProgress = function (message, reporter) { - if (reporter && reporter.createProgress) { - return reporter.createProgress(message); - } - var bar = new ProgressBar(" [:bar] :current/:total :elapsed s :percent ".concat(message), { - total: 0, - width: 30, - clear: true - }); - return { - start: function start() {}, - tick: function tick() { - bar.tick(); - }, - done: function done() {}, - set total(value) { - bar.total = value; - } - }; -}; -exports.checkIfUnsupportedFormat = function (data) { - // Get every char after ".", $ is from end - // eslint-disable-next-line - var extenstionReg = /[^.]+$/, - extName = ''; - try { - extName = extenstionReg.exec(data); - extName = extName && extName.length ? extName[0] : null; - } catch (err) { - throw new Error(err); - } - return extName === 'svg' || extName === 'gif' ? true : false; -}; -exports.SUPPORTED_FILES_COUNT = 'SUPPORTED_FILES_COUNT'; -exports.IMAGE_REGEXP = new RegExp('https://(stag-images|(eu-|azure-na-|azure-eu-|azure-k8s-)?images).(blz-)?contentstack.(io|com)/v3/assets/'); -exports.ASSET_NODE_UIDS = 'ASSET_NODE_UIDS'; -exports.CODES = { - SyncError: '10001', - APIError: '10002', - ImageAPIError: '10003', - MissingDependencyError: '10004' -}; -exports.getContentTypeOption = function (configOptions) { - var _configOptions$locale; - var contentTypeOptions = ['contentTypes', 'excludeContentTypes']; - var configOptionKeys = Object.keys(configOptions); - var contentTypeOption = ''; - for (var i = 0; i < configOptionKeys.length; i++) { - var configOptionKey = configOptionKeys[i]; - if (contentTypeOptions.includes(configOptionKey)) { - contentTypeOption = configOptionKey; - break; - } - } - if ((_configOptions$locale = configOptions.locales) !== null && _configOptions$locale !== void 0 && _configOptions$locale.length) { - contentTypeOption += 'locales'; - } - return contentTypeOption; -}; -exports.getJSONToHtmlRequired = function (jsonRteToHtml, field) { - return jsonRteToHtml && field.field_metadata && field.field_metadata.allow_json_rte; -}; -exports.getCustomHeaders = function (key, value) { - var sanitizedKey = typeof key === 'string' ? key.trim() : ''; - var sanitizedValue = typeof value === 'string' ? value.trim() : ''; - if (!sanitizedKey || !sanitizedValue || !sanitizedKey.startsWith('x-')) { - return {}; - } - return (0, _defineProperty2["default"])({}, sanitizedKey, sanitizedValue.replace(/\s/g, '')); -}; -//# sourceMappingURL=utils.js.map \ No newline at end of file