From 04d230ff86fdcd3ccc37342091908a10602ed610 Mon Sep 17 00:00:00 2001 From: Amitkanswal Date: Fri, 20 Feb 2026 15:58:16 +0530 Subject: [PATCH 1/2] fix:synch token issue --- contenttype-data.js | 223 ++++++++++++ create-resolvers.js | 218 ++++++++++++ create-schema-customization.js | 216 ++++++++++++ download-assets.js | 214 ++++++++++++ entry-data.js | 617 +++++++++++++++++++++++++++++++++ fetch.js | 512 +++++++++++++++++++++++++++ gatsby-node.js | 21 ++ gatsby-plugin-image.js | 205 +++++++++++ image-helper.js | 48 +++ live-preview/index.js | 169 +++++---- node-helper.js | 76 ++++ normalize.js | 520 +++++++++++++++++++++++++++ package-lock.json | 571 +++++++++++++++--------------- package.json | 2 +- plugin-init.js | 36 ++ plugin-options-schema.js | 28 ++ pre-bootstrap.js | 10 + source-node.js | 192 ++++++++++ src/entry-data.js | 25 +- utils.js | 76 ++++ 20 files changed, 3594 insertions(+), 385 deletions(-) create mode 100644 contenttype-data.js create mode 100644 create-resolvers.js create mode 100644 create-schema-customization.js create mode 100644 download-assets.js create mode 100644 entry-data.js create mode 100644 fetch.js create mode 100644 gatsby-node.js create mode 100644 gatsby-plugin-image.js create mode 100644 image-helper.js create mode 100644 node-helper.js create mode 100644 normalize.js create mode 100644 plugin-init.js create mode 100644 plugin-options-schema.js create mode 100644 pre-bootstrap.js create mode 100644 source-node.js create mode 100644 utils.js diff --git a/contenttype-data.js b/contenttype-data.js new file mode 100644 index 0000000..fe20915 --- /dev/null +++ b/contenttype-data.js @@ -0,0 +1,223 @@ +'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 (_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 (_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + query = { + include_global_field_schema: true + }; + _context2.next = 1; + return fn.apply(null, [url, config, responseKey, query]); + case 1: + result = _context2.sent; + return _context2.abrupt("return", result); + case 2: + 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 (_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 = 1; + return fn.apply(null, [url, config, responseKey, query]); + case 1: + contentTypes = _context3.sent; + referredContentTypes = new ReferredContentTypes(); + referredContentTypesList = referredContentTypes.getReferredContentTypes(contentTypes); + referredContentTypesData = []; + if (!referredContentTypesList.length) { + _context3.next = 3; + break; + } + query.query = JSON.stringify({ + uid: { + $in: referredContentTypesList + } + }); + _context3.next = 2; + return fn.apply(null, [url, config, responseKey, query]); + case 2: + referredContentTypesData = _context3.sent; + case 3: + result = contentTypes.concat(referredContentTypesData); + return _context3.abrupt("return", result); + case 4: + 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 (_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 = 1; + return fn.apply(null, [url, config, responseKey, query]); + case 1: + contentTypes = _context4.sent; + referredContentTypes = new ReferredContentTypes(); + referredContentTypesList = referredContentTypes.getReferredContentTypes(contentTypes); + referredContentTypesData = []; + if (!referredContentTypesList.length) { + _context4.next = 3; + break; + } + query.query = JSON.stringify({ + uid: { + $in: referredContentTypesList + } + }); + _context4.next = 2; + return fn.apply(null, [url, config, responseKey, query]); + case 2: + referredContentTypesData = _context4.sent; + case 3: + result = contentTypes.concat(referredContentTypesData); + return _context4.abrupt("return", result); + case 4: + case "end": + return _context4.stop(); + } + }, _callee4); + })); + function getPagedData(_x9, _x0, _x1, _x10) { + 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 new file mode 100644 index 0000000..ff2eb77 --- /dev/null +++ b/create-resolvers.js @@ -0,0 +1,218 @@ +'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 (_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + resolvers = {}; + typePrefix = configOptions.type_prefix || 'Contentstack'; + _context.next = 1; + 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 1: + _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 = 2; + return cache.get(typePrefix); + case 2: + 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 3: + 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 new file mode 100644 index 0000000..8743f12 --- /dev/null +++ b/create-schema-customization.js @@ -0,0 +1,216 @@ +'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 _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t8 in e) "default" !== _t8 && {}.hasOwnProperty.call(e, _t8) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t8)) && (i.get || i.set) ? o(f, _t8, i) : f[_t8] = e[_t8]); return f; })(e, t); } +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, _t, _t2, _t3, _t4, _t5, _t6, _t7; + return _regenerator["default"].wrap(function (_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 = 1; + contentTypeOption = getContentTypeOption(configOptions); + _context2.next = 2; + return fetchContentTypes(configOptions, contentTypeOption); + case 2: + contentTypes = _context2.sent; + _context2.next = 3; + return cache.set(typePrefix, contentTypes); + case 3: + _context2.next = 5; + break; + case 4: + _context2.prev = 4; + _t = _context2["catch"](1); + console.error('Contentstack fetch content type failed!'); + case 5: + references = [], groups = [], fileFields = [], jsonRteFields = []; + if (!configOptions.enableSchemaGeneration) { + _context2.next = 14; + 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 = 6; + _context2.next = 7; + return Promise.resolve().then(function () { + return _interopRequireWildcard(require('gatsby-plugin-image/graphql-utils')); + }); + case 7: + _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 (_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 = 9; + break; + case 8: + _context2.prev = 8; + _t2 = _context2["catch"](6); + if (_t2.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 9: + 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); + }); + _t3 = Promise; + _context2.next = 10; + return cache.set("".concat(typePrefix, "_").concat(configOptions.api_key, "_references"), references); + case 10: + _t4 = _context2.sent; + _context2.next = 11; + return cache.set("".concat(typePrefix, "_").concat(configOptions.api_key, "_groups"), groups); + case 11: + _t5 = _context2.sent; + _context2.next = 12; + return cache.set("".concat(typePrefix, "_").concat(configOptions.api_key, "_file_fields"), fileFields); + case 12: + _t6 = _context2.sent; + _context2.next = 13; + return cache.set("".concat(typePrefix, "_").concat(configOptions.api_key, "_json_rte_fields"), jsonRteFields); + case 13: + _t7 = _context2.sent; + _context2.next = 14; + return _t3.all.call(_t3, [_t4, _t5, _t6, _t7]); + case 14: + case "end": + return _context2.stop(); + } + }, _callee2, null, [[1, 4], [6, 8]]); + })(); + }); + 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 new file mode 100644 index 0000000..93d06ca --- /dev/null +++ b/download-assets.js @@ -0,0 +1,214 @@ +'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, _t, _t2; + return _regenerator["default"].wrap(function (_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + _context.prev = 0; + _context.next = 1; + return cache.get(ASSET_NODE_UIDS); + case 1: + 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 = 2; + return cache.get(SUPPORTED_FILES_COUNT); + case 2: + totalJobs = _context.sent; + // Create progress bar + bar = createProgress("Downloading remote files", reporter); + bar.start(); + bar.total = totalJobs; + i = 0; + case 3: + if (!(i < batches.length)) { + _context.next = 11; + 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 4: + if (!(j < lastCount)) { + _context.next = 8; + 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 = 5; + break; + } + shouldBreak = true; + return _context.abrupt("continue", 8); + case 5: + // 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 = 7; + break; + } + _t = batchPromises; + _context.next = 6; + return createRemoteFileNodePromise({ + cache: cache, + getCache: getCache, + createNode: createNode, + createNodeId: createNodeId, + createNodeField: createNodeField + }, asset, typePrefix, reporter); + case 6: + _t.push.call(_t, _context.sent); + case 7: + j++; + _context.next = 4; + break; + case 8: + if (!shouldBreak) { + _context.next = 9; + break; + } + return _context.abrupt("continue", 11); + case 9: + _context.next = 10; + return Promise.all(batchPromises); + case 10: + i++; + _context.next = 3; + break; + case 11: + bar && bar.done(); + sizeBar && sizeBar.done(); + reporter.verbose("Total size of downloaded files ".concat(totalSize)); + _context.next = 13; + break; + case 12: + _context.prev = 12; + _t2 = _context["catch"](0); + reporter.info('Something went wrong while downloading assets. Details: ' + _t2); + case 13: + case "end": + return _context.stop(); + } + }, _callee, null, [[0, 12]]); + })(); + }); + 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, _t3; + return _regenerator["default"].wrap(function (_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 = 1; + return params.cache.get(assetUid); + case 1: + 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 = 3; + break; + } + _context2.next = 2; + return createRemoteFileNode(_objectSpread(_objectSpread({}, params), {}, { + url: encodeURI(node.url), + parentNodeId: node.id + })); + case 2: + fileNode = _context2.sent; + if (!fileNode) { + _context2.next = 3; + 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 = 3; + return params.cache.set(assetUid, fileNode); + case 3: + bar.tick(); + if (fileNode) { + params.createNodeField({ + node: node, + name: 'localAsset', + value: fileNode.id + }); + } + return _context2.abrupt("return", fileNode); + case 4: + _context2.prev = 4; + _t3 = _context2["catch"](0); + reporter.info('Something went wrong while creating file nodes. Details: ' + _t3); + case 5: + case "end": + return _context2.stop(); + } + }, _callee2, null, [[0, 4]]); + })); + 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 new file mode 100644 index 0000000..469290e --- /dev/null +++ b/entry-data.js @@ -0,0 +1,617 @@ +'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 (_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, _t; + return _regenerator["default"].wrap(function (_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + typePrefix = configOptions.type_prefix || 'Contentstack'; + syncData = {}; + _context2.prev = 1; + if (!configOptions.expediteBuild) { + _context2.next = 5; + 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 = 2; + return Promise.all([cache.get(entryTokenKey), cache.get(assetTokenKey)]); + case 2: + _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 = 3; + return Promise.all([fn.apply(null, [syncEntryParams, configOptions]), fn.apply(null, [syncAssetParams, configOptions])]); + case 3: + _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 = 4; + return Promise.all([syncEntryData.sync_token !== undefined ? cache.set(entryTokenKey, syncEntryData.sync_token) : Promise.resolve(), syncAssetData.sync_token !== undefined ? cache.set(assetTokenKey, syncAssetData.sync_token) : Promise.resolve()]); + case 4: + _context2.next = 8; + break; + case 5: + tokenKey = "".concat(typePrefix.toLowerCase(), "-sync-token-").concat(configOptions.api_key); + _context2.next = 6; + return cache.get(tokenKey); + case 6: + syncToken = _context2.sent; + syncParams = syncToken ? { + sync_token: syncToken + } : { + init: true, + limit: configOptions.limit > 100 ? 50 : configOptions.limit + }; + _context2.next = 7; + return fn.apply(null, [syncParams, configOptions]); + case 7: + syncData = _context2.sent; + if (!(syncData.sync_token !== undefined)) { + _context2.next = 8; + break; + } + _context2.next = 8; + return cache.set(tokenKey, syncData.sync_token); + case 8: + _context2.next = 10; + break; + case 9: + _context2.prev = 9; + _t = _context2["catch"](1); + throw _t; + case 10: + return _context2.abrupt("return", syncData); + case 11: + case "end": + return _context2.stop(); + } + }, _callee2, null, [[1, 9]]); + })); + 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, _t2; + return _regenerator["default"].wrap(function (_context3) { + while (1) switch (_context3.prev = _context3.next) { + case 0: + _context3.prev = 0; + _context3.next = 1; + return Promise.all([this.fetchEntries(configOptions, cache, fn), this.fetchAssets(configOptions, cache, fn)]); + case 1: + _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 2: + _context3.prev = 2; + _t2 = _context3["catch"](0); + throw _t2; + case 3: + case "end": + return _context3.stop(); + } + }, _callee3, this, [[0, 2]]); + })); + 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, _t3; + return _regenerator["default"].wrap(function (_context4) { + while (1) switch (_context4.prev = _context4.next) { + case 0: + _context4.prev = 0; + syncData = {}; + typePrefix = configOptions.type_prefix || 'Contentstack'; + _context4.next = 1; + return cache.get(typePrefix); + case 1: + contentTypes = _context4.sent; + i = 0; + case 2: + if (!(i < contentTypes.length)) { + _context4.next = 6; + break; + } + contentType = contentTypes[i].uid; + tokenKey = "".concat(typePrefix.toLowerCase(), "-sync-token-").concat(contentType, "-").concat(configOptions.api_key); + _context4.next = 3; + return cache.get(tokenKey); + case 3: + syncToken = _context4.sent; + syncParams = syncToken ? { + sync_token: syncToken + } : { + init: true + }; + syncParams.content_type_uid = contentType; + _context4.next = 4; + return fn.apply(null, [syncParams, configOptions]); + case 4: + _syncData = _context4.sent; + syncData.data = syncData.data || []; + syncData.data = syncData.data.concat(_syncData.data); + // Caching token for the next sync. + if (!(_syncData.sync_token !== undefined)) { + _context4.next = 5; + break; + } + _context4.next = 5; + return cache.set(tokenKey, _syncData.sync_token); + case 5: + i++; + _context4.next = 2; + break; + case 6: + return _context4.abrupt("return", syncData); + case 7: + _context4.prev = 7; + _t3 = _context4["catch"](0); + throw _t3; + case 8: + case "end": + return _context4.stop(); + } + }, _callee4, null, [[0, 7]]); + })); + 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, _t4; + return _regenerator["default"].wrap(function (_context5) { + while (1) switch (_context5.prev = _context5.next) { + case 0: + _context5.prev = 0; + fetchAssetService = new FetchAssets(); + _context5.next = 1; + return fetchAssetService.fetchAssets(configOptions, cache, fn); + case 1: + syncData = _context5.sent; + return _context5.abrupt("return", syncData); + case 2: + _context5.prev = 2; + _t4 = _context5["catch"](0); + throw _t4; + case 3: + case "end": + return _context5.stop(); + } + }, _callee5, null, [[0, 2]]); + })); + function fetchAssets(_x0, _x1, _x10) { + 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 (_context6) { + while (1) switch (_context6.prev = _context6.next) { + case 0: + _context6.next = 1; + return Promise.all([this.fetchEntries(configOptions, cache, fn), this.fetchAssets(configOptions, cache, fn)]); + case 1: + _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 2: + case "end": + return _context6.stop(); + } + }, _callee6, this); + })); + function fetchSyncData(_x11, _x12, _x13) { + 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, _t5; + return _regenerator["default"].wrap(function (_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 1: + if (!(i < locales.length)) { + _context7.next = 5; + break; + } + locale = locales[i]; + tokenKey = "".concat(typePrefix.toLowerCase(), "-sync-token-").concat(locale, "-").concat(configOptions.api_key); + _context7.next = 2; + return cache.get(tokenKey); + case 2: + syncToken = _context7.sent; + syncParams = syncToken ? { + sync_token: syncToken + } : { + init: true + }; + syncParams.locale = locale; + _context7.next = 3; + return fn.apply(null, [syncParams, configOptions]); + case 3: + _syncData = _context7.sent; + syncData.data = syncData.data || []; + syncData.data = syncData.data.concat(_syncData.data); + // Caching token for next sync + if (!(_syncData.sync_token !== undefined)) { + _context7.next = 4; + break; + } + _context7.next = 4; + return cache.set(tokenKey, _syncData.sync_token); + case 4: + i++; + _context7.next = 1; + break; + case 5: + return _context7.abrupt("return", syncData); + case 6: + _context7.prev = 6; + _t5 = _context7["catch"](0); + throw _t5; + case 7: + case "end": + return _context7.stop(); + } + }, _callee7, null, [[0, 6]]); + })); + function fetchEntries(_x14, _x15, _x16) { + 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, _t6; + return _regenerator["default"].wrap(function (_context8) { + while (1) switch (_context8.prev = _context8.next) { + case 0: + _context8.prev = 0; + fetchAssetService = new FetchAssets(); + _context8.next = 1; + return fetchAssetService.fetchAssets(configOptions, cache, fn); + case 1: + syncData = _context8.sent; + return _context8.abrupt("return", syncData); + case 2: + _context8.prev = 2; + _t6 = _context8["catch"](0); + throw _t6; + case 3: + case "end": + return _context8.stop(); + } + }, _callee8, null, [[0, 2]]); + })); + function fetchAssets(_x17, _x18, _x19) { + 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$all0, syncEntryData, syncAssetData, syncData; + return _regenerator["default"].wrap(function (_context9) { + while (1) switch (_context9.prev = _context9.next) { + case 0: + _context9.next = 1; + return Promise.all([this.fetchEntries(configOptions, cache, fn), this.fetchAssets(configOptions, cache, fn)]); + case 1: + _yield$Promise$all9 = _context9.sent; + _yield$Promise$all0 = (0, _slicedToArray2["default"])(_yield$Promise$all9, 2); + syncEntryData = _yield$Promise$all0[0]; + syncAssetData = _yield$Promise$all0[1]; + syncData = {}; + syncData.data = syncEntryData.data.concat(syncAssetData.data); + return _context9.abrupt("return", syncData); + case 2: + case "end": + return _context9.stop(); + } + }, _callee9, this); + })); + function fetchSyncData(_x20, _x21, _x22) { + return _fetchSyncData5.apply(this, arguments); + } + return fetchSyncData; + }() + }, { + key: "fetchEntries", + value: function () { + var _fetchEntries3 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee0(configOptions, cache, fn) { + var syncData, typePrefix, contentTypes, locales, i, contentType, j, locale, tokenKey, syncToken, syncParams, _syncData, _t7; + return _regenerator["default"].wrap(function (_context0) { + while (1) switch (_context0.prev = _context0.next) { + case 0: + _context0.prev = 0; + syncData = {}; + typePrefix = configOptions.type_prefix || 'Contentstack'; + _context0.next = 1; + return cache.get(typePrefix); + case 1: + contentTypes = _context0.sent; + locales = configOptions.locales; + i = 0; + case 2: + if (!(i < contentTypes.length)) { + _context0.next = 8; + break; + } + contentType = contentTypes[i].uid; + j = 0; + case 3: + if (!(j < locales.length)) { + _context0.next = 7; + break; + } + locale = locales[j]; + tokenKey = "".concat(typePrefix.toLowerCase(), "-sync-token-").concat(contentType, "-").concat(locale, "-").concat(configOptions.api_key); + _context0.next = 4; + return cache.get(tokenKey); + case 4: + syncToken = _context0.sent; + syncParams = syncToken ? { + sync_token: syncToken + } : { + init: true + }; + syncParams.content_type_uid = contentType; + syncParams.locale = locale; + _context0.next = 5; + return fn.apply(null, [syncParams, configOptions]); + case 5: + _syncData = _context0.sent; + syncData.data = syncData.data || []; + syncData.data = syncData.data.concat(_syncData.data); + // Caching token for next sync + if (!(_syncData.sync_token !== undefined)) { + _context0.next = 6; + break; + } + _context0.next = 6; + return cache.set(tokenKey, _syncData.sync_token); + case 6: + j++; + _context0.next = 3; + break; + case 7: + i++; + _context0.next = 2; + break; + case 8: + return _context0.abrupt("return", syncData); + case 9: + _context0.prev = 9; + _t7 = _context0["catch"](0); + throw _t7; + case 10: + case "end": + return _context0.stop(); + } + }, _callee0, null, [[0, 9]]); + })); + function fetchEntries(_x23, _x24, _x25) { + return _fetchEntries3.apply(this, arguments); + } + return fetchEntries; + }() + }, { + key: "fetchAssets", + value: function () { + var _fetchAssets3 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee1(configOptions, cache, fn) { + var fetchAssetService, syncData, _t8; + return _regenerator["default"].wrap(function (_context1) { + while (1) switch (_context1.prev = _context1.next) { + case 0: + _context1.prev = 0; + fetchAssetService = new FetchAssets(); + _context1.next = 1; + return fetchAssetService.fetchAssets(configOptions, cache, fn); + case 1: + syncData = _context1.sent; + return _context1.abrupt("return", syncData); + case 2: + _context1.prev = 2; + _t8 = _context1["catch"](0); + throw _t8; + case 3: + case "end": + return _context1.stop(); + } + }, _callee1, null, [[0, 2]]); + })); + function fetchAssets(_x26, _x27, _x28) { + 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 _callee10(configOptions, cache, fn) { + var typePrefix, syncData, assetTokenKey, syncAssetToken, syncAssetParams, syncAssetData, _t9; + return _regenerator["default"].wrap(function (_context10) { + while (1) switch (_context10.prev = _context10.next) { + case 0: + typePrefix = configOptions.type_prefix || 'Contentstack'; + _context10.prev = 1; + syncData = {}; + assetTokenKey = "".concat(typePrefix.toLowerCase(), "-sync-token-asset-").concat(configOptions.api_key); + _context10.next = 2; + return cache.get(assetTokenKey); + case 2: + syncAssetToken = _context10.sent; + syncAssetParams = syncAssetToken ? { + sync_token: syncAssetToken + } : { + init: true + }; + syncAssetParams.type = 'asset_published,asset_unpublished,asset_deleted'; + _context10.next = 3; + return fn.apply(null, [syncAssetParams, configOptions]); + case 3: + syncAssetData = _context10.sent; + syncData.data = syncAssetData.data; + if (!(syncAssetData.sync_token !== undefined)) { + _context10.next = 4; + break; + } + _context10.next = 4; + return cache.set(assetTokenKey, syncAssetData.sync_token); + case 4: + return _context10.abrupt("return", syncData); + case 5: + _context10.prev = 5; + _t9 = _context10["catch"](1); + throw _t9; + case 6: + case "end": + return _context10.stop(); + } + }, _callee10, null, [[1, 5]]); + })); + function fetchAssets(_x29, _x30, _x31) { + 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 new file mode 100644 index 0000000..16d719f --- /dev/null +++ b/fetch.js @@ -0,0 +1,512 @@ +'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, _t; + return _regenerator["default"].wrap(function (_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 = 1; + syncData = {}; + entryService = new OPTIONS_ENTRIES_CLASS_MAPPING[contentTypeOption](); + _context.next = 2; + return entryService.fetchSyncData(configOptions, cache, fetchSyncData); + case 2: + _syncData = _context.sent; + syncData.data = _syncData.data; + contentstackData = { + syncData: syncData.data + }; + activity.end(); + return _context.abrupt("return", { + contentstackData: contentstackData + }); + case 3: + _context.prev = 3; + _t = _context["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: _t + }); + case 4: + case "end": + return _context.stop(); + } + }, _callee, null, [[1, 3]]); + })); + 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, _t2; + return _regenerator["default"].wrap(function (_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 = 2; + return contentType.getPagedData(url, config, responseKey, _getPagedData); + case 2: + allContentTypes = _context2.sent; + return _context2.abrupt("return", allContentTypes); + case 3: + _context2.prev = 3; + _t2 = _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: _t2 + }); + case 4: + case "end": + return _context2.stop(); + } + }, _callee2, null, [[1, 3]]); + })); + 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 (_context3) { + while (1) switch (_context3.prev = _context3.next) { + case 0: + url = 'stacks/sync'; + _context3.next = 1; + return getSyncData(url, config, query, 'items'); + case 1: + response = _context3.sent; + return _context3.abrupt("return", response); + case 2: + 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 (_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) { + if (data.error_code === 141) { + console.warn("Error ".concat(data.error_code, ": ").concat(data.error_message, ". Details: ").concat(JSON.stringify(data.errors))); + console.info("Retrying... Please wait..."); + } else if (data.error_code >= 500) { + throw new Error("Server error: ".concat(data.error_code)); + } else { + console.error("data"); + } + reject(data); + } else { + 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 (_context4) { + while (1) switch (_context4.prev = _context4.next) { + case 0: + retryAttempt = globalConfig.httpRetries ? globalConfig.httpRetries : 3; + if (!(retries < retryAttempt)) { + _context4.next = 2; + break; + } + retries++; + timeToWait = Math.pow(2, retries) * 100; + _context4.next = 1; + return waitFor(timeToWait); + case 1: + _handleResponse(); + _context4.next = 3; + break; + case 2: + reject(new Error("Fetch failed after ".concat(retryAttempt, " retry attempts."))); + case 3: + case "end": + return _context4.stop(); + } + }, _callee4); + })); + return function (_x1) { + return _ref5.apply(this, arguments); + }; + }()); + }; + retries = 1; + _handleResponse(); + })); + case 1: + case "end": + return _context5.stop(); + } + }, _callee5); + })); + return function getData(_x9, _x0) { + return _ref4.apply(this, arguments); + }; +}(); +var fetchCsData = /*#__PURE__*/function () { + var _ref6 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee6(url, config, query) { + var queryParams, apiUrl, option, data; + return _regenerator["default"].wrap(function (_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 = 1; + return getData(apiUrl, option); + case 1: + data = _context6.sent; + return _context6.abrupt("return", data); + case 2: + case "end": + return _context6.stop(); + } + }, _callee6); + })); + return function fetchCsData(_x10, _x11, _x12) { + 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 (_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 = 1; + return fetchCsData(url, config, query); + case 1: + response = _context7.sent; + if (!aggregatedResponse) { + aggregatedResponse = response[responseKey]; + } else { + aggregatedResponse = aggregatedResponse.concat(response[responseKey]); + } + if (!(skip + limit <= response.count)) { + _context7.next = 2; + break; + } + return _context7.abrupt("return", _getPagedData(url, config, responseKey, query = {}, skip + limit, limit, aggregatedResponse)); + case 2: + return _context7.abrupt("return", aggregatedResponse); + case 3: + case "end": + return _context7.stop(); + } + }, _callee7); + })(); + }); + return function getPagedData(_x13, _x14, _x15) { + 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, syncEvents, _t3; + return _regenerator["default"].wrap(function (_context8) { + while (1) switch (_context8.prev = _context8.next) { + case 0: + _context8.prev = 0; + _context8.next = 1; + return fetchCsData(url, config, query); + case 1: + response = _context8.sent; + syncEvents = ['entry_published', 'asset_published']; // Collect sync tokens from response items + if (response.items.some(function (item) { + return syncEvents.includes(item.type); + }) && response.sync_token) { + 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; + } + + // Handle pagination + if (!response.pagination_token) { + _context8.next = 2; + break; + } + _context8.next = 2; + return _handlePagination(url, config, response.pagination_token, responseKey, aggregatedResponse); + case 2: + if (!response.sync_token) { + _context8.next = 4; + break; + } + _context8.next = 3; + return processSyncTokens(url, config, aggregatedResponse, syncToken); + case 3: + aggregatedResponse = _context8.sent; + case 4: + return _context8.abrupt("return", aggregatedResponse); + case 5: + _context8.prev = 5; + _t3 = _context8["catch"](0); + throw new Error("Failed to fetch sync data: ".concat(_t3.message)); + case 6: + case "end": + return _context8.stop(); + } + }, _callee8, null, [[0, 5]]); + })(); + }); + return function getSyncData(_x16, _x17, _x18, _x19) { + return _ref8.apply(this, arguments); + }; +}(); +var processSyncTokens = /*#__PURE__*/function () { + var _ref9 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee9(url, config, aggregatedResponse, syncToken) { + var aggregatedSyncToken, _iterator, _step, token, syncResponse, SyncRetryCount, delay, _aggregatedResponse$d, _t4, _t5; + return _regenerator["default"].wrap(function (_context9) { + while (1) switch (_context9.prev = _context9.next) { + case 0: + // Remove Duplicate/ undefined sync tokens [if any] before iterating. + aggregatedSyncToken = (0, _toConsumableArray2["default"])(new Set(syncToken.filter(function (item) { + return item !== undefined; + }))); // Clear the syncToken array so further processing won’t include already handled tokens. + syncToken.length = 0; + _iterator = _createForOfIteratorHelper(aggregatedSyncToken); + _context9.prev = 1; + _iterator.s(); + case 2: + if ((_step = _iterator.n()).done) { + _context9.next = 12; + break; + } + token = _step.value; + syncResponse = void 0; + SyncRetryCount = 0; // Attempt to fetch data using the token, with retries. + case 3: + if (!(SyncRetryCount <= config.httpRetries)) { + _context9.next = 10; + break; + } + _context9.prev = 4; + _context9.next = 5; + return fetchCsData(url, config, { + sync_token: token + }); + case 5: + syncResponse = _context9.sent; + return _context9.abrupt("continue", 10); + case 6: + _context9.prev = 6; + _t4 = _context9["catch"](4); + SyncRetryCount++; + if (!(SyncRetryCount <= config.httpRetries)) { + _context9.next = 8; + break; + } + delay = Math.min(Math.pow(2, SyncRetryCount) * 1000, 30000); // To prevent excessive long waits we cap the delays at 30s + _context9.next = 7; + return waitFor(delay); + case 7: + _context9.next = 9; + break; + case 8: + throw new Error("Failed after ".concat(config.httpRetries, " retries due to a sync token error.")); + case 9: + _context9.next = 3; + break; + case 10: + if (syncResponse) { + aggregatedResponse.data = (_aggregatedResponse$d = aggregatedResponse.data) === null || _aggregatedResponse$d === void 0 ? void 0 : _aggregatedResponse$d.concat.apply(_aggregatedResponse$d, (0, _toConsumableArray2["default"])(syncResponse.items)); + aggregatedResponse.sync_token = syncResponse.sync_token; + } + case 11: + _context9.next = 2; + break; + case 12: + _context9.next = 14; + break; + case 13: + _context9.prev = 13; + _t5 = _context9["catch"](1); + _iterator.e(_t5); + case 14: + _context9.prev = 14; + _iterator.f(); + return _context9.finish(14); + case 15: + return _context9.abrupt("return", aggregatedResponse); + case 16: + case "end": + return _context9.stop(); + } + }, _callee9, null, [[1, 13, 14, 15], [4, 6]]); + })); + return function processSyncTokens(_x20, _x21, _x22, _x23) { + return _ref9.apply(this, arguments); + }; +}(); +var _handlePagination = /*#__PURE__*/function () { + var _ref0 = (0, _asyncToGenerator2["default"])(function (url, config, paginationToken, responseKey, aggregatedResponse) { + var retries = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0; + return /*#__PURE__*/_regenerator["default"].mark(function _callee0() { + var retryDelay, _t6; + return _regenerator["default"].wrap(function (_context0) { + while (1) switch (_context0.prev = _context0.next) { + case 0: + _context0.prev = 0; + _context0.next = 1; + return getSyncData(url, config, { + pagination_token: paginationToken + }, responseKey, aggregatedResponse, 0); + case 1: + return _context0.abrupt("return", _context0.sent); + case 2: + _context0.prev = 2; + _t6 = _context0["catch"](0); + if (!(retries < config.httpRetries)) { + _context0.next = 5; + break; + } + retryDelay = Math.min(Math.pow(2, retries) * 1000, 30000); + _context0.next = 3; + return waitFor(retryDelay); + case 3: + _context0.next = 4; + return _handlePagination(url, config, paginationToken, responseKey, aggregatedResponse, retries + 1); + case 4: + return _context0.abrupt("return", _context0.sent); + case 5: + throw new Error("Failed after ".concat(config.httpRetries, " retries due to a pagination token error.")); + case 6: + case "end": + return _context0.stop(); + } + }, _callee0, null, [[0, 2]]); + })(); + }); + return function handlePagination(_x24, _x25, _x26, _x27, _x28) { + return _ref0.apply(this, arguments); + }; +}(); +//# sourceMappingURL=fetch.js.map \ No newline at end of file diff --git a/gatsby-node.js b/gatsby-node.js new file mode 100644 index 0000000..e9a9bf4 --- /dev/null +++ b/gatsby-node.js @@ -0,0 +1,21 @@ +'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 new file mode 100644 index 0000000..b1ba923 --- /dev/null +++ b/gatsby-plugin-image.js @@ -0,0 +1,205 @@ +'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 _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } +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 (_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + content_type = props.image.content_type; + extension = mimeTypeExtensions[content_type]; + _context.next = 1; + return fetchRemoteFile({ + url: csImageUrl, + cache: cache, + ext: extension + }); + case 1: + absolutePath = _context.sent; + _context.next = 2; + return readFile(absolutePath); + case 2: + base64 = _context.sent.toString('base64'); + return _context.abrupt("return", "data:image/".concat(toFormat || originalFormat, ";base64,").concat(base64)); + case 3: + 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 (_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + if (isImage(image)) { + _context2.next = 1; + break; + } + return _context2.abrupt("return", null); + case 1: + _context2.next = 2; + return Promise.resolve().then(function () { + return _interopRequireWildcard(require('gatsby-plugin-image')); + }); + case 2: + _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 = 4; + break; + } + _context2.next = 3; + return getBase64Image({ + baseUrl: baseUrl, + image: image, + options: options + }, cache, reporter); + case 3: + placeholderDataURI = _context2.sent; + case 4: + if (placeholderDataURI) { + imageProps.placeholder = { + fallback: placeholderDataURI + }; + } + return _context2.abrupt("return", imageProps); + case 5: + 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 new file mode 100644 index 0000000..35ad778 --- /dev/null +++ b/image-helper.js @@ -0,0 +1,48 @@ +'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/live-preview/index.js b/live-preview/index.js index 7697332..eb8460b 100644 --- a/live-preview/index.js +++ b/live-preview/index.js @@ -85,12 +85,12 @@ var ContentstackGatsby = exports.ContentstackGatsby = /*#__PURE__*/function () { key: "fetchContentTypes", value: function () { var _fetchContentTypes = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(uids) { - var result, contentTypes; - return _regenerator["default"].wrap(function _callee$(_context) { + var result, contentTypes, _t; + return _regenerator["default"].wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: _context.prev = 0; - _context.next = 3; + _context.next = 1; return this.stackSdk.getContentTypes({ query: { uid: { @@ -99,10 +99,10 @@ var ContentstackGatsby = exports.ContentstackGatsby = /*#__PURE__*/function () { }, include_global_field_schema: true }); - case 3: + case 1: result = _context.sent; if (!result) { - _context.next = 8; + _context.next = 2; break; } contentTypes = {}; @@ -110,19 +110,19 @@ var ContentstackGatsby = exports.ContentstackGatsby = /*#__PURE__*/function () { contentTypes[ct.uid] = ct; }); return _context.abrupt("return", contentTypes); - case 8: - _context.next = 14; + case 2: + _context.next = 4; break; - case 10: - _context.prev = 10; - _context.t0 = _context["catch"](0); + case 3: + _context.prev = 3; + _t = _context["catch"](0); console.error("Contentstack Gatsby (Live Preview): failed to fetch content types"); - throw _context.t0; - case 14: + throw _t; + case 4: case "end": return _context.stop(); } - }, _callee, this, [[0, 10]]); + }, _callee, this, [[0, 3]]); })); function fetchContentTypes(_x) { return _fetchContentTypes.apply(this, arguments); @@ -135,7 +135,7 @@ var ContentstackGatsby = exports.ContentstackGatsby = /*#__PURE__*/function () { var _getContentTypes = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(uids) { var _this = this; var uidsToFetch, types; - return _regenerator["default"].wrap(function _callee2$(_context2) { + return _regenerator["default"].wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: // fetch and filter only content types that are not available in cache @@ -143,14 +143,14 @@ var ContentstackGatsby = exports.ContentstackGatsby = /*#__PURE__*/function () { return !_this.contentTypes[uid]; }); if (uidsToFetch.length) { - _context2.next = 3; + _context2.next = 1; break; } return _context2.abrupt("return", this.contentTypes); - case 3: - _context2.next = 5; + case 1: + _context2.next = 2; return this.fetchContentTypes(uidsToFetch); - case 5: + case 2: types = _context2.sent; uidsToFetch.forEach(function (uid) { // TODO need to set it in two places, can be better @@ -158,7 +158,7 @@ var ContentstackGatsby = exports.ContentstackGatsby = /*#__PURE__*/function () { _this.contentTypesStorage.set(uid, types[uid]); }); return _context2.abrupt("return", this.contentTypes); - case 8: + case 3: case "end": return _context2.stop(); } @@ -181,19 +181,19 @@ var ContentstackGatsby = exports.ContentstackGatsby = /*#__PURE__*/function () { var seen = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : []; return /*#__PURE__*/_regenerator["default"].mark(function _callee3() { var uids, contentTypes, refPathsCount, explorePaths, _iterator, _step, _step$value, refPath, refUids, _iterator2, _step2, uid, rPath; - return _regenerator["default"].wrap(function _callee3$(_context3) { + return _regenerator["default"].wrap(function (_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: if (!(depth <= 0)) { - _context3.next = 2; + _context3.next = 1; break; } return _context3.abrupt("return", refPathMap); - case 2: + case 1: uids = (0, _toConsumableArray2["default"])(new Set(Object.values(refPathMap).flat())); - _context3.next = 5; + _context3.next = 2; return _this2.getContentTypes(uids); - case 5: + case 2: contentTypes = _context3.sent; refPathsCount = Object.keys(refPathMap).length; explorePaths = Object.entries(refPathMap).filter(function (_ref) { @@ -232,17 +232,17 @@ var ContentstackGatsby = exports.ContentstackGatsby = /*#__PURE__*/function () { _iterator.f(); } if (!(Object.keys(refPathMap).length > refPathsCount)) { - _context3.next = 13; + _context3.next = 3; break; } - _context3.next = 13; + _context3.next = 3; return _this2.extractReferences(refPathMap, status, jsonRtePaths, depth - 1, seen); - case 13: + case 3: return _context3.abrupt("return", { refPathMap: refPathMap, jsonRtePaths: jsonRtePaths }); - case 14: + case 4: case "end": return _context3.stop(); } @@ -392,15 +392,15 @@ var ContentstackGatsby = exports.ContentstackGatsby = /*#__PURE__*/function () { var jsonRtePaths = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : []; return /*#__PURE__*/_regenerator["default"].mark(function _callee4() { var entry; - return _regenerator["default"].wrap(function _callee4$(_context4) { + return _regenerator["default"].wrap(function (_context4) { while (1) switch (_context4.prev = _context4.next) { case 0: - _context4.next = 2; + _context4.next = 1; return _this4.stackSdk.ContentType(contentTypeUid).Entry(entryUid).includeReference(referencePaths).toJSON().fetch(); - case 2: + case 1: entry = _context4.sent; if ((0, _lodash["default"])(entry)) { - _context4.next = 6; + _context4.next = 2; break; } if (_this4.config.jsonRteToHtml) { @@ -410,7 +410,7 @@ var ContentstackGatsby = exports.ContentstackGatsby = /*#__PURE__*/function () { }); } return _context4.abrupt("return", entry); - case 6: + case 2: case "end": return _context4.stop(); } @@ -447,8 +447,8 @@ var ContentstackGatsby = exports.ContentstackGatsby = /*#__PURE__*/function () { value: function () { var _getUsingTypeName = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5(data) { var _this$statusStorage$g, _this$jsonRteFields$c; - var receivedData, live_preview, status, contentTypeUid, entryUid, _yield$this$extractRe, refPathMap, jsonRtePaths, referencePaths, paths, entry; - return _regenerator["default"].wrap(function _callee5$(_context5) { + var receivedData, live_preview, status, contentTypeUid, entryUid, _yield$this$extractRe, refPathMap, jsonRtePaths, referencePaths, paths, entry, _t2; + return _regenerator["default"].wrap(function (_context5) { while (1) switch (_context5.prev = _context5.next) { case 0: receivedData = (0, _lodash2["default"])(data); @@ -463,15 +463,15 @@ var ContentstackGatsby = exports.ContentstackGatsby = /*#__PURE__*/function () { hasLivePreviewEntryFound: this.isCurrentEntryEdited(contentTypeUid) }; if (!((0, _lodash["default"])(this.referenceFields[contentTypeUid]) || (0, _lodash["default"])(this.jsonRteFields[contentTypeUid]))) { - _context5.next = 25; + _context5.next = 4; break; } - _context5.prev = 8; - _context5.next = 11; + _context5.prev = 1; + _context5.next = 2; return this.extractReferences({ '': [contentTypeUid] }, status); - case 11: + case 2: _yield$this$extractRe = _context5.sent; refPathMap = _yield$this$extractRe.refPathMap; jsonRtePaths = _yield$this$extractRe.jsonRtePaths; @@ -481,15 +481,15 @@ var ContentstackGatsby = exports.ContentstackGatsby = /*#__PURE__*/function () { // store json rte paths this.jsonRteFields[contentTypeUid] = jsonRtePaths; this.jsonRteFieldsStorage.set(contentTypeUid, this.jsonRteFields[contentTypeUid]); - _context5.next = 25; + _context5.next = 4; break; - case 20: - _context5.prev = 20; - _context5.t0 = _context5["catch"](8); - console.error("Contentstack Gatsby (Live Preview): an error occurred while determining reference paths", _context5.t0); + case 3: + _context5.prev = 3; + _t2 = _context5["catch"](1); + console.error("Contentstack Gatsby (Live Preview): an error occurred while determining reference paths", _t2); console.log("Contentstack Gatsby (Live Preview): unable to determine reference paths. This may have occurred due to the way the content types refer each other. Please try including the cslp__meta field in your query."); return _context5.abrupt("return", receivedData); - case 25: + case 4: referencePaths = Object.keys(this.referenceFields[contentTypeUid]); referencePaths = referencePaths.filter(function (field) { return !!field; @@ -497,21 +497,21 @@ var ContentstackGatsby = exports.ContentstackGatsby = /*#__PURE__*/function () { paths = this.identifyReferences(receivedData, [], referencePaths); this.statusStorage.set(contentTypeUid, status); if (status.hasLivePreviewEntryFound) { - _context5.next = 31; + _context5.next = 5; break; } return _context5.abrupt("return", receivedData); - case 31: - _context5.next = 33; + case 5: + _context5.next = 6; return this.fetchEntry(entryUid, contentTypeUid, paths, (_this$jsonRteFields$c = this.jsonRteFields[contentTypeUid]) !== null && _this$jsonRteFields$c !== void 0 ? _this$jsonRteFields$c : []); - case 33: + case 6: entry = _context5.sent; return _context5.abrupt("return", entry); - case 35: + case 7: case "end": return _context5.stop(); } - }, _callee5, this, [[8, 20]]); + }, _callee5, this, [[1, 3]]); })); function getUsingTypeName(_x5) { return _getUsingTypeName.apply(this, arguments); @@ -524,31 +524,31 @@ var ContentstackGatsby = exports.ContentstackGatsby = /*#__PURE__*/function () { var _get = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee6(data) { var _this$stackSdk$live_p, _this5 = this; - var dataCloned, hasTypeNameAndUid, hasCslpMetaAtRoot, multipleEntriesKey, hasSingleEntry, hasMultipleEntries, receivedData, live_preview, hasCslpMeta, hasMultipleCslpMeta, multipleLPEntries, result, _entryCslpMeta$refere, _entryCslpMeta$jsonRt, entryCslpMeta, contentTypeUid, entryUid, refPaths, rtePaths, entry; - return _regenerator["default"].wrap(function _callee6$(_context6) { + var dataCloned, hasTypeNameAndUid, hasCslpMetaAtRoot, multipleEntriesKey, hasSingleEntry, hasMultipleEntries, receivedData, live_preview, hasCslpMeta, hasMultipleCslpMeta, multipleLPEntries, result, _entryCslpMeta$refere, _entryCslpMeta$jsonRt, entryCslpMeta, contentTypeUid, entryUid, refPaths, rtePaths, entry, _t3; + return _regenerator["default"].wrap(function (_context6) { while (1) switch (_context6.prev = _context6.next) { case 0: if (!(this.stackSdk.live_preview && !((_this$stackSdk$live_p = this.stackSdk.live_preview) !== null && _this$stackSdk$live_p !== void 0 && _this$stackSdk$live_p.enable))) { - _context6.next = 3; + _context6.next = 1; break; } console.warn("Contentstack Gatsby (Live Preview): live preview is disabled in config"); return _context6.abrupt("return", data); - case 3: + case 1: if (!(data === null)) { - _context6.next = 6; + _context6.next = 2; break; } console.warn("Contentstack Gatsby (Live Preview): null was passed to get()"); return _context6.abrupt("return", data); - case 6: + case 2: if (this.isNested(data)) { - _context6.next = 9; + _context6.next = 3; break; } console.warn("Contentstack Gatsby (Live Preview): data passed to get() is invalid"); return _context6.abrupt("return", data); - case 9: + case 3: dataCloned = (0, _lodash2["default"])(data); delete dataCloned["$"]; @@ -561,7 +561,7 @@ var ContentstackGatsby = exports.ContentstackGatsby = /*#__PURE__*/function () { receivedData = hasSingleEntry || hasMultipleEntries ? this.unwrapEntryData(dataCloned) : dataCloned; live_preview = this.stackSdk.live_preview; if (!(live_preview !== null && live_preview !== void 0 && live_preview.hash && live_preview.hash !== 'init')) { - _context6.next = 59; + _context6.next = 13; break; } this.livePreviewConfig = live_preview; @@ -570,76 +570,73 @@ var ContentstackGatsby = exports.ContentstackGatsby = /*#__PURE__*/function () { return item === null || item.cslp__meta; }); if (!(!hasCslpMeta && !hasMultipleCslpMeta && !hasTypeNameAndUid)) { - _context6.next = 24; + _context6.next = 4; break; } throw new Error("Contentstack Gatsby (Live Preview): Entry data must contain cslp__meta for live preview"); - case 24: + case 4: if (!hasMultipleCslpMeta) { - _context6.next = 40; + _context6.next = 8; break; } - _context6.prev = 25; - _context6.next = 28; + _context6.prev = 5; + _context6.next = 6; return Promise.all(receivedData.map(function (item) { if (item === null) { return Promise.resolve(null); } return _this5.fetchEntry(item.cslp__meta.entryUid, item.cslp__meta.contentTypeUid, item.cslp__meta.refPaths, item.cslp__meta.rtePaths); })); - case 28: + case 6: multipleLPEntries = _context6.sent; result = {}; multipleEntriesKey.forEach(function (key, index) { result[key] = multipleLPEntries[index]; }); return _context6.abrupt("return", result); - case 34: - _context6.prev = 34; - _context6.t0 = _context6["catch"](25); - console.error("Contentstack Gatsby (Live Preview):", _context6.t0); + case 7: + _context6.prev = 7; + _t3 = _context6["catch"](5); + console.error("Contentstack Gatsby (Live Preview):", _t3); return _context6.abrupt("return", dataCloned); - case 38: - _context6.next = 59; - break; - case 40: + case 8: if (!hasCslpMeta) { - _context6.next = 55; + _context6.next = 11; break; } entryCslpMeta = receivedData.cslp__meta; contentTypeUid = entryCslpMeta.contentTypeUid; entryUid = entryCslpMeta.entryUid; if (!(!entryUid || !contentTypeUid)) { - _context6.next = 47; + _context6.next = 9; break; } console.warn("Contentstack Gatsby (Live Preview): no entry uid or content type uid was found inside cslp__meta"); return _context6.abrupt("return", dataCloned); - case 47: + case 9: refPaths = (_entryCslpMeta$refere = entryCslpMeta.referencePaths) !== null && _entryCslpMeta$refere !== void 0 ? _entryCslpMeta$refere : []; rtePaths = (_entryCslpMeta$jsonRt = entryCslpMeta.jsonRtePaths) !== null && _entryCslpMeta$jsonRt !== void 0 ? _entryCslpMeta$jsonRt : []; - _context6.next = 51; + _context6.next = 10; return this.fetchEntry(entryUid, contentTypeUid, refPaths, rtePaths); - case 51: + case 10: entry = _context6.sent; return _context6.abrupt("return", entry); - case 55: + case 11: if (!hasTypeNameAndUid) { - _context6.next = 59; + _context6.next = 13; break; } - _context6.next = 58; + _context6.next = 12; return this.getUsingTypeName(dataCloned); - case 58: + case 12: return _context6.abrupt("return", _context6.sent); - case 59: + case 13: return _context6.abrupt("return", dataCloned); - case 60: + case 14: case "end": return _context6.stop(); } - }, _callee6, this, [[25, 34]]); + }, _callee6, this, [[5, 7]]); })); function get(_x6) { return _get.apply(this, arguments); diff --git a/node-helper.js b/node-helper.js new file mode 100644 index 0000000..1519e55 --- /dev/null +++ b/node-helper.js @@ -0,0 +1,76 @@ +'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 (_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + if (!(process.env.NODE_ENV === "test")) { + _context.next = 1; + break; + } + return _context.abrupt("return", undefined); + case 1: + host = pluginOptions.cdn ? pluginOptions.cdn : 'https://cdn.contentstack.io/v3'; + _context.next = 2; + 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 2: + return _context.abrupt("return", undefined); + case 3: + 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 new file mode 100644 index 0000000..c04e4e9 --- /dev/null +++ b/normalize.js @@ -0,0 +1,520 @@ +'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 69fdba5..48b772a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "gatsby-source-contentstack", - "version": "5.4.1", + "version": "5.4.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "gatsby-source-contentstack", - "version": "5.4.1", + "version": "5.4.2", "license": "MIT", "dependencies": { "@contentstack/utils": "^1.1.3", @@ -54,39 +54,43 @@ } }, "node_modules/@actions/core": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-2.0.1.tgz", - "integrity": "sha512-oBfqT3GwkvLlo1fjvhQLQxuwZCGTarTE5OuZ2Wg10hvhBj7LRIlF611WT4aZS6fDhO5ZKlY7lCAZTlpmyaHaeg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-3.0.0.tgz", + "integrity": "sha512-zYt6cz+ivnTmiT/ksRVriMBOiuoUpDCJJlZ5KPl2/FRdvwU3f7MPh9qftvbkXJThragzUZieit2nyHUyw53Seg==", "dev": true, + "license": "MIT", "dependencies": { - "@actions/exec": "^2.0.0", - "@actions/http-client": "^3.0.0" + "@actions/exec": "^3.0.0", + "@actions/http-client": "^4.0.0" } }, "node_modules/@actions/exec": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-2.0.0.tgz", - "integrity": "sha512-k8ngrX2voJ/RIN6r9xB82NVqKpnMRtxDoiO+g3olkIUpQNqjArXrCQceduQZCQj3P3xm32pChRLqRrtXTlqhIw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-3.0.0.tgz", + "integrity": "sha512-6xH/puSoNBXb72VPlZVm7vQ+svQpFyA96qdDBvhB8eNZOE8LtPf9L4oAsfzK/crCL8YZ+19fKYVnM63Sl+Xzlw==", "dev": true, + "license": "MIT", "dependencies": { - "@actions/io": "^2.0.0" + "@actions/io": "^3.0.2" } }, "node_modules/@actions/http-client": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-3.0.0.tgz", - "integrity": "sha512-1s3tXAfVMSz9a4ZEBkXXRQD4QhY3+GAsWSbaYpeknPOKEeyRiU3lH+bHiLMZdo2x/fIeQ/hscL1wCkDLVM2DZQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-4.0.0.tgz", + "integrity": "sha512-QuwPsgVMsD6qaPD57GLZi9sqzAZCtiJT8kVBCDpLtxhL5MydQ4gS+DrejtZZPdIYyB1e95uCK9Luyds7ybHI3g==", "dev": true, + "license": "MIT", "dependencies": { "tunnel": "^0.0.6", - "undici": "^5.28.5" + "undici": "^6.23.0" } }, "node_modules/@actions/io": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@actions/io/-/io-2.0.0.tgz", - "integrity": "sha512-Jv33IN09XLO+0HS79aaODsvIRyduiF7NY/F6LYeK5oeUmrsz7aFdRphQjFoESF4jS7lMauDOttKALcpapVDIAg==", - "dev": true + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@actions/io/-/io-3.0.2.tgz", + "integrity": "sha512-nRBchcMM+QK1pdjO7/idu86rbJI5YHUKCvKs0KxnSYbVe3F51UfGxuZX4Qy/fWlp6l7gWFwIkrOzN+oUK03kfw==", + "dev": true, + "license": "MIT" }, "node_modules/@ardatan/relay-compiler": { "version": "12.0.0", @@ -287,10 +291,11 @@ } }, "node_modules/@babel/cli": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.28.3.tgz", - "integrity": "sha512-n1RU5vuCX0CsaqaXm9I0KUCNKNQMy5epmzl/xdSSm70bSqhg9GWhgeosypyQLc0bK24+Xpk1WGzZlI9pJtkZdg==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.28.6.tgz", + "integrity": "sha512-6EUNcuBbNkj08Oj4gAZ+BUU8yLCgKzgVX4gaTh09Ya2C8ICM4P+G30g4m3akRxSYAp3A/gnWchrNst7px4/nUQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.28", "commander": "^6.2.0", @@ -366,9 +371,10 @@ } }, "node_modules/@babel/eslint-parser": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.28.5.tgz", - "integrity": "sha512-fcdRcWahONYo+JRnJg1/AekOacGvKx12Gu0qXJXFi2WBqQA1i7+O5PaxRB7kxE/Op94dExnCiiar6T09pvdHpA==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.28.6.tgz", + "integrity": "sha512-QGmsKi2PBO/MHSQk+AAgA9R6OHQr+VqnniFE0eMWZcVcfBZoA2dKn2hUsl3Csg/Plt9opRUWdY7//VXsrIlEiA==", + "license": "MIT", "dependencies": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", "eslint-visitor-keys": "^2.1.0", @@ -2519,9 +2525,10 @@ "integrity": "sha512-FU1hFks9vnJ5e9cwBTPgnf3obx/fuKh+c3Gtc71mq1Mrub3/z4rJZJWLJ2kublVKnXWnhz+Yt66rshxO/TT9IQ==" }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", - "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.4.3" }, @@ -2629,15 +2636,6 @@ "integrity": "sha512-HHQigo3rQWKMDzYDLkubN5WQOYXJJE2eNqIQC2axC2iO3mHdwnIR7FgZVvHWtBwAdzBgAP0ECp8KqS8TiMKvgw==", "peer": true }, - "node_modules/@fastify/busboy": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", - "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", - "dev": true, - "engines": { - "node": ">=14" - } - }, "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd": { "version": "2.15.0", "resolved": "https://registry.npmjs.org/@gatsbyjs/parcel-namer-relative-to-cwd/-/parcel-namer-relative-to-cwd-2.15.0.tgz", @@ -5732,12 +5730,13 @@ } }, "node_modules/@semantic-release/npm": { - "version": "13.1.3", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-13.1.3.tgz", - "integrity": "sha512-q7zreY8n9V0FIP1Cbu63D+lXtRAVAIWb30MH5U3TdrfXt6r2MIrWCY0whAImN53qNvSGp0Zt07U95K+Qp9GpEg==", + "version": "13.1.4", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-13.1.4.tgz", + "integrity": "sha512-z5Fn9ftK1QQgFxMSuOd3DtYbTl4hWI2trCEvZcEJMQJy1/OBR0WHcxqzfVun455FSkHML8KgvPxJEa9MtZIBsg==", "dev": true, + "license": "MIT", "dependencies": { - "@actions/core": "^2.0.0", + "@actions/core": "^3.0.0", "@semantic-release/error": "^4.0.0", "aggregate-error": "^5.0.0", "env-ci": "^11.2.0", @@ -7240,9 +7239,10 @@ } }, "node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -7717,13 +7717,14 @@ } }, "node_modules/axios": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz", - "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.5.tgz", + "integrity": "sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==", + "license": "MIT", "peer": true, "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.4", + "follow-redirects": "^1.15.11", + "form-data": "^4.0.5", "proxy-from-env": "^1.1.0" } }, @@ -8045,17 +8046,18 @@ } }, "node_modules/babel-plugin-remove-graphql-queries": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-5.15.0.tgz", - "integrity": "sha512-zr+0PCFQ2JHnVm1wPYyopawpIskdabV9V0C2uiF2NcTUN520pmmbHVpgjwJ9sKjgF48UyeKUKXfFy8aDnc/fkA==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-5.16.0.tgz", + "integrity": "sha512-dYh/VoEU5pwmM0N1TbKwdBAqMqW5lYwJsttqYYVuVaZgSE/zikak4KUC3S/qCqCbh6D8/LTeM9YhZgQKU2c8tg==", + "license": "MIT", "peer": true, "dependencies": { "@babel/runtime": "^7.20.13", "@babel/types": "^7.20.7", - "gatsby-core-utils": "^4.15.0" + "gatsby-core-utils": "^4.16.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=18.0.0 <26" }, "peerDependencies": { "@babel/core": "^7.0.0", @@ -8063,9 +8065,10 @@ } }, "node_modules/babel-plugin-remove-graphql-queries/node_modules/gatsby-core-utils": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.15.0.tgz", - "integrity": "sha512-fxzHbCvQm1u74DSjy7G4PVqEcWb7sOCFg3kFFVUqVKe3hDCm6s1M/gRSvpm3/3fm74HhgLsmQ54Qaf54Ckyn9w==", + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.16.0.tgz", + "integrity": "sha512-QCZ9BmQp3YyYxH0Wf4bofayL3vJnayqSvsBUAhKXGh/Os0fn1KMNyAjPLnW+zrGFQaK05Vjdlp99I/Wnc3M33A==", + "license": "MIT", "peer": true, "dependencies": { "@babel/runtime": "^7.20.13", @@ -8086,7 +8089,7 @@ "xdg-basedir": "^4.0.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=18.0.0 <26" } }, "node_modules/babel-plugin-syntax-trailing-function-commas": { @@ -9875,9 +9878,10 @@ } }, "node_modules/create-gatsby": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-3.15.0.tgz", - "integrity": "sha512-EjScC6GRDvL/mgbURFxv7gCkJmNqU1q+pptKx2ry11JbSzx1vvFIFXpiID3JxuM3fCzPcqh2GnCPUk+PU7lvLg==", + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-3.16.0.tgz", + "integrity": "sha512-F2gzKq1Pl3wFzHOIZdA2XEiynt0sPxnq0ccwzbz4YFZxGf5vLG16ijTvnmZjJzm/LSSP+szedX5cA0c6a+mnjg==", + "license": "MIT", "peer": true, "dependencies": { "@babel/runtime": "^7.20.13" @@ -12432,9 +12436,10 @@ "peer": true }, "node_modules/express/node_modules/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "version": "6.14.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz", + "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==", + "license": "BSD-3-Clause", "peer": true, "dependencies": { "side-channel": "^1.1.0" @@ -12553,6 +12558,7 @@ "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "peer": true, "engines": { "node": ">= 4.9.1" } @@ -13437,10 +13443,11 @@ } }, "node_modules/gatsby-cli": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-5.15.0.tgz", - "integrity": "sha512-wTUAc2rNr39s7PDO1EaFOBbFmgfuEJ4hdJfh0b/0zd5FMHep+8Z7Kp6/B9KWhHOhHFkFasL7jgZozin4y3QGdg==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-5.16.0.tgz", + "integrity": "sha512-O+2ouCR0Yex04AllxPMIWxlwcj2GiGsvK8sC6AfVL092j0rQJAfwEEBhgVNhFrniPnEanaADRKbgjj2k6vPaBw==", "hasInstallScript": true, + "license": "MIT", "peer": true, "dependencies": { "@babel/code-frame": "^7.18.6", @@ -13459,12 +13466,12 @@ "clipboardy": "^4.0.0", "common-tags": "^1.8.2", "convert-hrtime": "^3.0.0", - "create-gatsby": "^3.15.0", + "create-gatsby": "^3.16.0", "envinfo": "^7.10.0", "execa": "^5.1.1", "fs-exists-cached": "^1.0.0", "fs-extra": "^11.2.0", - "gatsby-core-utils": "^4.15.0", + "gatsby-core-utils": "^4.16.0", "hosted-git-info": "^3.0.8", "is-valid-path": "^0.1.1", "joi": "^17.9.2", @@ -13488,7 +13495,7 @@ "gatsby": "cli.js" }, "engines": { - "node": ">=18.0.0" + "node": ">=18.0.0 <26" } }, "node_modules/gatsby-cli/node_modules/ansi-styles": { @@ -13556,9 +13563,10 @@ } }, "node_modules/gatsby-cli/node_modules/gatsby-core-utils": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.15.0.tgz", - "integrity": "sha512-fxzHbCvQm1u74DSjy7G4PVqEcWb7sOCFg3kFFVUqVKe3hDCm6s1M/gRSvpm3/3fm74HhgLsmQ54Qaf54Ckyn9w==", + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.16.0.tgz", + "integrity": "sha512-QCZ9BmQp3YyYxH0Wf4bofayL3vJnayqSvsBUAhKXGh/Os0fn1KMNyAjPLnW+zrGFQaK05Vjdlp99I/Wnc3M33A==", + "license": "MIT", "peer": true, "dependencies": { "@babel/runtime": "^7.20.13", @@ -13579,7 +13587,7 @@ "xdg-basedir": "^4.0.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=18.0.0 <26" } }, "node_modules/gatsby-cli/node_modules/locate-path": { @@ -13768,47 +13776,50 @@ } }, "node_modules/gatsby-link": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-5.15.0.tgz", - "integrity": "sha512-YUUWc8p2/6wZpSPES+8qPyWGomX9RRUU1omsLSRpRw+XZ6WxeTJ56SLp0XLU1zvtdpb74FGpdAOj8uvDffEtIw==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-5.16.0.tgz", + "integrity": "sha512-1drjKlnH9Si54npVsAnT46uW7fM7xT1ISgxzMZenhoSfAZYE0ZVqu9BbOJnj784YYLVo9t7YLzQrzP8VMHBFqQ==", + "license": "MIT", "peer": true, "dependencies": { "@types/reach__router": "^1.3.10", - "gatsby-page-utils": "^3.15.0", + "gatsby-page-utils": "^3.16.0", "prop-types": "^15.8.1" }, "engines": { - "node": ">=18.0.0" + "node": ">=18.0.0 <26" }, "peerDependencies": { "@gatsbyjs/reach-router": "^2.0.0", - "react": "^18.0.0 || ^0.0.0", - "react-dom": "^18.0.0 || ^0.0.0" + "react": "^18.0.0 || ^19.0.0 || ^0.0.0", + "react-dom": "^18.0.0 || ^19.0.0 || ^0.0.0" } }, "node_modules/gatsby-page-utils": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-3.15.0.tgz", - "integrity": "sha512-RXxFajO9f74Aw5cir1d6llzLQ1wePn7IWSG5xig+5pfPprIiKX76qFNUHwOf5Y3RFi/Qb0PWaVlRIyYh5uPQGw==", + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-3.16.0.tgz", + "integrity": "sha512-dZvHyhb9XvqeRlU0dzeeGHhgKVjMfStzWsPCQzSIf3A98U2LbBvAClJZhdFhLoNcYtLTo5hq8518G2+DlNVe6w==", + "license": "MIT", "peer": true, "dependencies": { "@babel/runtime": "^7.20.13", "bluebird": "^3.7.2", "chokidar": "^3.6.0", "fs-exists-cached": "^1.0.0", - "gatsby-core-utils": "^4.15.0", + "gatsby-core-utils": "^4.16.0", "glob": "^7.2.3", "lodash": "^4.17.21", "micromatch": "^4.0.5" }, "engines": { - "node": ">=18.0.0" + "node": ">=18.0.0 <26" } }, "node_modules/gatsby-page-utils/node_modules/gatsby-core-utils": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.15.0.tgz", - "integrity": "sha512-fxzHbCvQm1u74DSjy7G4PVqEcWb7sOCFg3kFFVUqVKe3hDCm6s1M/gRSvpm3/3fm74HhgLsmQ54Qaf54Ckyn9w==", + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.16.0.tgz", + "integrity": "sha512-QCZ9BmQp3YyYxH0Wf4bofayL3vJnayqSvsBUAhKXGh/Os0fn1KMNyAjPLnW+zrGFQaK05Vjdlp99I/Wnc3M33A==", + "license": "MIT", "peer": true, "dependencies": { "@babel/runtime": "^7.20.13", @@ -13829,7 +13840,7 @@ "xdg-basedir": "^4.0.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=18.0.0 <26" } }, "node_modules/gatsby-parcel-config": { @@ -13859,9 +13870,10 @@ } }, "node_modules/gatsby-plugin-image": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-image/-/gatsby-plugin-image-3.15.0.tgz", - "integrity": "sha512-GlcBjJgRqBfTKG7iYRzqpdlar/MeKqNKRZBlvNhqu6fit68njRotCcoH+SnQizSgt+NoSYfjVY6mOjyD2LO8Dg==", + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-image/-/gatsby-plugin-image-3.16.0.tgz", + "integrity": "sha512-1RCXMce7iHr7XwilgffkOPXdcdRbb6AyRCRRW4xUJLBQnwcDpthiznNh/iBy1ZAa5ssDCh6K71KTB7dkuarojw==", + "license": "MIT", "peer": true, "dependencies": { "@babel/code-frame": "^7.18.6", @@ -13869,13 +13881,13 @@ "@babel/runtime": "^7.20.13", "@babel/traverse": "^7.20.13", "babel-jsx-utils": "^1.1.0", - "babel-plugin-remove-graphql-queries": "^5.15.0", + "babel-plugin-remove-graphql-queries": "^5.16.0", "camelcase": "^6.3.0", "chokidar": "^3.6.0", "common-tags": "^1.8.2", "fs-extra": "^11.2.0", - "gatsby-core-utils": "^4.15.0", - "gatsby-plugin-utils": "^4.15.0", + "gatsby-core-utils": "^4.16.0", + "gatsby-plugin-utils": "^4.16.0", "objectFitPolyfill": "^2.3.5", "prop-types": "^15.8.1" }, @@ -13884,8 +13896,8 @@ "gatsby": "^5.0.0-next", "gatsby-plugin-sharp": "^5.0.0-next", "gatsby-source-filesystem": "^5.0.0-next", - "react": "^18.0.0 || ^0.0.0", - "react-dom": "^18.0.0 || ^0.0.0" + "react": "^18.0.0 || ^19.0.0 || ^0.0.0", + "react-dom": "^18.0.0 || ^19.0.0 || ^0.0.0" }, "peerDependenciesMeta": { "gatsby-plugin-sharp": { @@ -13897,9 +13909,10 @@ } }, "node_modules/gatsby-plugin-image/node_modules/gatsby-core-utils": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.15.0.tgz", - "integrity": "sha512-fxzHbCvQm1u74DSjy7G4PVqEcWb7sOCFg3kFFVUqVKe3hDCm6s1M/gRSvpm3/3fm74HhgLsmQ54Qaf54Ckyn9w==", + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.16.0.tgz", + "integrity": "sha512-QCZ9BmQp3YyYxH0Wf4bofayL3vJnayqSvsBUAhKXGh/Os0fn1KMNyAjPLnW+zrGFQaK05Vjdlp99I/Wnc3M33A==", + "license": "MIT", "peer": true, "dependencies": { "@babel/runtime": "^7.20.13", @@ -13920,13 +13933,14 @@ "xdg-basedir": "^4.0.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=18.0.0 <26" } }, "node_modules/gatsby-plugin-page-creator": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-5.15.0.tgz", - "integrity": "sha512-OYT37V2vif83c9TbnNoQrxzKqfSiXoRUWleXrxs3q5lydxCBrGc5DIQgJLJSJRs4OYEBFniYVIAdM+i5jD2Ybw==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-5.16.0.tgz", + "integrity": "sha512-SkKb7X/8A+C1bhhw/tEDPSTr8AcsTc526OisIu8fHlxLKUQ2jY7ppsvY2PimwtSCdX6euNdDafWWlfpy5XSSFA==", + "license": "MIT", "peer": true, "dependencies": { "@babel/runtime": "^7.20.13", @@ -13935,23 +13949,24 @@ "chokidar": "^3.6.0", "fs-exists-cached": "^1.0.0", "fs-extra": "^11.2.0", - "gatsby-core-utils": "^4.15.0", - "gatsby-page-utils": "^3.15.0", - "gatsby-plugin-utils": "^4.15.0", + "gatsby-core-utils": "^4.16.0", + "gatsby-page-utils": "^3.16.0", + "gatsby-plugin-utils": "^4.16.0", "globby": "^11.1.0", "lodash": "^4.17.21" }, "engines": { - "node": ">=18.0.0" + "node": ">=18.0.0 <26" }, "peerDependencies": { "gatsby": "^5.0.0-next" } }, "node_modules/gatsby-plugin-page-creator/node_modules/gatsby-core-utils": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.15.0.tgz", - "integrity": "sha512-fxzHbCvQm1u74DSjy7G4PVqEcWb7sOCFg3kFFVUqVKe3hDCm6s1M/gRSvpm3/3fm74HhgLsmQ54Qaf54Ckyn9w==", + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.16.0.tgz", + "integrity": "sha512-QCZ9BmQp3YyYxH0Wf4bofayL3vJnayqSvsBUAhKXGh/Os0fn1KMNyAjPLnW+zrGFQaK05Vjdlp99I/Wnc3M33A==", + "license": "MIT", "peer": true, "dependencies": { "@babel/runtime": "^7.20.13", @@ -13972,13 +13987,14 @@ "xdg-basedir": "^4.0.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=18.0.0 <26" } }, "node_modules/gatsby-plugin-typescript": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-5.15.0.tgz", - "integrity": "sha512-UFNZ1/CBzfVwd4nCGKwhYo4BE++OF6F1rplprlmvQEjFFfuZIvNxf1TiGCjKM6U7J55rG3F3jKeSLMGEkTBjfg==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-5.16.0.tgz", + "integrity": "sha512-+eE2mfmNU+AxnSCBIFU1oJIETMpfvAsBywFDPwtwDLlNl7GyQnvv0kz2OvR+jG8kjlUwBrR+71LJCg8Ydc5CSw==", + "license": "MIT", "peer": true, "dependencies": { "@babel/core": "^7.20.12", @@ -13987,33 +14003,34 @@ "@babel/plugin-proposal-optional-chaining": "^7.20.7", "@babel/preset-typescript": "^7.18.6", "@babel/runtime": "^7.20.13", - "babel-plugin-remove-graphql-queries": "^5.15.0" + "babel-plugin-remove-graphql-queries": "^5.16.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=18.0.0 <26" }, "peerDependencies": { "gatsby": "^5.0.0-next" } }, "node_modules/gatsby-plugin-utils": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-4.15.0.tgz", - "integrity": "sha512-6syfcye5eVYHXAU48G83mU2uXohxM3fO0BSGYYvGYlnM7FSV5HvwfFuksh3QEd0MKpE9gcQMVPvxa0pq2/PWdg==", + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-4.16.0.tgz", + "integrity": "sha512-5a2ui0XQBNP8vln/UyfaGBYrVpZ0oeK3fY6LjL2zx9H6wVcO5HLdjmU9yDUwQJygi2GtYW7VGQVKHfBGXMHI6A==", + "license": "MIT", "peer": true, "dependencies": { "@babel/runtime": "^7.20.13", "fastq": "^1.16.0", "fs-extra": "^11.2.0", - "gatsby-core-utils": "^4.15.0", - "gatsby-sharp": "^1.15.0", + "gatsby-core-utils": "^4.16.0", + "gatsby-sharp": "^1.16.0", "graphql-compose": "^9.0.10", "import-from": "^4.0.0", "joi": "^17.11.0", "mime": "^3.0.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=18.0.0 <26" }, "peerDependencies": { "gatsby": "^5.0.0-next", @@ -14021,9 +14038,10 @@ } }, "node_modules/gatsby-plugin-utils/node_modules/gatsby-core-utils": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.15.0.tgz", - "integrity": "sha512-fxzHbCvQm1u74DSjy7G4PVqEcWb7sOCFg3kFFVUqVKe3hDCm6s1M/gRSvpm3/3fm74HhgLsmQ54Qaf54Ckyn9w==", + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.16.0.tgz", + "integrity": "sha512-QCZ9BmQp3YyYxH0Wf4bofayL3vJnayqSvsBUAhKXGh/Os0fn1KMNyAjPLnW+zrGFQaK05Vjdlp99I/Wnc3M33A==", + "license": "MIT", "peer": true, "dependencies": { "@babel/runtime": "^7.20.13", @@ -14044,7 +14062,7 @@ "xdg-basedir": "^4.0.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=18.0.0 <26" } }, "node_modules/gatsby-react-router-scroll": { @@ -14080,43 +14098,46 @@ } }, "node_modules/gatsby-sharp": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/gatsby-sharp/-/gatsby-sharp-1.15.0.tgz", - "integrity": "sha512-nl+dSQwXPmhkE0qcLVvkLdE8scQALYopuk25RkLCDfi1VTNz0g6wcZwkmbcNjlTCR4RkbvCt7MGgNC7CVH3Ddw==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/gatsby-sharp/-/gatsby-sharp-1.16.0.tgz", + "integrity": "sha512-Xh2MwKtr9UYQnhlv5xpLXADRG6j/9dPgTLf010jNKQmvPsETkwZ3TZwnOpIgbGYJjg50rYzSCQ9RAuYXlqLmMA==", + "license": "MIT", "peer": true, "dependencies": { "sharp": "^0.32.6" }, "engines": { - "node": ">=18.0.0" + "node": ">=18.0.0 <26" } }, "node_modules/gatsby-source-filesystem": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/gatsby-source-filesystem/-/gatsby-source-filesystem-5.15.0.tgz", - "integrity": "sha512-i8pJdgGEVo+M9F1BCChKg3kzxpMTsK/wddtNvUPZj47yJGNJlW3Cax6Qr8mTu8/Rm5kno4+uM8eLKjwdB0ajMQ==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/gatsby-source-filesystem/-/gatsby-source-filesystem-5.16.0.tgz", + "integrity": "sha512-z64lyDaonLpD1fHV8s9MYVBz2z6Mv3jwEntwt/KA4QKPJsH/qD1eKZ0OBSilGqEadzLw7EcgTGkTXBAz1gd8fg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.20.13", "chokidar": "^3.6.0", "file-type": "^16.5.4", "fs-extra": "^11.2.0", - "gatsby-core-utils": "^4.15.0", + "gatsby-core-utils": "^4.16.0", "mime": "^3.0.0", "pretty-bytes": "^5.6.0", "valid-url": "^1.0.9", "xstate": "^4.38.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=18.0.0 <26" }, "peerDependencies": { "gatsby": "^5.0.0-next" } }, "node_modules/gatsby-source-filesystem/node_modules/gatsby-core-utils": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.15.0.tgz", - "integrity": "sha512-fxzHbCvQm1u74DSjy7G4PVqEcWb7sOCFg3kFFVUqVKe3hDCm6s1M/gRSvpm3/3fm74HhgLsmQ54Qaf54Ckyn9w==", + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.16.0.tgz", + "integrity": "sha512-QCZ9BmQp3YyYxH0Wf4bofayL3vJnayqSvsBUAhKXGh/Os0fn1KMNyAjPLnW+zrGFQaK05Vjdlp99I/Wnc3M33A==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.20.13", "ci-info": "2.0.0", @@ -14136,7 +14157,7 @@ "xdg-basedir": "^4.0.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=18.0.0 <26" } }, "node_modules/gatsby-worker": { @@ -15106,6 +15127,7 @@ "version": "3.0.8", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", + "peer": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -15117,6 +15139,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "peer": true, "dependencies": { "yallist": "^4.0.0" }, @@ -15127,7 +15150,8 @@ "node_modules/hosted-git-info/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "peer": true }, "node_modules/html-entities": { "version": "2.6.0", @@ -18044,15 +18068,17 @@ "integrity": "sha512-NZQIJJL5Rb9lMJ0Yl1JoVr9GSdo4HTPsUEWsSFzB8dE8DSoiLCVavWZPi7Rnlv/o73u6I24S/XYc/NmG4l8EKA==" }, "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "license": "MIT" }, "node_modules/lodash-es": { - "version": "4.17.22", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.22.tgz", - "integrity": "sha512-XEawp1t0gxSi9x01glktRZ5HDy0HXqrM0x5pXQM98EaI0NxO6jVM7omDOxsuEo5UIASAnm2bRp1Jt/e0a2XU8Q==", - "dev": true + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.23.tgz", + "integrity": "sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==", + "dev": true, + "license": "MIT" }, "node_modules/lodash.camelcase": { "version": "4.3.0", @@ -18805,7 +18831,8 @@ "node_modules/mute-stream": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "peer": true }, "node_modules/mz": { "version": "2.7.0", @@ -19058,9 +19085,9 @@ } }, "node_modules/npm": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/npm/-/npm-11.7.0.tgz", - "integrity": "sha512-wiCZpv/41bIobCoJ31NStIWKfAxxYyD1iYnWCtiyns8s5v3+l8y0HCP/sScuH6B5+GhIfda4HQKiqeGZwJWhFw==", + "version": "11.10.0", + "resolved": "https://registry.npmjs.org/npm/-/npm-11.10.0.tgz", + "integrity": "sha512-i8hE43iSIAMFuYVi8TxsEISdELM4fIza600aLjJ0ankGPLqd0oTPKMJqAcO/QWm307MbSlWGzJcNZ0lGMQgHPA==", "bundleDependencies": [ "@isaacs/string-locale-compare", "@npmcli/arborist", @@ -19130,10 +19157,18 @@ "which" ], "dev": true, + "license": "Artistic-2.0", + "workspaces": [ + "docs", + "smoke-tests", + "mock-globals", + "mock-registry", + "workspaces/*" + ], "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/arborist": "^9.1.9", - "@npmcli/config": "^10.4.5", + "@npmcli/arborist": "^9.3.0", + "@npmcli/config": "^10.7.0", "@npmcli/fs": "^5.0.0", "@npmcli/map-workspaces": "^5.0.3", "@npmcli/metavuln-calculator": "^9.0.3", @@ -19141,28 +19176,28 @@ "@npmcli/promise-spawn": "^9.0.1", "@npmcli/redact": "^4.0.0", "@npmcli/run-script": "^10.0.3", - "@sigstore/tuf": "^4.0.0", + "@sigstore/tuf": "^4.0.1", "abbrev": "^4.0.0", "archy": "~1.0.0", "cacache": "^20.0.3", "chalk": "^5.6.2", - "ci-info": "^4.3.1", + "ci-info": "^4.4.0", "cli-columns": "^4.0.0", "fastest-levenshtein": "^1.0.16", "fs-minipass": "^3.0.3", - "glob": "^13.0.0", + "glob": "^13.0.2", "graceful-fs": "^4.2.11", "hosted-git-info": "^9.0.2", "ini": "^6.0.0", "init-package-json": "^8.2.4", - "is-cidr": "^6.0.1", + "is-cidr": "^6.0.3", "json-parse-even-better-errors": "^5.0.0", "libnpmaccess": "^10.0.3", - "libnpmdiff": "^8.0.12", - "libnpmexec": "^10.1.11", - "libnpmfund": "^7.0.12", + "libnpmdiff": "^8.1.1", + "libnpmexec": "^10.2.1", + "libnpmfund": "^7.0.15", "libnpmorg": "^8.0.1", - "libnpmpack": "^9.0.12", + "libnpmpack": "^9.1.1", "libnpmpublish": "^11.1.3", "libnpmsearch": "^9.0.1", "libnpmteam": "^8.0.2", @@ -19172,7 +19207,7 @@ "minipass": "^7.1.1", "minipass-pipeline": "^1.2.4", "ms": "^2.1.2", - "node-gyp": "^12.1.0", + "node-gyp": "^12.2.0", "nopt": "^9.0.0", "npm-audit-report": "^7.0.0", "npm-install-checks": "^8.0.0", @@ -19182,21 +19217,21 @@ "npm-registry-fetch": "^19.1.1", "npm-user-validate": "^4.0.0", "p-map": "^7.0.4", - "pacote": "^21.0.4", + "pacote": "^21.3.1", "parse-conflict-json": "^5.0.1", "proc-log": "^6.1.0", "qrcode-terminal": "^0.12.0", "read": "^5.0.1", - "semver": "^7.7.3", + "semver": "^7.7.4", "spdx-expression-parse": "^4.0.0", - "ssri": "^13.0.0", + "ssri": "^13.0.1", "supports-color": "^10.2.2", - "tar": "^7.5.2", + "tar": "^7.5.7", "text-table": "~0.2.0", "tiny-relative-date": "^2.0.2", "treeverse": "^3.0.0", - "validate-npm-package-name": "^7.0.0", - "which": "^6.0.0" + "validate-npm-package-name": "^7.0.2", + "which": "^6.0.1" }, "bin": { "npm": "bin/npm-cli.js", @@ -19227,7 +19262,7 @@ } }, "node_modules/npm/node_modules/@isaacs/brace-expansion": { - "version": "5.0.0", + "version": "5.0.1", "dev": true, "inBundle": true, "license": "MIT", @@ -19273,7 +19308,7 @@ } }, "node_modules/npm/node_modules/@npmcli/arborist": { - "version": "9.1.9", + "version": "9.3.0", "dev": true, "inBundle": true, "license": "ISC", @@ -19291,7 +19326,7 @@ "@npmcli/run-script": "^10.0.0", "bin-links": "^6.0.0", "cacache": "^20.0.1", - "common-ancestor-path": "^1.0.1", + "common-ancestor-path": "^2.0.0", "hosted-git-info": "^9.0.0", "json-stringify-nice": "^1.1.4", "lru-cache": "^11.2.1", @@ -19320,7 +19355,7 @@ } }, "node_modules/npm/node_modules/@npmcli/config": { - "version": "10.4.5", + "version": "10.7.0", "dev": true, "inBundle": true, "license": "ISC", @@ -19515,7 +19550,7 @@ } }, "node_modules/npm/node_modules/@sigstore/core": { - "version": "3.0.0", + "version": "3.1.0", "dev": true, "inBundle": true, "license": "Apache-2.0", @@ -19533,52 +19568,43 @@ } }, "node_modules/npm/node_modules/@sigstore/sign": { - "version": "4.0.1", + "version": "4.1.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { "@sigstore/bundle": "^4.0.0", - "@sigstore/core": "^3.0.0", + "@sigstore/core": "^3.1.0", "@sigstore/protobuf-specs": "^0.5.0", - "make-fetch-happen": "^15.0.2", - "proc-log": "^5.0.0", + "make-fetch-happen": "^15.0.3", + "proc-log": "^6.1.0", "promise-retry": "^2.0.1" }, "engines": { "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/npm/node_modules/@sigstore/sign/node_modules/proc-log": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, "node_modules/npm/node_modules/@sigstore/tuf": { - "version": "4.0.0", + "version": "4.0.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { "@sigstore/protobuf-specs": "^0.5.0", - "tuf-js": "^4.0.0" + "tuf-js": "^4.1.0" }, "engines": { "node": "^20.17.0 || >=22.9.0" } }, "node_modules/npm/node_modules/@sigstore/verify": { - "version": "3.0.0", + "version": "3.1.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { "@sigstore/bundle": "^4.0.0", - "@sigstore/core": "^3.0.0", + "@sigstore/core": "^3.1.0", "@sigstore/protobuf-specs": "^0.5.0" }, "engines": { @@ -19595,33 +19621,18 @@ } }, "node_modules/npm/node_modules/@tufjs/models": { - "version": "4.0.0", + "version": "4.1.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { "@tufjs/canonical-json": "2.0.0", - "minimatch": "^9.0.5" + "minimatch": "^10.1.1" }, "engines": { "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/npm/node_modules/@tufjs/models/node_modules/minimatch": { - "version": "9.0.5", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/npm/node_modules/abbrev": { "version": "4.0.0", "dev": true, @@ -19661,12 +19672,6 @@ "inBundle": true, "license": "MIT" }, - "node_modules/npm/node_modules/balanced-match": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, "node_modules/npm/node_modules/bin-links": { "version": "6.0.0", "dev": true, @@ -19695,15 +19700,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm/node_modules/brace-expansion": { - "version": "2.0.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/npm/node_modules/cacache": { "version": "20.0.3", "dev": true, @@ -19748,7 +19744,7 @@ } }, "node_modules/npm/node_modules/ci-info": { - "version": "4.3.1", + "version": "4.4.0", "dev": true, "funding": [ { @@ -19763,7 +19759,7 @@ } }, "node_modules/npm/node_modules/cidr-regex": { - "version": "5.0.1", + "version": "5.0.2", "dev": true, "inBundle": true, "license": "BSD-2-Clause", @@ -19797,10 +19793,13 @@ } }, "node_modules/npm/node_modules/common-ancestor-path": { - "version": "1.0.1", + "version": "2.0.0", "dev": true, "inBundle": true, - "license": "ISC" + "license": "BlueOak-1.0.0", + "engines": { + "node": ">= 18" + } }, "node_modules/npm/node_modules/cssesc": { "version": "3.0.0", @@ -19832,7 +19831,7 @@ } }, "node_modules/npm/node_modules/diff": { - "version": "8.0.2", + "version": "8.0.3", "dev": true, "inBundle": true, "license": "BSD-3-Clause", @@ -19899,12 +19898,12 @@ } }, "node_modules/npm/node_modules/glob": { - "version": "13.0.0", + "version": "13.0.2", "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { - "minimatch": "^10.1.1", + "minimatch": "^10.1.2", "minipass": "^7.1.2", "path-scurry": "^2.0.0" }, @@ -20027,7 +20026,7 @@ } }, "node_modules/npm/node_modules/ip-address": { - "version": "10.0.1", + "version": "10.1.0", "dev": true, "inBundle": true, "license": "MIT", @@ -20048,12 +20047,12 @@ } }, "node_modules/npm/node_modules/is-cidr": { - "version": "6.0.1", + "version": "6.0.3", "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { - "cidr-regex": "5.0.1" + "cidr-regex": "^5.0.1" }, "engines": { "node": ">=20" @@ -20069,12 +20068,12 @@ } }, "node_modules/npm/node_modules/isexe": { - "version": "3.1.1", + "version": "4.0.0", "dev": true, "inBundle": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "engines": { - "node": ">=16" + "node": ">=20" } }, "node_modules/npm/node_modules/json-parse-even-better-errors": { @@ -20130,12 +20129,12 @@ } }, "node_modules/npm/node_modules/libnpmdiff": { - "version": "8.0.12", + "version": "8.1.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^9.1.9", + "@npmcli/arborist": "^9.3.0", "@npmcli/installed-package-contents": "^4.0.0", "binary-extensions": "^3.0.0", "diff": "^8.0.2", @@ -20149,12 +20148,12 @@ } }, "node_modules/npm/node_modules/libnpmexec": { - "version": "10.1.11", + "version": "10.2.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^9.1.9", + "@npmcli/arborist": "^9.3.0", "@npmcli/package-json": "^7.0.0", "@npmcli/run-script": "^10.0.0", "ci-info": "^4.0.0", @@ -20172,12 +20171,12 @@ } }, "node_modules/npm/node_modules/libnpmfund": { - "version": "7.0.12", + "version": "7.0.15", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^9.1.9" + "@npmcli/arborist": "^9.3.0" }, "engines": { "node": "^20.17.0 || >=22.9.0" @@ -20197,12 +20196,12 @@ } }, "node_modules/npm/node_modules/libnpmpack": { - "version": "9.0.12", + "version": "9.1.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^9.1.9", + "@npmcli/arborist": "^9.3.0", "@npmcli/run-script": "^10.0.0", "npm-package-arg": "^13.0.0", "pacote": "^21.0.2" @@ -20272,10 +20271,10 @@ } }, "node_modules/npm/node_modules/lru-cache": { - "version": "11.2.2", + "version": "11.2.6", "dev": true, "inBundle": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "engines": { "node": "20 || >=22" } @@ -20303,12 +20302,12 @@ } }, "node_modules/npm/node_modules/minimatch": { - "version": "10.1.1", + "version": "10.1.2", "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { - "@isaacs/brace-expansion": "^5.0.0" + "@isaacs/brace-expansion": "^5.0.1" }, "engines": { "node": "20 || >=22" @@ -20339,13 +20338,13 @@ } }, "node_modules/npm/node_modules/minipass-fetch": { - "version": "5.0.0", + "version": "5.0.1", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", + "minipass-sized": "^2.0.0", "minizlib": "^3.0.1" }, "engines": { @@ -20404,24 +20403,12 @@ } }, "node_modules/npm/node_modules/minipass-sized": { - "version": "1.0.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": { - "version": "3.3.6", + "version": "2.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "yallist": "^4.0.0" + "minipass": "^7.1.2" }, "engines": { "node": ">=8" @@ -20464,7 +20451,7 @@ } }, "node_modules/npm/node_modules/node-gyp": { - "version": "12.1.0", + "version": "12.2.0", "dev": true, "inBundle": true, "license": "MIT", @@ -20476,7 +20463,7 @@ "nopt": "^9.0.0", "proc-log": "^6.0.0", "semver": "^7.3.5", - "tar": "^7.5.2", + "tar": "^7.5.4", "tinyglobby": "^0.2.12", "which": "^6.0.0" }, @@ -20641,7 +20628,7 @@ } }, "node_modules/npm/node_modules/pacote": { - "version": "21.0.4", + "version": "21.3.1", "dev": true, "inBundle": true, "license": "ISC", @@ -20686,7 +20673,7 @@ } }, "node_modules/npm/node_modules/path-scurry": { - "version": "2.0.0", + "version": "2.0.1", "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", @@ -20702,7 +20689,7 @@ } }, "node_modules/npm/node_modules/postcss-selector-parser": { - "version": "7.1.0", + "version": "7.1.1", "dev": true, "inBundle": true, "license": "MIT", @@ -20821,7 +20808,7 @@ "optional": true }, "node_modules/npm/node_modules/semver": { - "version": "7.7.3", + "version": "7.7.4", "dev": true, "inBundle": true, "license": "ISC", @@ -20845,17 +20832,17 @@ } }, "node_modules/npm/node_modules/sigstore": { - "version": "4.0.0", + "version": "4.1.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { "@sigstore/bundle": "^4.0.0", - "@sigstore/core": "^3.0.0", + "@sigstore/core": "^3.1.0", "@sigstore/protobuf-specs": "^0.5.0", - "@sigstore/sign": "^4.0.0", - "@sigstore/tuf": "^4.0.0", - "@sigstore/verify": "^3.0.0" + "@sigstore/sign": "^4.1.0", + "@sigstore/tuf": "^4.0.1", + "@sigstore/verify": "^3.1.0" }, "engines": { "node": "^20.17.0 || >=22.9.0" @@ -20942,7 +20929,7 @@ "license": "CC0-1.0" }, "node_modules/npm/node_modules/ssri": { - "version": "13.0.0", + "version": "13.0.1", "dev": true, "inBundle": true, "license": "ISC", @@ -20992,7 +20979,7 @@ } }, "node_modules/npm/node_modules/tar": { - "version": "7.5.2", + "version": "7.5.7", "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", @@ -21083,14 +21070,14 @@ } }, "node_modules/npm/node_modules/tuf-js": { - "version": "4.0.0", + "version": "4.1.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@tufjs/models": "4.0.0", - "debug": "^4.4.1", - "make-fetch-happen": "^15.0.0" + "@tufjs/models": "4.1.0", + "debug": "^4.4.3", + "make-fetch-happen": "^15.0.1" }, "engines": { "node": "^20.17.0 || >=22.9.0" @@ -21147,7 +21134,7 @@ } }, "node_modules/npm/node_modules/validate-npm-package-name": { - "version": "7.0.0", + "version": "7.0.2", "dev": true, "inBundle": true, "license": "ISC", @@ -21165,12 +21152,12 @@ } }, "node_modules/npm/node_modules/which": { - "version": "6.0.0", + "version": "6.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "isexe": "^3.1.1" + "isexe": "^4.0.0" }, "bin": { "node-which": "bin/which.js" @@ -23700,6 +23687,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", + "peer": true, "dependencies": { "mute-stream": "~0.0.4" }, @@ -29866,6 +29854,7 @@ "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.6.11 <=0.7.0 || >=0.7.3" } @@ -30101,15 +30090,13 @@ } }, "node_modules/undici": { - "version": "5.29.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz", - "integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==", + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.23.0.tgz", + "integrity": "sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==", "dev": true, - "dependencies": { - "@fastify/busboy": "^2.0.0" - }, + "license": "MIT", "engines": { - "node": ">=14.0" + "node": ">=18.17" } }, "node_modules/undici-types": { diff --git a/package.json b/package.json index 69dc210..ff47247 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gatsby-source-contentstack", - "version": "5.4.1", + "version": "5.4.2", "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 new file mode 100644 index 0000000..b59da50 --- /dev/null +++ b/plugin-init.js @@ -0,0 +1,36 @@ +'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 new file mode 100644 index 0000000..18945ad --- /dev/null +++ b/plugin-options-schema.js @@ -0,0 +1,28 @@ +'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 new file mode 100644 index 0000000..f6a7148 --- /dev/null +++ b/pre-bootstrap.js @@ -0,0 +1,10 @@ +'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 new file mode 100644 index 0000000..12f7a1c --- /dev/null +++ b/source-node.js @@ -0,0 +1,192 @@ +'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, _t, _t2; + return _regenerator["default"].wrap(function (_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 = 1; + contentTypeOption = getContentTypeOption(configOptions); + _context.next = 2; + return fetchData(configOptions, reporter, cache, contentTypeOption); + case 2: + _yield$fetchData = _context.sent; + _contentstackData = _yield$fetchData.contentstackData; + contentstackData = _contentstackData; + _context.next = 3; + return cache.get(typePrefix); + case 3: + contentstackData.contentTypes = _context.sent; + _context.next = 5; + break; + case 4: + _context.prev = 4; + _t = _context["catch"](1); + 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: _t + }); + throw _t; + case 5: + 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 = 6; + return cache.set(ASSET_NODE_UIDS, assetUids); + case 6: + _t2 = configOptions.downloadImages; + if (!_t2) { + _context.next = 7; + break; + } + _context.next = 7; + return cache.set(SUPPORTED_FILES_COUNT, countOfSupportedFormatFiles); + case 7: + 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 = 8; + break; + } + _context.next = 8; + return downloadAssets({ + cache: cache, + getCache: getCache, + createNode: createNode, + createNodeId: createNodeId, + getNodesByType: getNodesByType, + reporter: reporter, + createNodeField: createNodeField, + getNode: getNode + }, typePrefix, configOptions); + case 8: + // 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 9: + case "end": + return _context.stop(); + } + }, _callee, null, [[1, 4]]); + })(); + }); + return function (_x, _x2) { + return _ref.apply(this, arguments); + }; +}(); +//# sourceMappingURL=source-node.js.map \ No newline at end of file diff --git a/src/entry-data.js b/src/entry-data.js index 9298b32..dc33547 100644 --- a/src/entry-data.js +++ b/src/entry-data.js @@ -28,7 +28,10 @@ class FetchDefaultEntries extends FetchEntries { const [syncEntryData, syncAssetData] = await Promise.all([fn.apply(null, [syncEntryParams, configOptions]), fn.apply(null, [syncAssetParams, configOptions])]); const data = syncEntryData.data.concat(syncAssetData.data); syncData.data = data; - await Promise.all([cache.set(entryTokenKey, syncEntryData.sync_token), cache.set(assetTokenKey, syncAssetData.sync_token)]); + await Promise.all([ + syncEntryData.sync_token !== undefined ? cache.set(entryTokenKey, syncEntryData.sync_token) : Promise.resolve(), + syncAssetData.sync_token !== undefined ? cache.set(assetTokenKey, syncAssetData.sync_token) : Promise.resolve() + ]); } else { const tokenKey = `${typePrefix.toLowerCase()}-sync-token-${configOptions.api_key}`; const syncToken = await cache.get(tokenKey); @@ -38,7 +41,9 @@ class FetchDefaultEntries extends FetchEntries { syncData = await fn.apply(null, [syncParams, configOptions]); // Caching token for the next sync - await cache.set(tokenKey, syncData.sync_token); + if (syncData.sync_token !== undefined) { + await cache.set(tokenKey, syncData.sync_token); + } } } catch (error) { throw error; @@ -80,7 +85,9 @@ class FetchSpecifiedContentTypesEntries extends FetchEntries { syncData.data = syncData.data || []; syncData.data = syncData.data.concat(_syncData.data); // Caching token for the next sync. - await cache.set(tokenKey, _syncData.sync_token); + if (_syncData.sync_token !== undefined) { + await cache.set(tokenKey, _syncData.sync_token); + } } return syncData; } catch (error) { @@ -128,7 +135,9 @@ class FetchSpecifiedLocalesEntries extends FetchEntries { syncData.data = syncData.data || []; syncData.data = syncData.data.concat(_syncData.data); // Caching token for next sync - await cache.set(tokenKey, _syncData.sync_token); + if (_syncData.sync_token !== undefined) { + await cache.set(tokenKey, _syncData.sync_token); + } } return syncData; } catch (error) { @@ -180,7 +189,9 @@ class FetchSpecifiedLocalesAndContentTypesEntries extends FetchEntries { syncData.data = syncData.data || []; syncData.data = syncData.data.concat(_syncData.data); // Caching token for next sync - await cache.set(tokenKey, _syncData.sync_token); + if (_syncData.sync_token !== undefined) { + await cache.set(tokenKey, _syncData.sync_token); + } } } return syncData; @@ -211,7 +222,9 @@ class FetchAssets { syncAssetParams.type = 'asset_published,asset_unpublished,asset_deleted'; const syncAssetData = await fn.apply(null, [syncAssetParams, configOptions]); syncData.data = syncAssetData.data; - await cache.set(assetTokenKey, syncAssetData.sync_token); + if (syncAssetData.sync_token !== undefined) { + await cache.set(assetTokenKey, syncAssetData.sync_token); + } return syncData; } catch (error) { throw error; diff --git a/utils.js b/utils.js new file mode 100644 index 0000000..21a20af --- /dev/null +++ b/utils.js @@ -0,0 +1,76 @@ +'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 From 0fb7e55901b55cf81336a5f5f95b951ad2e7c19f Mon Sep 17 00:00:00 2001 From: Amitkanswal Date: Mon, 23 Feb 2026 12:26:44 +0530 Subject: [PATCH 2/2] fix:snyk fix and license update --- LICENSE | 2 +- package-lock.json | 950 +++++++++++++++++++++++++++------------------- package.json | 2 +- 3 files changed, 558 insertions(+), 396 deletions(-) diff --git a/LICENSE b/LICENSE index 816ce04..13a5837 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2025 Contentstack +Copyright (c) 2026 Contentstack Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/package-lock.json b/package-lock.json index 48b772a..455e79f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -49,7 +49,7 @@ "node": ">=18.0.0" }, "peerDependencies": { - "gatsby": "5.15.0", + "gatsby": "5.16.0", "gatsby-plugin-image": "^3.0.0-next" } }, @@ -967,6 +967,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -1818,6 +1819,7 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", + "license": "MIT", "peer": true, "dependencies": { "@babel/plugin-transform-react-jsx": "^7.27.1" @@ -1833,6 +1835,7 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.1", @@ -2156,6 +2159,7 @@ "version": "7.28.5", "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.28.5.tgz", "integrity": "sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==", + "license": "MIT", "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", @@ -2584,9 +2588,10 @@ } }, "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -2637,25 +2642,27 @@ "peer": true }, "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/@gatsbyjs/parcel-namer-relative-to-cwd/-/parcel-namer-relative-to-cwd-2.15.0.tgz", - "integrity": "sha512-k1a8iLsjQY0m5Rkj+IA6Ev5QwAUU7KK2NKX+5IMcr8Ld5s13Xc1l+8Vg++yX1eCFQUALk4J4dvm2gHBjDldd2Q==", + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/@gatsbyjs/parcel-namer-relative-to-cwd/-/parcel-namer-relative-to-cwd-2.16.0.tgz", + "integrity": "sha512-E05myRVDUgUXS41wWxBOc0wPub1WAty3M6bO2vGctToXO11Lw9tci9banlSQojBB12ExsmRqNW90FxtVNTbfQA==", + "license": "MIT", "peer": true, "dependencies": { "@babel/runtime": "^7.20.13", "@parcel/namer-default": "2.8.3", "@parcel/plugin": "2.8.3", - "gatsby-core-utils": "^4.15.0" + "gatsby-core-utils": "^4.16.0" }, "engines": { - "node": ">=18.0.0", + "node": ">=18.0.0 <26", "parcel": "2.x" } }, "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd/node_modules/gatsby-core-utils": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.15.0.tgz", - "integrity": "sha512-fxzHbCvQm1u74DSjy7G4PVqEcWb7sOCFg3kFFVUqVKe3hDCm6s1M/gRSvpm3/3fm74HhgLsmQ54Qaf54Ckyn9w==", + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.16.0.tgz", + "integrity": "sha512-QCZ9BmQp3YyYxH0Wf4bofayL3vJnayqSvsBUAhKXGh/Os0fn1KMNyAjPLnW+zrGFQaK05Vjdlp99I/Wnc3M33A==", + "license": "MIT", "peer": true, "dependencies": { "@babel/runtime": "^7.20.13", @@ -2676,7 +2683,7 @@ "xdg-basedir": "^4.0.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=18.0.0 <26" } }, "node_modules/@gatsbyjs/reach-router": { @@ -3958,15 +3965,17 @@ } }, "node_modules/@lezer/common": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.4.0.tgz", - "integrity": "sha512-DVeMRoGrgn/k45oQNu189BoW4SZwgZFzJ1+1TV5j2NJ/KFC83oa/enRqZSGshyeMk5cPWMhsKs9nx+8o0unwGg==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.5.1.tgz", + "integrity": "sha512-6YRVG9vBkaY7p1IVxL4s44n5nUnaNnGM2/AckNgYOnxTG2kWh1vR8BMxPseWPjRNpb5VtXnMpeYAEAADoRV1Iw==", + "license": "MIT", "peer": true }, "node_modules/@lezer/lr": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.5.tgz", - "integrity": "sha512-/YTRKP5yPPSo1xImYQk7AZZMAgap0kegzqCSYHjAL9x1AZ0ZQW+IpcEzMKagCsbTsLnVeWkxYrCNeXG8xEPrjg==", + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.8.tgz", + "integrity": "sha512-bPWa0Pgx69ylNlMlPvBPryqeLYQjyJjqPx+Aupm5zydLIF3NE+6MMLT8Yi23Bd9cif9VS00aUebn+6fDIGBcDA==", + "license": "MIT", "peer": true, "dependencies": { "@lezer/common": "^1.0.0" @@ -4048,6 +4057,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/@mischnic/json-sourcemap/-/json-sourcemap-0.1.1.tgz", "integrity": "sha512-iA7+tyVqfrATAIsIRWQG+a7ZLLD0VaOCKV2Wd/v4mqIU3J9c4jx9p7S0nw1XH3gJCKNBOOwACOPYYSUu9pgT+w==", + "license": "MIT", "peer": true, "dependencies": { "@lezer/common": "^1.0.0", @@ -4341,6 +4351,7 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.8.3.tgz", "integrity": "sha512-yJvRsNWWu5fVydsWk3O2L4yIy3UZiKWO2cPDukGOIWMgp/Vbpp+2Ct5IygVRtE22bnseW/E/oe0PV3d2IkEJGg==", + "license": "MIT", "peer": true, "dependencies": { "@parcel/diagnostic": "2.8.3", @@ -4363,6 +4374,7 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.8.3.tgz", "integrity": "sha512-k7xv5vSQrJLdXuglo+Hv3yF4BCSs1tQ/8Vbd6CHTkOhf7LcGg6CPtLw053R/KdMpd/4GPn0QrAsOLdATm1ELtQ==", + "license": "MIT", "peer": true, "dependencies": { "@parcel/fs": "2.8.3", @@ -4388,6 +4400,7 @@ "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "darwin" @@ -4401,6 +4414,7 @@ "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "darwin" @@ -4414,6 +4428,7 @@ "cpu": [ "arm" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -4427,6 +4442,7 @@ "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -4440,6 +4456,7 @@ "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -4453,6 +4470,7 @@ "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -4464,6 +4482,7 @@ "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.5.2.tgz", "integrity": "sha512-V5V5Xa2Hp9i2XsbDALkBTeHXnBXh/lEmk9p22zdr7jtuOIY9TGhjK6vAvTpOOx9IKU4hJkRWZxn/HsvR1ELLtA==", "hasInstallScript": true, + "license": "MIT", "peer": true, "dependencies": { "msgpackr": "^1.5.4", @@ -4485,12 +4504,14 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", + "license": "MIT", "peer": true }, "node_modules/@parcel/codeframe": { "version": "2.8.3", "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.8.3.tgz", "integrity": "sha512-FE7sY53D6n/+2Pgg6M9iuEC6F5fvmyBkRE4d9VdnOoxhTXtkEqpqYgX7RJ12FAQwNlxKq4suBJQMgQHMF2Kjeg==", + "license": "MIT", "peer": true, "dependencies": { "chalk": "^4.1.0" @@ -4507,6 +4528,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "peer": true, "dependencies": { "color-convert": "^2.0.1" @@ -4522,6 +4544,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "peer": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -4538,6 +4561,7 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.8.3.tgz", "integrity": "sha512-bVDsqleBUxRdKMakWSlWC9ZjOcqDKE60BE+Gh3JSN6WJrycJ02P5wxjTVF4CStNP/G7X17U+nkENxSlMG77ySg==", + "license": "MIT", "peer": true, "dependencies": { "@parcel/plugin": "2.8.3" @@ -4555,6 +4579,7 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.8.3.tgz", "integrity": "sha512-Euf/un4ZAiClnlUXqPB9phQlKbveU+2CotZv7m7i+qkgvFn5nAGnrV4h1OzQU42j9dpgOxWi7AttUDMrvkbhCQ==", + "license": "MIT", "peer": true, "dependencies": { "@mischnic/json-sourcemap": "^0.1.0", @@ -4594,6 +4619,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-7.0.0.tgz", "integrity": "sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==", + "license": "BSD-2-Clause", "peer": true, "engines": { "node": ">=6" @@ -4603,6 +4629,7 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", "peer": true, "bin": { "semver": "bin/semver" @@ -4612,6 +4639,7 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.8.3.tgz", "integrity": "sha512-u7wSzuMhLGWZjVNYJZq/SOViS3uFG0xwIcqXw12w54Uozd6BH8JlhVtVyAsq9kqnn7YFkw6pXHqAo5Tzh4FqsQ==", + "license": "MIT", "peer": true, "dependencies": { "@mischnic/json-sourcemap": "^0.1.0", @@ -4629,6 +4657,7 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.8.3.tgz", "integrity": "sha512-hoIS4tAxWp8FJk3628bsgKxEvR7bq2scCVYHSqZ4fTi/s0+VymEATrRCUqf+12e5H47uw1/ZjoqrGtBI02pz4w==", + "license": "MIT", "peer": true, "engines": { "node": ">= 12.0.0" @@ -4642,6 +4671,7 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.8.3.tgz", "integrity": "sha512-y+i+oXbT7lP0e0pJZi/YSm1vg0LDsbycFuHZIL80pNwdEppUAtibfJZCp606B7HOjMAlNZOBo48e3hPG3d8jgQ==", + "license": "MIT", "peer": true, "dependencies": { "@parcel/fs-search": "2.8.3", @@ -4665,6 +4695,7 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/@parcel/fs-search/-/fs-search-2.8.3.tgz", "integrity": "sha512-DJBT2N8knfN7Na6PP2mett3spQLTqxFrvl0gv+TJRp61T8Ljc4VuUTb0hqBj+belaASIp3Q+e8+SgaFQu7wLiQ==", + "license": "MIT", "peer": true, "dependencies": { "detect-libc": "^1.0.3" @@ -4681,6 +4712,7 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-2.8.3.tgz", "integrity": "sha512-26GL8fYZPdsRhSXCZ0ZWliloK6DHlMJPWh6Z+3VVZ5mnDSbYg/rRKWmrkhnr99ZWmL9rJsv4G74ZwvDEXTMPBg==", + "license": "MIT", "peer": true, "dependencies": { "nullthrows": "^1.1.1" @@ -4697,6 +4729,7 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/@parcel/hash/-/hash-2.8.3.tgz", "integrity": "sha512-FVItqzjWmnyP4ZsVgX+G00+6U2IzOvqDtdwQIWisCcVoXJFCqZJDy6oa2qDDFz96xCCCynjRjPdQx2jYBCpfYw==", + "license": "MIT", "peer": true, "dependencies": { "detect-libc": "^1.0.3", @@ -4714,6 +4747,7 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.8.3.tgz", "integrity": "sha512-Kpxd3O/Vs7nYJIzkdmB6Bvp3l/85ydIxaZaPfGSGTYOfaffSOTkhcW9l6WemsxUrlts4za6CaEWcc4DOvaMOPA==", + "license": "MIT", "peer": true, "dependencies": { "@parcel/diagnostic": "2.8.3", @@ -4731,6 +4765,7 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.8.3.tgz", "integrity": "sha512-4v+pjyoh9f5zuU/gJlNvNFGEAb6J90sOBwpKJYJhdWXLZMNFCVzSigxrYO+vCsi8G4rl6/B2c0LcwIMjGPHmFQ==", + "license": "MIT", "peer": true, "dependencies": { "chalk": "^4.1.0" @@ -4747,6 +4782,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "peer": true, "dependencies": { "color-convert": "^2.0.1" @@ -4762,6 +4798,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "peer": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -4778,6 +4815,7 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.8.3.tgz", "integrity": "sha512-tJ7JehZviS5QwnxbARd8Uh63rkikZdZs1QOyivUhEvhN+DddSAVEdQLHGPzkl3YRk0tjFhbqo+Jci7TpezuAMw==", + "license": "MIT", "peer": true, "dependencies": { "@parcel/diagnostic": "2.8.3", @@ -4797,6 +4835,7 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-2.8.3.tgz", "integrity": "sha512-12YryWcA5Iw2WNoEVr/t2HDjYR1iEzbjEcxfh1vaVDdZ020PiGw67g5hyIE/tsnG7SRJ0xdRx1fQ2hDgED+0Ww==", + "license": "MIT", "peer": true, "dependencies": { "@parcel/diagnostic": "2.8.3", @@ -4816,6 +4855,7 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", "peer": true, "bin": { "semver": "bin/semver" @@ -4825,6 +4865,7 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/@parcel/optimizer-terser/-/optimizer-terser-2.8.3.tgz", "integrity": "sha512-9EeQlN6zIeUWwzrzu6Q2pQSaYsYGah8MtiQ/hog9KEPlYTP60hBv/+utDyYEHSQhL7y5ym08tPX5GzBvwAD/dA==", + "license": "MIT", "peer": true, "dependencies": { "@parcel/diagnostic": "2.8.3", @@ -4847,6 +4888,7 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.8.3.tgz", "integrity": "sha512-tIpY5pD2lH53p9hpi++GsODy6V3khSTX4pLEGuMpeSYbHthnOViobqIlFLsjni+QA1pfc8NNNIQwSNdGjYflVA==", + "license": "MIT", "peer": true, "dependencies": { "@parcel/diagnostic": "2.8.3", @@ -4872,6 +4914,7 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", "peer": true, "bin": { "semver": "bin/semver" @@ -4881,6 +4924,7 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.8.3.tgz", "integrity": "sha512-0pGKC3Ax5vFuxuZCRB+nBucRfFRz4ioie19BbDxYnvBxrd4M3FIu45njf6zbBYsI9eXqaDnL1b3DcZJfYqtIzw==", + "license": "MIT", "peer": true, "dependencies": { "@parcel/diagnostic": "2.8.3", @@ -4904,6 +4948,7 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.8.3.tgz", "integrity": "sha512-BA6enNQo1RCnco9MhkxGrjOk59O71IZ9DPKu3lCtqqYEVd823tXff2clDKHK25i6cChmeHu6oB1Rb73hlPqhUA==", + "license": "MIT", "peer": true, "dependencies": { "@parcel/plugin": "2.8.3" @@ -4921,6 +4966,7 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.8.3.tgz", "integrity": "sha512-jZ6mnsS4D9X9GaNnvrixDQwlUQJCohDX2hGyM0U0bY2NWU8Km97SjtoCpWjq+XBCx/gpC4g58+fk9VQeZq2vlw==", + "license": "MIT", "peer": true, "dependencies": { "@parcel/types": "2.8.3" @@ -4937,6 +4983,7 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.8.3.tgz", "integrity": "sha512-Y8C8hzgzTd13IoWTj+COYXEyCkXfmVJs3//GDBsH22pbtSFMuzAZd+8J9qsCo0EWpiDow7V9f1LischvEh3FbQ==", + "license": "MIT", "peer": true, "dependencies": { "@parcel/plugin": "2.8.3", @@ -4955,6 +5002,7 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.8.3.tgz", "integrity": "sha512-k0B5M/PJ+3rFbNj4xZSBr6d6HVIe6DH/P3dClLcgBYSXAvElNDfXgtIimbjCyItFkW9/BfcgOVKEEIZOeySH/A==", + "license": "MIT", "peer": true, "dependencies": { "@parcel/node-resolver-core": "2.8.3", @@ -4973,6 +5021,7 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.8.3.tgz", "integrity": "sha512-IRja0vNKwvMtPgIqkBQh0QtRn0XcxNC8HU1jrgWGRckzu10qJWO+5ULgtOeR4pv9krffmMPqywGXw6l/gvJKYQ==", + "license": "MIT", "peer": true, "dependencies": { "@parcel/plugin": "2.8.3", @@ -4992,6 +5041,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.1.1.tgz", "integrity": "sha512-Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew==", + "license": "MIT", "peer": true, "dependencies": { "detect-libc": "^1.0.3" @@ -5004,6 +5054,7 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.8.3.tgz", "integrity": "sha512-9Qd6bib+sWRcpovvzvxwy/PdFrLUXGfmSW9XcVVG8pvgXsZPFaNjnNT8stzGQj1pQiougCoxMY4aTM5p1lGHEQ==", + "license": "MIT", "peer": true, "dependencies": { "@parcel/diagnostic": "2.8.3", @@ -5034,6 +5085,7 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", "peer": true, "bin": { "semver": "bin/semver" @@ -5043,6 +5095,7 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.8.3.tgz", "integrity": "sha512-B7LmVq5Q7bZO4ERb6NHtRuUKWGysEeaj9H4zelnyBv+wLgpo4f5FCxSE1/rTNmP9u1qHvQ3scGdK6EdSSokGPg==", + "license": "MIT", "peer": true, "dependencies": { "@parcel/plugin": "2.8.3", @@ -5061,6 +5114,7 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.8.3.tgz", "integrity": "sha512-FECA1FB7+0UpITKU0D6TgGBpGxYpVSMNEENZbSJxFSajNy3wrko+zwBKQmFOLOiPcEtnGikxNs+jkFWbPlUAtw==", + "license": "MIT", "peer": true, "dependencies": { "@parcel/cache": "2.8.3", @@ -5076,6 +5130,7 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.8.3.tgz", "integrity": "sha512-IhVrmNiJ+LOKHcCivG5dnuLGjhPYxQ/IzbnF2DKNQXWBTsYlHkJZpmz7THoeLtLliGmSOZ3ZCsbR8/tJJKmxjA==", + "license": "MIT", "peer": true, "dependencies": { "@parcel/codeframe": "2.8.3", @@ -5098,6 +5153,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "peer": true, "dependencies": { "color-convert": "^2.0.1" @@ -5113,6 +5169,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "peer": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -5126,16 +5183,17 @@ } }, "node_modules/@parcel/watcher": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", - "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.6.tgz", + "integrity": "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==", "hasInstallScript": true, + "license": "MIT", "peer": true, "dependencies": { - "detect-libc": "^1.0.3", + "detect-libc": "^2.0.3", "is-glob": "^4.0.3", - "micromatch": "^4.0.5", - "node-addon-api": "^7.0.0" + "node-addon-api": "^7.0.0", + "picomatch": "^4.0.3" }, "engines": { "node": ">= 10.0.0" @@ -5145,28 +5203,29 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.5.1", - "@parcel/watcher-darwin-arm64": "2.5.1", - "@parcel/watcher-darwin-x64": "2.5.1", - "@parcel/watcher-freebsd-x64": "2.5.1", - "@parcel/watcher-linux-arm-glibc": "2.5.1", - "@parcel/watcher-linux-arm-musl": "2.5.1", - "@parcel/watcher-linux-arm64-glibc": "2.5.1", - "@parcel/watcher-linux-arm64-musl": "2.5.1", - "@parcel/watcher-linux-x64-glibc": "2.5.1", - "@parcel/watcher-linux-x64-musl": "2.5.1", - "@parcel/watcher-win32-arm64": "2.5.1", - "@parcel/watcher-win32-ia32": "2.5.1", - "@parcel/watcher-win32-x64": "2.5.1" + "@parcel/watcher-android-arm64": "2.5.6", + "@parcel/watcher-darwin-arm64": "2.5.6", + "@parcel/watcher-darwin-x64": "2.5.6", + "@parcel/watcher-freebsd-x64": "2.5.6", + "@parcel/watcher-linux-arm-glibc": "2.5.6", + "@parcel/watcher-linux-arm-musl": "2.5.6", + "@parcel/watcher-linux-arm64-glibc": "2.5.6", + "@parcel/watcher-linux-arm64-musl": "2.5.6", + "@parcel/watcher-linux-x64-glibc": "2.5.6", + "@parcel/watcher-linux-x64-musl": "2.5.6", + "@parcel/watcher-win32-arm64": "2.5.6", + "@parcel/watcher-win32-ia32": "2.5.6", + "@parcel/watcher-win32-x64": "2.5.6" } }, "node_modules/@parcel/watcher-android-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", - "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.6.tgz", + "integrity": "sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "android" @@ -5181,12 +5240,13 @@ } }, "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", - "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.6.tgz", + "integrity": "sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "darwin" @@ -5201,12 +5261,13 @@ } }, "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", - "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.6.tgz", + "integrity": "sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "darwin" @@ -5221,12 +5282,13 @@ } }, "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", - "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.6.tgz", + "integrity": "sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "freebsd" @@ -5241,12 +5303,13 @@ } }, "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", - "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.6.tgz", + "integrity": "sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==", "cpu": [ "arm" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -5261,12 +5324,13 @@ } }, "node_modules/@parcel/watcher-linux-arm-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", - "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.6.tgz", + "integrity": "sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==", "cpu": [ "arm" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -5281,12 +5345,13 @@ } }, "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", - "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.6.tgz", + "integrity": "sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -5301,12 +5366,13 @@ } }, "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", - "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.6.tgz", + "integrity": "sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -5321,12 +5387,13 @@ } }, "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", - "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.6.tgz", + "integrity": "sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -5341,12 +5408,13 @@ } }, "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", - "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.6.tgz", + "integrity": "sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -5361,12 +5429,13 @@ } }, "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", - "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.6.tgz", + "integrity": "sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -5381,12 +5450,13 @@ } }, "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", - "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.6.tgz", + "integrity": "sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==", "cpu": [ "ia32" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -5401,12 +5471,13 @@ } }, "node_modules/@parcel/watcher-win32-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", - "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.6.tgz", + "integrity": "sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -5420,10 +5491,34 @@ "url": "https://opencollective.com/parcel" } }, + "node_modules/@parcel/watcher/node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@parcel/watcher/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@parcel/workers": { "version": "2.8.3", "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.8.3.tgz", "integrity": "sha512-+AxBnKgjqVpUHBcHLWIHcjYgKIvHIpZjN33mG5LG9XXvrZiqdWvouEzqEXlVLq5VzzVbKIQQcmsvRy138YErkg==", + "license": "MIT", "peer": true, "dependencies": { "@parcel/diagnostic": "2.8.3", @@ -6414,6 +6509,7 @@ "version": "0.4.37", "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.37.tgz", "integrity": "sha512-O4U8DmGtYvuWDrqmkAqhmA+sV8D3eJzvKSUgg5L5eaCCPdywZBLc97UgJT/fQaCkQ5onJzJWNojgErJk1bThaw==", + "license": "Apache-2.0", "peer": true, "dependencies": { "@swc/legacy-helpers": "npm:@swc/helpers@=0.4.14", @@ -6425,6 +6521,7 @@ "version": "0.4.14", "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz", "integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==", + "license": "MIT", "peer": true, "dependencies": { "tslib": "^2.4.0" @@ -7140,6 +7237,7 @@ "version": "1.7.8", "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.8.tgz", "integrity": "sha512-9f1iZ2uWh92VcrU9Y8x+LdM4DLj75VE0MJB8zuF1iUnroEptStw+DQ8EQPMUdfe5k+PkB1uUfDQfWbhstH8LrQ==", + "license": "MIT", "peer": true }, "node_modules/accepts": { @@ -7853,9 +7951,10 @@ } }, "node_modules/babel-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -7926,6 +8025,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "license": "MIT", "peer": true, "dependencies": { "object.assign": "^4.1.0" @@ -8102,6 +8202,7 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==", + "license": "MIT", "peer": true }, "node_modules/babel-preset-current-node-syntax": { @@ -8169,9 +8270,10 @@ } }, "node_modules/babel-preset-gatsby": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-3.15.0.tgz", - "integrity": "sha512-09DpFsY1sN3FF44fJJLAfLqj1mLCVylbuspogUoQsnZtulqZ50UZWnK22ztrYNSjICYO1DTGe77jsu/Skj4ZKw==", + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-3.16.0.tgz", + "integrity": "sha512-ad1XZpJMG0HcX/6w7auLx7MZmxzsbWNyvk1N1KHcvVva8s0SYtp+rXKQPQX1vJxKebzDXt0JvvNZ/smeQr4TeQ==", + "license": "MIT", "peer": true, "dependencies": { "@babel/plugin-proposal-class-properties": "^7.18.6", @@ -8187,11 +8289,11 @@ "babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-macros": "^3.1.0", "babel-plugin-transform-react-remove-prop-types": "^0.4.24", - "gatsby-core-utils": "^4.15.0", - "gatsby-legacy-polyfills": "^3.15.0" + "gatsby-core-utils": "^4.16.0", + "gatsby-legacy-polyfills": "^3.16.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=18.0.0 <26" }, "peerDependencies": { "@babel/core": "^7.11.6", @@ -8199,9 +8301,10 @@ } }, "node_modules/babel-preset-gatsby/node_modules/gatsby-core-utils": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.15.0.tgz", - "integrity": "sha512-fxzHbCvQm1u74DSjy7G4PVqEcWb7sOCFg3kFFVUqVKe3hDCm6s1M/gRSvpm3/3fm74HhgLsmQ54Qaf54Ckyn9w==", + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.16.0.tgz", + "integrity": "sha512-QCZ9BmQp3YyYxH0Wf4bofayL3vJnayqSvsBUAhKXGh/Os0fn1KMNyAjPLnW+zrGFQaK05Vjdlp99I/Wnc3M33A==", + "license": "MIT", "peer": true, "dependencies": { "@babel/runtime": "^7.20.13", @@ -8222,7 +8325,7 @@ "xdg-basedir": "^4.0.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=18.0.0 <26" } }, "node_modules/babel-preset-jest": { @@ -8341,6 +8444,7 @@ "version": "3.0.11", "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.11.tgz", "integrity": "sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==", + "license": "MIT", "peer": true, "dependencies": { "safe-buffer": "^5.0.1" @@ -8452,23 +8556,24 @@ "peer": true }, "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz", + "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==", + "license": "MIT", "peer": true, "dependencies": { - "bytes": "3.1.2", + "bytes": "~3.1.2", "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.14.0", + "raw-body": "~2.5.3", "type-is": "~1.6.18", - "unpipe": "1.0.0" + "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.8", @@ -9322,6 +9427,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "license": "MIT", "peer": true, "engines": { "node": ">=0.8" @@ -9782,10 +9888,11 @@ "peer": true }, "node_modules/core-js": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.47.0.tgz", - "integrity": "sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==", + "version": "3.48.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.48.0.tgz", + "integrity": "sha512-zpEHTy1fjTMZCKLHUZoVeylt9XrzaIN2rbPXEt0k+q7JE5CkCZdo6bNq55bn24a69CH7ErAVLKijxJja4fw+UQ==", "hasInstallScript": true, + "license": "MIT", "peer": true, "funding": { "type": "opencollective", @@ -10082,9 +10189,10 @@ } }, "node_modules/css-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -10176,9 +10284,10 @@ } }, "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -10705,6 +10814,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "license": "Apache-2.0", "peer": true, "bin": { "detect-libc": "bin/detect-libc.js" @@ -10900,6 +11010,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "license": "BSD-2-Clause", "peer": true }, "node_modules/dunder-proto": { @@ -11919,9 +12030,10 @@ } }, "node_modules/eslint-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -11997,9 +12109,10 @@ } }, "node_modules/eslint/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -12435,22 +12548,6 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "peer": true }, - "node_modules/express/node_modules/qs": { - "version": "6.14.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz", - "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==", - "license": "BSD-3-Clause", - "peer": true, - "dependencies": { - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/ext": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", @@ -12647,9 +12744,10 @@ } }, "node_modules/file-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -12949,9 +13047,10 @@ } }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -13255,10 +13354,11 @@ } }, "node_modules/gatsby": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-5.15.0.tgz", - "integrity": "sha512-eqtq5S7AhS0SROTdOycOATYwT6GLYTcvpzZnzK2pFfhe3knLX0XJoSResUGGIj9kqfi8/kXEH29RU/2Lr7nPbw==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-5.16.0.tgz", + "integrity": "sha512-xVzKmYvi2UFvwmHvkW0mBW6wirMtqoenTw9aLFVWDTSvyJycka70yNk4dnaaKSJ7TwpVStYZ/Z2J5Pc1ROgJqQ==", "hasInstallScript": true, + "license": "MIT", "peer": true, "dependencies": { "@babel/code-frame": "^7.18.6", @@ -13284,7 +13384,7 @@ "@nodelib/fs.walk": "^1.2.8", "@parcel/cache": "2.8.3", "@parcel/core": "2.8.3", - "@pmmmwh/react-refresh-webpack-plugin": "^0.5.10", + "@pmmmwh/react-refresh-webpack-plugin": "0.5", "@sigmacomputing/babel-plugin-lodash": "^3.3.5", "@types/http-proxy": "^1.17.11", "@typescript-eslint/eslint-plugin": "^5.60.1", @@ -13300,11 +13400,11 @@ "babel-loader": "^8.3.0", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-dynamic-import-node": "^2.3.3", - "babel-plugin-remove-graphql-queries": "^5.15.0", - "babel-preset-gatsby": "^3.15.0", + "babel-plugin-remove-graphql-queries": "^5.16.0", + "babel-preset-gatsby": "^3.16.0", "better-opn": "^2.1.1", "bluebird": "^3.7.2", - "body-parser": "1.20.3", + "body-parser": "^2.2.2", "browserslist": "^4.21.9", "cache-manager": "^2.11.1", "chalk": "^4.1.2", @@ -13342,19 +13442,19 @@ "find-cache-dir": "^3.3.2", "fs-exists-cached": "1.0.0", "fs-extra": "^11.2.0", - "gatsby-cli": "^5.15.0", - "gatsby-core-utils": "^4.15.0", - "gatsby-graphiql-explorer": "^3.15.0", - "gatsby-legacy-polyfills": "^3.15.0", - "gatsby-link": "^5.15.0", - "gatsby-page-utils": "^3.15.0", - "gatsby-parcel-config": "1.15.0", - "gatsby-plugin-page-creator": "^5.15.0", - "gatsby-plugin-typescript": "^5.15.0", - "gatsby-plugin-utils": "^4.15.0", - "gatsby-react-router-scroll": "^6.15.0", - "gatsby-script": "^2.15.0", - "gatsby-worker": "^2.15.0", + "gatsby-cli": "^5.16.0", + "gatsby-core-utils": "^4.16.0", + "gatsby-graphiql-explorer": "^3.16.0", + "gatsby-legacy-polyfills": "^3.16.0", + "gatsby-link": "^5.16.0", + "gatsby-page-utils": "^3.16.0", + "gatsby-parcel-config": "^1.16.0", + "gatsby-plugin-page-creator": "^5.16.0", + "gatsby-plugin-typescript": "^5.16.0", + "gatsby-plugin-utils": "^4.16.0", + "gatsby-react-router-scroll": "^6.16.0", + "gatsby-script": "^2.16.0", + "gatsby-worker": "^2.16.0", "glob": "^7.2.3", "globby": "^11.1.0", "got": "^11.8.6", @@ -13398,7 +13498,7 @@ "query-string": "^6.14.1", "raw-loader": "^4.0.2", "react-dev-utils": "^12.0.1", - "react-refresh": "^0.14.0", + "react-refresh": "^0.14.1", "react-server-dom-webpack": "0.0.0-experimental-c8b778b7f-20220825", "redux": "4.2.1", "redux-thunk": "^2.4.2", @@ -13432,14 +13532,14 @@ "gatsby": "cli.js" }, "engines": { - "node": ">=18.0.0" + "node": ">=18.0.0 <26" }, "optionalDependencies": { - "gatsby-sharp": "^1.15.0" + "gatsby-sharp": "^1.16.0" }, "peerDependencies": { - "react": "^18.0.0 || ^0.0.0", - "react-dom": "^18.0.0 || ^0.0.0" + "react": "^18.0.0 || ^19.0.0 || ^0.0.0", + "react-dom": "^18.0.0 || ^19.0.0 || ^0.0.0" } }, "node_modules/gatsby-cli": { @@ -13744,18 +13844,20 @@ } }, "node_modules/gatsby-graphiql-explorer": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-3.15.0.tgz", - "integrity": "sha512-w4Q/7J4W+wqle3PmiBqMXO/gvQmB9zrnEMwNccvgkHX4Mi4ru8sbi4/C8uIzuMCWIEWNdcKvp6RVqzZQHJZtkA==", + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-3.16.0.tgz", + "integrity": "sha512-IvfQHhProBviKMac1Tpcihm/f4DjNp5NvgVouPu7XFtSnMVi7oS0Rp5r70kitldNTzzwtQLE3yJmMPUdN6lsLg==", + "license": "MIT", "peer": true, "engines": { "node": ">=14.15.0" } }, "node_modules/gatsby-legacy-polyfills": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-3.15.0.tgz", - "integrity": "sha512-JbB33TyrWEoe84QvRDsMv85Y5ScPbpvJSp7E48bKXIN5peRDG+h6WVwmyo4paxSeyaajYgyRtnfP9UQaRgh2DQ==", + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-3.16.0.tgz", + "integrity": "sha512-wFs1UdLe2MyViJ1yGz3kcnipU418hcVmME/88Yx/M4HMO7ollKc+kvoVrzRYwXxdjGb9a7HyAM9Tr0p22mHS/Q==", + "license": "MIT", "peer": true, "dependencies": { "@babel/runtime": "^7.20.13", @@ -13766,6 +13868,7 @@ "version": "3.31.0", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.31.0.tgz", "integrity": "sha512-hM7YCu1cU6Opx7MXNu0NuumM0ezNeAeRKadixyiQELWY3vT3De9S4J5ZBMraWV2vZnrE1Cirl0GtFtDtMUXzPw==", + "license": "MIT", "peer": true, "dependencies": { "browserslist": "^4.21.5" @@ -13844,12 +13947,13 @@ } }, "node_modules/gatsby-parcel-config": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/gatsby-parcel-config/-/gatsby-parcel-config-1.15.0.tgz", - "integrity": "sha512-A6Vh0B+Afp5/4xxP1t6jfzCusUZGZqN10rP31KxHrn1e8jMhwrnjOx/0nm/wYnWO2YOO3bFP72Rwg7MKC2rn3A==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/gatsby-parcel-config/-/gatsby-parcel-config-1.16.0.tgz", + "integrity": "sha512-hc9usoJm/Tr/hS66gxl/gMIJxp+Z9W+YvtiEab3VlZJYaIgK/XysH7p65C/CMAL0qgMnIr8Imwsz+63+MkN/Kg==", + "license": "MIT", "peer": true, "dependencies": { - "@gatsbyjs/parcel-namer-relative-to-cwd": "2.15.0", + "@gatsbyjs/parcel-namer-relative-to-cwd": "^2.16.0", "@parcel/bundler-default": "2.8.3", "@parcel/compressor-raw": "2.8.3", "@parcel/namer-default": "2.8.3", @@ -14066,35 +14170,37 @@ } }, "node_modules/gatsby-react-router-scroll": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-6.15.0.tgz", - "integrity": "sha512-Qxgd5Zx/6mpYOZJloO6qwHu/kjUE6dMCLpP00VWfeDgB14BqhPeV4A53zSgvO53vqlO+Vbm6ggUlOOt7daPA4Q==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-6.16.0.tgz", + "integrity": "sha512-VtbO98hc73gUyri1wRSQWGT/ENkrvVrlryKA3Xic2rFxcmup4gz2ZWR0zQ8EWJb3Nw/k9toGPd5FnXG3Fp7DuA==", + "license": "MIT", "peer": true, "dependencies": { "@babel/runtime": "^7.20.13", "prop-types": "^15.8.1" }, "engines": { - "node": ">=18.0.0" + "node": ">=18.0.0 <26" }, "peerDependencies": { "@gatsbyjs/reach-router": "^2.0.0", - "react": "^18.0.0 || ^0.0.0", - "react-dom": "^18.0.0 || ^0.0.0" + "react": "^18.0.0 || ^19.0.0 || ^0.0.0", + "react-dom": "^18.0.0 || ^19.0.0 || ^0.0.0" } }, "node_modules/gatsby-script": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/gatsby-script/-/gatsby-script-2.15.0.tgz", - "integrity": "sha512-5FYEVPg7924Xvjj26isycLGK/6rEAa1xsb957U+Few2/J30Gego6PHggYbNNN8wut2AlqRvMdML6U16PaA1fSw==", + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/gatsby-script/-/gatsby-script-2.16.0.tgz", + "integrity": "sha512-NvHn87O+/pFszK75FSR5Na00V36+ZrZH4CTaWa8iosqH/oIyH5RXrpEajGkz4tg5SG/oH/KFNcsCFWOSo8rGlg==", + "license": "MIT", "peer": true, "engines": { - "node": ">=18.0.0" + "node": ">=18.0.0 <26" }, "peerDependencies": { "@gatsbyjs/reach-router": "^2.0.0", - "react": "^18.0.0 || ^0.0.0", - "react-dom": "^18.0.0 || ^0.0.0" + "react": "^18.0.0 || ^19.0.0 || ^0.0.0", + "react-dom": "^18.0.0 || ^19.0.0 || ^0.0.0" } }, "node_modules/gatsby-sharp": { @@ -14161,9 +14267,10 @@ } }, "node_modules/gatsby-worker": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/gatsby-worker/-/gatsby-worker-2.15.0.tgz", - "integrity": "sha512-oi6eEN8nSxrh68c+yXY9ssi9Wv4GLVXgEF8RctvAZGe8DqLf8VfXJovAETJOaTM9wknUEpUj+DqZfcv898+yeA==", + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/gatsby-worker/-/gatsby-worker-2.16.0.tgz", + "integrity": "sha512-1C36ZFvhN3rX/HkO3H4hT3NMoFeaEPNjhK7rPrGU9IX3+Vm+/ry1LyYMziC3wKEeeWHNmCs2NFCBZYoBw1SzJQ==", + "license": "MIT", "peer": true, "dependencies": { "@babel/core": "^7.20.12", @@ -14172,7 +14279,7 @@ "signal-exit": "^3.0.7" }, "engines": { - "node": ">=18.0.0" + "node": ">=18.0.0 <26" } }, "node_modules/gatsby/node_modules/@eslint/eslintrc": { @@ -14230,9 +14337,10 @@ } }, "node_modules/gatsby/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -14269,6 +14377,31 @@ "sprintf-js": "~1.0.2" } }, + "node_modules/gatsby/node_modules/body-parser": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz", + "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==", + "license": "MIT", + "peer": true, + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.3", + "http-errors": "^2.0.0", + "iconv-lite": "^0.7.0", + "on-finished": "^2.4.1", + "qs": "^6.14.1", + "raw-body": "^3.0.1", + "type-is": "^2.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/gatsby/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -14425,9 +14558,10 @@ } }, "node_modules/gatsby/node_modules/gatsby-core-utils": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.15.0.tgz", - "integrity": "sha512-fxzHbCvQm1u74DSjy7G4PVqEcWb7sOCFg3kFFVUqVKe3hDCm6s1M/gRSvpm3/3fm74HhgLsmQ54Qaf54Ckyn9w==", + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-4.16.0.tgz", + "integrity": "sha512-QCZ9BmQp3YyYxH0Wf4bofayL3vJnayqSvsBUAhKXGh/Os0fn1KMNyAjPLnW+zrGFQaK05Vjdlp99I/Wnc3M33A==", + "license": "MIT", "peer": true, "dependencies": { "@babel/runtime": "^7.20.13", @@ -14448,7 +14582,24 @@ "xdg-basedir": "^4.0.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=18.0.0 <26" + } + }, + "node_modules/gatsby/node_modules/iconv-lite": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", + "license": "MIT", + "peer": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/gatsby/node_modules/ignore": { @@ -14479,6 +14630,49 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "peer": true }, + "node_modules/gatsby/node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/gatsby/node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "license": "MIT", + "peer": true, + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/gatsby/node_modules/qs": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.0.tgz", + "integrity": "sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gatsby/node_modules/query-string": { "version": "6.14.1", "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz", @@ -14497,6 +14691,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gatsby/node_modules/raw-body": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", + "license": "MIT", + "peer": true, + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.7.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/gatsby/node_modules/semver": { "version": "7.7.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", @@ -14509,6 +14719,21 @@ "node": ">=10" } }, + "node_modules/gatsby/node_modules/type-is": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "license": "MIT", + "peer": true, + "dependencies": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/generator-function": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", @@ -15200,28 +15425,24 @@ "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==" }, "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", "peer": true, "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" }, "engines": { "node": ">= 0.8" - } - }, - "node_modules/http-errors/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "peer": true, - "engines": { - "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/http-proxy-agent": { @@ -18612,9 +18833,10 @@ } }, "node_modules/mini-css-extract-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -18661,9 +18883,10 @@ } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.3.tgz", + "integrity": "sha512-M2GCs7Vk83NxkUyQV1bkABc4yxgz9kILhHImZiBPAZ9ybuvCb0/H7lEl5XvIg3g+9d4eNotkZA5IWwYl0tibaA==", + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -18831,8 +19054,7 @@ "node_modules/mute-stream": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "peer": true + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, "node_modules/mz": { "version": "2.7.0", @@ -18944,6 +19166,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "license": "MIT", "peer": true }, "node_modules/node-emoji": { @@ -19085,9 +19308,9 @@ } }, "node_modules/npm": { - "version": "11.10.0", - "resolved": "https://registry.npmjs.org/npm/-/npm-11.10.0.tgz", - "integrity": "sha512-i8hE43iSIAMFuYVi8TxsEISdELM4fIza600aLjJ0ankGPLqd0oTPKMJqAcO/QWm307MbSlWGzJcNZ0lGMQgHPA==", + "version": "11.10.1", + "resolved": "https://registry.npmjs.org/npm/-/npm-11.10.1.tgz", + "integrity": "sha512-woavuY2OgDFQ1K/tB9QHsUuW989nKfvsKTN/h5qGyS+3+BhvXN/DA2TNzx569JaFfTqrET5bEQNHwVhFk+U1gg==", "bundleDependencies": [ "@isaacs/string-locale-compare", "@npmcli/arborist", @@ -19105,7 +19328,6 @@ "cacache", "chalk", "ci-info", - "cli-columns", "fastest-levenshtein", "fs-minipass", "glob", @@ -19167,12 +19389,12 @@ ], "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/arborist": "^9.3.0", - "@npmcli/config": "^10.7.0", + "@npmcli/arborist": "^9.3.1", + "@npmcli/config": "^10.7.1", "@npmcli/fs": "^5.0.0", "@npmcli/map-workspaces": "^5.0.3", "@npmcli/metavuln-calculator": "^9.0.3", - "@npmcli/package-json": "^7.0.4", + "@npmcli/package-json": "^7.0.5", "@npmcli/promise-spawn": "^9.0.1", "@npmcli/redact": "^4.0.0", "@npmcli/run-script": "^10.0.3", @@ -19182,29 +19404,28 @@ "cacache": "^20.0.3", "chalk": "^5.6.2", "ci-info": "^4.4.0", - "cli-columns": "^4.0.0", "fastest-levenshtein": "^1.0.16", "fs-minipass": "^3.0.3", - "glob": "^13.0.2", + "glob": "^13.0.6", "graceful-fs": "^4.2.11", "hosted-git-info": "^9.0.2", "ini": "^6.0.0", - "init-package-json": "^8.2.4", + "init-package-json": "^8.2.5", "is-cidr": "^6.0.3", "json-parse-even-better-errors": "^5.0.0", "libnpmaccess": "^10.0.3", - "libnpmdiff": "^8.1.1", - "libnpmexec": "^10.2.1", - "libnpmfund": "^7.0.15", + "libnpmdiff": "^8.1.2", + "libnpmexec": "^10.2.2", + "libnpmfund": "^7.0.16", "libnpmorg": "^8.0.1", - "libnpmpack": "^9.1.1", + "libnpmpack": "^9.1.2", "libnpmpublish": "^11.1.3", "libnpmsearch": "^9.0.1", "libnpmteam": "^8.0.2", "libnpmversion": "^8.0.3", "make-fetch-happen": "^15.0.3", - "minimatch": "^10.1.1", - "minipass": "^7.1.1", + "minimatch": "^10.2.2", + "minipass": "^7.1.3", "minipass-pipeline": "^1.2.4", "ms": "^2.1.2", "node-gyp": "^12.2.0", @@ -19226,7 +19447,7 @@ "spdx-expression-parse": "^4.0.0", "ssri": "^13.0.1", "supports-color": "^10.2.2", - "tar": "^7.5.7", + "tar": "^7.5.9", "text-table": "~0.2.0", "tiny-relative-date": "^2.0.2", "treeverse": "^3.0.0", @@ -19255,7 +19476,6 @@ "node_modules/npm/node_modules/@isaacs/balanced-match": { "version": "4.0.1", "dev": true, - "inBundle": true, "license": "MIT", "engines": { "node": "20 || >=22" @@ -19264,7 +19484,6 @@ "node_modules/npm/node_modules/@isaacs/brace-expansion": { "version": "5.0.1", "dev": true, - "inBundle": true, "license": "MIT", "dependencies": { "@isaacs/balanced-match": "^4.0.1" @@ -19308,7 +19527,7 @@ } }, "node_modules/npm/node_modules/@npmcli/arborist": { - "version": "9.3.0", + "version": "9.3.1", "dev": true, "inBundle": true, "license": "ISC", @@ -19355,7 +19574,7 @@ } }, "node_modules/npm/node_modules/@npmcli/config": { - "version": "10.7.0", + "version": "10.7.1", "dev": true, "inBundle": true, "license": "ISC", @@ -19470,7 +19689,7 @@ } }, "node_modules/npm/node_modules/@npmcli/package-json": { - "version": "7.0.4", + "version": "7.0.5", "dev": true, "inBundle": true, "license": "ISC", @@ -19481,7 +19700,7 @@ "json-parse-even-better-errors": "^5.0.0", "proc-log": "^6.0.0", "semver": "^7.5.3", - "validate-npm-package-license": "^3.0.4" + "spdx-expression-parse": "^4.0.0" }, "engines": { "node": "^20.17.0 || >=22.9.0" @@ -19651,15 +19870,6 @@ "node": ">= 14" } }, - "node_modules/npm/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/npm/node_modules/aproba": { "version": "2.1.0", "dev": true, @@ -19672,6 +19882,15 @@ "inBundle": true, "license": "MIT" }, + "node_modules/npm/node_modules/balanced-match": { + "version": "4.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "20 || >=22" + } + }, "node_modules/npm/node_modules/bin-links": { "version": "6.0.0", "dev": true, @@ -19700,6 +19919,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/npm/node_modules/brace-expansion": { + "version": "5.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" + } + }, "node_modules/npm/node_modules/cacache": { "version": "20.0.3", "dev": true, @@ -19759,30 +19990,14 @@ } }, "node_modules/npm/node_modules/cidr-regex": { - "version": "5.0.2", + "version": "5.0.3", "dev": true, "inBundle": true, "license": "BSD-2-Clause", - "dependencies": { - "ip-regex": "5.0.0" - }, "engines": { "node": ">=20" } }, - "node_modules/npm/node_modules/cli-columns": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">= 10" - } - }, "node_modules/npm/node_modules/cmd-shim": { "version": "8.0.0", "dev": true, @@ -19839,12 +20054,6 @@ "node": ">=0.3.1" } }, - "node_modules/npm/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, "node_modules/npm/node_modules/encoding": { "version": "0.1.13", "dev": true, @@ -19898,17 +20107,17 @@ } }, "node_modules/npm/node_modules/glob": { - "version": "13.0.2", + "version": "13.0.6", "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { - "minimatch": "^10.1.2", - "minipass": "^7.1.2", - "path-scurry": "^2.0.0" + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -20008,7 +20217,7 @@ } }, "node_modules/npm/node_modules/init-package-json": { - "version": "8.2.4", + "version": "8.2.5", "dev": true, "inBundle": true, "license": "ISC", @@ -20018,7 +20227,6 @@ "promzard": "^3.0.1", "read": "^5.0.1", "semver": "^7.7.2", - "validate-npm-package-license": "^3.0.4", "validate-npm-package-name": "^7.0.0" }, "engines": { @@ -20037,7 +20245,6 @@ "node_modules/npm/node_modules/ip-regex": { "version": "5.0.0", "dev": true, - "inBundle": true, "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" @@ -20058,15 +20265,6 @@ "node": ">=20" } }, - "node_modules/npm/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/npm/node_modules/isexe": { "version": "4.0.0", "dev": true, @@ -20129,12 +20327,12 @@ } }, "node_modules/npm/node_modules/libnpmdiff": { - "version": "8.1.1", + "version": "8.1.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^9.3.0", + "@npmcli/arborist": "^9.3.1", "@npmcli/installed-package-contents": "^4.0.0", "binary-extensions": "^3.0.0", "diff": "^8.0.2", @@ -20148,12 +20346,12 @@ } }, "node_modules/npm/node_modules/libnpmexec": { - "version": "10.2.1", + "version": "10.2.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^9.3.0", + "@npmcli/arborist": "^9.3.1", "@npmcli/package-json": "^7.0.0", "@npmcli/run-script": "^10.0.0", "ci-info": "^4.0.0", @@ -20171,12 +20369,12 @@ } }, "node_modules/npm/node_modules/libnpmfund": { - "version": "7.0.15", + "version": "7.0.16", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^9.3.0" + "@npmcli/arborist": "^9.3.1" }, "engines": { "node": "^20.17.0 || >=22.9.0" @@ -20196,12 +20394,12 @@ } }, "node_modules/npm/node_modules/libnpmpack": { - "version": "9.1.1", + "version": "9.1.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^9.3.0", + "@npmcli/arborist": "^9.3.1", "@npmcli/run-script": "^10.0.0", "npm-package-arg": "^13.0.0", "pacote": "^21.0.2" @@ -20302,25 +20500,25 @@ } }, "node_modules/npm/node_modules/minimatch": { - "version": "10.1.2", + "version": "10.2.2", "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { - "@isaacs/brace-expansion": "^5.0.1" + "brace-expansion": "^5.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/npm/node_modules/minipass": { - "version": "7.1.2", + "version": "7.1.3", "dev": true, "inBundle": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "engines": { "node": ">=16 || 14 >=14.17" } @@ -20378,6 +20576,12 @@ "node": ">=8" } }, + "node_modules/npm/node_modules/minipass-flush/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, "node_modules/npm/node_modules/minipass-pipeline": { "version": "1.2.4", "dev": true, @@ -20402,6 +20606,12 @@ "node": ">=8" } }, + "node_modules/npm/node_modules/minipass-pipeline/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, "node_modules/npm/node_modules/minipass-sized": { "version": "2.0.0", "dev": true, @@ -20673,7 +20883,7 @@ } }, "node_modules/npm/node_modules/path-scurry": { - "version": "2.0.1", + "version": "2.0.2", "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", @@ -20682,7 +20892,7 @@ "minipass": "^7.1.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -20889,7 +21099,6 @@ "node_modules/npm/node_modules/spdx-correct": { "version": "3.2.0", "dev": true, - "inBundle": true, "license": "Apache-2.0", "dependencies": { "spdx-expression-parse": "^3.0.0", @@ -20899,7 +21108,6 @@ "node_modules/npm/node_modules/spdx-correct/node_modules/spdx-expression-parse": { "version": "3.0.1", "dev": true, - "inBundle": true, "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", @@ -20940,32 +21148,6 @@ "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/npm/node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/npm/node_modules/supports-color": { "version": "10.2.2", "dev": true, @@ -20979,7 +21161,7 @@ } }, "node_modules/npm/node_modules/tar": { - "version": "7.5.7", + "version": "7.5.9", "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", @@ -20994,15 +21176,6 @@ "node": ">=18" } }, - "node_modules/npm/node_modules/tar/node_modules/yallist": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, "node_modules/npm/node_modules/text-table": { "version": "0.2.0", "dev": true, @@ -21116,7 +21289,6 @@ "node_modules/npm/node_modules/validate-npm-package-license": { "version": "3.0.4", "dev": true, - "inBundle": true, "license": "Apache-2.0", "dependencies": { "spdx-correct": "^3.0.0", @@ -21126,7 +21298,6 @@ "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { "version": "3.0.1", "dev": true, - "inBundle": true, "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", @@ -21180,10 +21351,13 @@ } }, "node_modules/npm/node_modules/yallist": { - "version": "4.0.0", + "version": "5.0.0", "dev": true, "inBundle": true, - "license": "ISC" + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } }, "node_modules/nth-check": { "version": "2.1.1", @@ -21218,9 +21392,10 @@ } }, "node_modules/null-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -23243,12 +23418,13 @@ ] }, "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "version": "6.14.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz", + "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==", + "license": "BSD-3-Clause", "peer": true, "dependencies": { - "side-channel": "^1.0.6" + "side-channel": "^1.1.0" }, "engines": { "node": ">=0.6" @@ -23323,15 +23499,16 @@ } }, "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", + "license": "MIT", "peer": true, "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.8" @@ -23358,9 +23535,10 @@ } }, "node_modules/raw-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -23687,7 +23865,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", - "peer": true, "dependencies": { "mute-stream": "~0.0.4" }, @@ -24212,6 +24389,7 @@ "version": "0.13.11", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "license": "MIT", "peer": true }, "node_modules/regexp.prototype.flags": { @@ -27899,26 +28077,6 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "peer": true }, - "node_modules/send/node_modules/http-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", - "peer": true, - "dependencies": { - "depd": "~2.0.0", - "inherits": "~2.0.4", - "setprototypeof": "~1.2.0", - "statuses": "~2.0.2", - "toidentifier": "~1.0.1" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "node_modules/send/node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -29050,9 +29208,10 @@ } }, "node_modules/style-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -30311,9 +30470,10 @@ } }, "node_modules/url-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -30374,6 +30534,7 @@ "version": "3.11.0", "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz", "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", + "license": "MIT", "peer": true, "engines": { "node": ">= 4" @@ -30872,6 +31033,7 @@ "version": "0.4.2", "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-0.4.2.tgz", "integrity": "sha512-/eyHVRJQCirEkSZ1agRSCwriMhwlyUcFkXD5TPVSLP+IPzjsqMVzZwdoczLp1SoQU0R3dxz1RpIK+4YNQbCVOA==", + "license": "MIT", "peer": true }, "node_modules/y18n": { diff --git a/package.json b/package.json index ff47247..dfc570e 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "semantic-release": "^24.2.0" }, "peerDependencies": { - "gatsby": "5.15.0", + "gatsby": "5.16.0", "gatsby-plugin-image": "^3.0.0-next" }, "husky": {